2

我注意到寄存器,主内存和缓存不需要设备驱动程序,而磁盘需要设备驱动程序,有人可以解释为什么吗?

4

1 回答 1

4

您还会发现操作系统也包含一些知识,例如如何驱动 VGA。操作 CPU 是在给定系统上实际运行的基础,因此操作系统必须知道这一点。其他一些功能也是必不可少的,并且操作系统包含访问这些设施的“内置”能力。

但是,某些功能是可选的。操作系统开发人员没有让开发人员选择“嵌入”或“强硬”——或者更糟糕的是,交付所有嵌入的驱动程序并使操作系统变得庞大,操作系统开发人员构建了一种加载任意驱动程序的抽象方式,通常匹配某些类型的子系统如 USB 或磁盘。这意味着任何人都可以添加功能。通常,对于自己的内置驱动程序也遵循这种架构是正常的,为了清洁,因此如果不需要,就不必使用它们。

您还会发现许多内核在代码方面被设计为与 CPU 无关,只要这是可能的。这是必要的编译时事情。例如,Linux 有一个arch/目录,其中包含特定于体系结构的代码,然后将其抽象到内核的其余部分,因此例如块存储层不需要为每个体系结构重新编写。例如,Windows NT 最初以 DEC Alpha 以及 x86 为目标。

于 2012-11-11T17:15:24.177 回答