淘先锋技术网

首页 1 2 3 4 5 6 7

为什么操作系统不能屏蔽底层的架构arm?

首先,你这个问题本身就是个问题,操作系统的任务不是这个,虚拟机的任务才是屏蔽底层硬件并为所有应用程序提供一个统一的运行环境。

操作系统的任务是为用户提供一个和硬件进行交互的自动化管理平台。而你看到的命令行界面和图形化界面都属于运行在操作系统上的应用程序。

操作系统只规定了硬件和软件的基本交互逻辑,更多的交互逻辑则是由驱动层进行管理的。这样设计是为了降低操作系统和硬件的耦合性,从而降低硬件和软件的耦合性。

这么做的好处是能让一个操作系统能够尽可能多地运行在更多的硬件上,从而也能让更多的应用程序运行在更多的硬件上。

坏处是降低了操作系统的约束力,有实力的厂商纷纷推出自己的硬件标准和软件标准,把本就无法统一的市场更加地碎片化。

举个例子,有的新处理器有AVX-512指令集,某些厂商的软件就支持AVX-512指令集,如果应用程序强行要调用AVX-512,那么所有的老处理器打开这个软件都会闪退。那闪退了大家就只能骂这个软件厂商呗,难不成不买新的处理器就永远无法开机吗?

又比如,要使用CUDA就必须安装N卡,其他的显卡都会闪退。你说这种情况怎么又统一?不是N卡就不能进操作系统了吗?

ascii码 java,为什么操作系统不能屏蔽底层的架构arm