操作系统|为什么操作系统不能屏蔽底层的架构,为应用软件提供一个统一的运行环境呢?

文章图片
有两个问题 , 第一个是cpu架构的区别在于机器码的区别 , 所以如果要保证一致的运行环境的话 , 一般有四个方案:一个是虚拟机 , 比如java依赖的是jvm虚拟机 , 缺点是速度慢 。 第二个是multiarch的可执行程序 , 比如ubuntu就出过一个版本 , 缺点是每个应用自己要编译多遍 , exe的体积增大n倍 , ios也是这么干的 。
第三个方案是操作系统级提供运行时指令转换方案 , 缺点是非对标架构的速度会慢一点 , 同时操作系统底层是需要有明确对标架构的 , 不是什么架构都支持 , macos就是这么干的 , 平稳从ppc架构过度到了x86架构 , 也包括现在arm架构也有一部分是这么做的 。
第四个是cpu设计的时候就支持 , 代表是高通的某些版本arm芯片 , 以及中国的龙芯 , 但是一般情况下世不能直接进行实时切换的 , 需要操作系统底层做特别设计 。 这些只是你看到第一个问题 , 估计你还不知道还有更加恶心的问题就是不同架构上操作系统的各类特化 , 往往会打破你的美好设想 , 所以ubuntu放弃了第二个方案 。
【操作系统|为什么操作系统不能屏蔽底层的架构,为应用软件提供一个统一的运行环境呢?】
因为很可能从bootloader开始 , 就一路一个坑 , 远不是你觉得的那么简单
- 厨房|刀可切菜灶可加热 儿童厨房玩具安全不能忽视
- 为什么科学家表示人类“灭绝”的可能性极低?这些理由你赞同吗?
- 为什么科学家知道太阳的原理,却无法制造出人造太阳
- 月球也在太阳系的宜居带中,为何不能产生生命?原来个头太小了
- 为什么科学家用昆虫翅膀的起源质疑进化论?达尔文到底是对是错?
- 为什么夜空是黑的?你以为的“正常”,或许隐藏着不知道的秘密
- 为什么温度高到一定程度的物体,就会发光?
- 5G|中国广电官网上线 但不能选号 客服称内测尚未向公众开放
- 为什么现在很少有人提及“克隆技术”了?“克隆技术”有何缺点?
- 为什么同学群里,很少有人说话,大部分人都选择沉默或者屏蔽?
