为什么我们有内核时需要驱动程序?

Ade*_*eeb 0 operating-system kernel

我目前正在做一个关于操作系统的课程.

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

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

dot*_*NET 5

因为有数千家(如果不是数十万家)生产硬件设备的公司.操作系统公司无法编写软件来处理所有这些软件,因此它们提供了一种通用的编程模型,使用这些模型,这些硬件公司可以编写可以与其硬件通信的软件.

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

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