操作系统|为什么操作系统不能屏蔽底层的架构,为应用软件提供一个统一的运行环境呢?
文章图片
有两个问题 , 第一个是cpu架构的区别在于机器码的区别 , 所以如果要保证一致的运行环境的话 , 一般有四个方案:一个是虚拟机 , 比如java依赖的是jvm虚拟机 , 缺点是速度慢 。 第二个是multiarch的可执行程序 , 比如ubuntu就出过一个版本 , 缺点是每个应用自己要编译多遍 , exe的体积增大n倍 , ios也是这么干的 。
第三个方案是操作系统级提供运行时指令转换方案 , 缺点是非对标架构的速度会慢一点 , 同时操作系统底层是需要有明确对标架构的 , 不是什么架构都支持 , macos就是这么干的 , 平稳从ppc架构过度到了x86架构 , 也包括现在arm架构也有一部分是这么做的 。
第四个是cpu设计的时候就支持 , 代表是高通的某些版本arm芯片 , 以及中国的龙芯 , 但是一般情况下世不能直接进行实时切换的 , 需要操作系统底层做特别设计 。 这些只是你看到第一个问题 , 估计你还不知道还有更加恶心的问题就是不同架构上操作系统的各类特化 , 往往会打破你的美好设想 , 所以ubuntu放弃了第二个方案 。
【操作系统|为什么操作系统不能屏蔽底层的架构,为应用软件提供一个统一的运行环境呢?】
因为很可能从bootloader开始 , 就一路一个坑 , 远不是你觉得的那么简单
- 任正非|任正非与孟晚舟的姓氏为什么不一样?
- |为什么以前在飞机上不能开手机,而现在可以了?
- 美国|“绝不能让中国芯片供应自主计划得逞!”美国这回彻底不装了
- 家电业|为什么家电业要拒绝躺平敢于折腾?
- |日本手机为什么沦落了?
- 换手机为什么建议避开128GB的,原因主要有3点,懂的都懂
- 人类的工作会被AI取代吗?如果机器能够深度学习|为什么说AI能作巴赫的曲,却写不出村上春树的小说?
- it|浪潮宣布加入 OpenCloudOS 操作系统开源社区
- 锐龙|为什么AMD只推出一款锐龙7 5800X3D?因为资源都优先给Milan-X了
- iOS|iOS15.2.1使用报告,年前不能错过的版本,网友的体验说明了一切