0

我目前正在上一门关于操作系统的课程。

我知道内核是操作系统的核心部分,它充当用户应用程序和计算机数据处理元件(如 CPU)之间的桥梁。

那么为什么我们需要驱动程序(例如触摸板驱动程序),内核不是控制所有计算机硬件吗?

4

2 回答 2

5

因为实际上有成千上万(如果不是数十万)生产硬件设备的公司。操作系统公司无法编写软件来处理所有这些问题,因此他们提供了一个通用编程模型,这些硬件公司可以使用该模型编写可以与他们的硬件对话的软件。

需要注意的重要一点是,尽管驱动程序实际上并不是内核的一部分,但它们确实具有一些低级权限(直接访问硬件),因为它们的代码在执行模式下运行,这与在用户模式下运行并且通常执行的普通应用程序不同不直接访问硬件。关键是,一旦操作系统提供了一种编写硬件控制软件(称为驱动程序)的方法,任何供应商或个人都可以自由编写可以利用他们/他的硬件设备的特殊功能的软件。

另请注意,某些硬件设备遵循众所周知的标准(例如键盘、鼠标、许多视频驱动程序、监视器等),并且大多数操作系统都内置了对这些设备的支持。另一方面,一些设备没有或不遵循标准,而另一些设备可以同时具有这两种特性,即默认驱动程序可以访问的特性子集,以及不遵循任何标准的特性子集因此默认驱动程序不支持。在所有这些情况下,硬件制造商都会提供自己的驱动程序,该驱动程序了解其硬件的来龙去脉,因此可以有效地利用所有功能。

于 2013-02-11T08:35:10.050 回答
1

当然内核确实控制着所有的硬件。但是,那里有太多不同的硬件设备。

为了处理这些种类繁多的不同设备,开发人员编写了专门的模块——这些模块被称为驱动程序。

于 2013-02-11T08:35:17.120 回答