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

时间:2013-02-11 08:29:57

标签: operating-system kernel

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:1)

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

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