欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

谈软件兼容性与系统平台

程序员文章站 2022-07-04 11:21:35
软件兼容性的定义及操作系统对比: 向上(下)兼容指的是按某档机器编制的软件,不加修改就能运行于比它高(低)档的机器上。 向前(后)兼容指的是按某个时期投入市场的该型号机器上编制的软件,不加修改就能运行于比它前(后)投入市场的机器上。 目前市面上流行的操作系统有:windows、linux、mac、a ......

软件兼容性的定义及操作系统对比:

向上(下)兼容指的是按某档机器编制的软件,不加修改就能运行于比它高(低)档的机器上。
向前(后)兼容指的是按某个时期投入市场的该型号机器上编制的软件,不加修改就能运行于比它前(后)投入市场的机器上。
目前市面上流行的操作系统有:windows、linux、mac、android、ios
windows的特点就是兼容性强,几乎所有硬件驱动都是优先适配windows的,windows的向后兼容使得它满足几乎所有类型用户的需求,假如windows不能向后兼容就不会像现在这么流行
linux是免费开源的,一般用于*面的服务器应用,在学术界和工业上应用比较多
mac和ios界面漂亮系统稳定安全性较好,软件生态完善,android市场占有率有绝对优势,目前存在系统碎片化的问题
ps:win10高分辨率下开dpi缩放已经对4k支持比较好了,现在html5能较好的兼容手机与pc的浏览体验。windows(\r\n)与linux换行符(\n) 目录斜杠win() linux(/)。64位的系统上可以运行64位和32位的软件,32位系统只能运行32位软件。黑苹果hackintosh可以上 nuc8i5beh厚款 冥王峡谷

虚拟程序包括操作系统虚拟机、解释型语言虚拟机、容器(如docker)

所有解释型语言都有自己的虚拟机,常见的有:java虚拟机、python虚拟机、.net clr ,android系统的解释语言虚拟机过去是dalvik,dalvik在应用每次运行时都会执行转换机器码操作,到了5.0以上换成了art(android runtime),art应用在第一次安装的时候,字节码就会预先转换成机器码
docker 是一个应用容器,可以打包应用以及依赖包到一个可移植的镜像中,在主流的操作系统上运行这些应用,和操作系统虚拟机的区别是,容器更轻量级,是直接运行在操作系统之上的,而操作系统虚拟机在虚拟层之上运行了一个完整的操作系统,再在上面运行软件。

虚拟机分为硬件级模拟和软件级模拟

硬件级会开启cpu的vt特性,能够模拟的指令集架构和自身cpu架构类似,具有速度快,精度高的优点,如virtual pc、 vmware、virtualbox等。
软件级模拟通过1到n条指令的程序实现模拟的指令,速度比较慢,但可以模拟不同指令集架构,具有无以伦比的可移植性,qemu和bochs 属于软件模拟
某些外挂或者恶意程序会检测自身是否在虚拟机中运行以对抗分析,一个比较奇葩的检测方法是检测壁纸是不是系统默认壁纸
安卓模拟器是基于虚拟机的安装的操作系统,常用的有逍遥安卓模拟器,genymotion、bluestacks等,一些游戏机模拟器也是这样的。

在某种操作系统上运行另一种操作系统的软件的方案有如下几种:
wine是一个能够在多种 posix-compliant 操作系统(如 linux)上运行 windows 应用的兼容层
mingw是著名c/c++编译器gcc的windows版本
cygwin是一个在windows平台上运行的类unix模拟环境
wsl windows subsystem for linux