我目前正在做一個關於操作系統的課程。當我們有內核時,爲什麼我們需要驅動程序?
我知道內核是操作系統的核心部分,它充當用戶應用程序和計算機的數據處理元件(如CPU)之間的橋樑。
爲什麼我們需要驅動程序(例如觸摸板驅動程序),內核是否不控制所有的計算機硬件?
我目前正在做一個關於操作系統的課程。當我們有內核時,爲什麼我們需要驅動程序?
我知道內核是操作系統的核心部分,它充當用戶應用程序和計算機的數據處理元件(如CPU)之間的橋樑。
爲什麼我們需要驅動程序(例如觸摸板驅動程序),內核是否不控制所有的計算機硬件?
因爲生產硬件設備的公司有數千家(如果不是數十萬家)。操作系統公司不能編寫軟件來處理所有這些軟件,因此它們提供了一種通用編程模型,使用這些模型,這些硬件公司可以編寫能夠與硬件通信的軟件。
要注意的是,雖然驅動程序實際上並不是內核的一部分,但它們具有一些低級特權(直接訪問硬件),因爲它們的代碼在Executive模式下運行,不像在用戶中運行的普通應用程序模式,一般不直接訪問硬件。總而言之,一旦操作系統提供了編寫硬件控制軟件(稱爲驅動程序)的方式,任何供應商或個人都可以自由編寫可利用其硬件設備的專用功能的軟件。另外請注意,某些硬件設備遵循着名的標準(如鍵盤,鼠標,許多視頻驅動程序,顯示器等),大多數操作系統都內置了對這些設備的支持。另一方面,一些設備沒有或沒有遵循標準,而另一些設備可能同時具有這兩種功能,即默認驅動程序可以訪問的功能子集,以及不符合任何標準的功能子集因此默認驅動程序不支持。在所有這些情況下,硬件製造商都提供了自己的驅動程序,以瞭解硬件的來龍去脈,因此可以高效地利用所有功能。
當然,內核確實控制着所有的硬件。但是,那裏有太多不同的硬件設備。
爲了處理這種大量不同的設備,開發人員編寫了專門的模塊 - 這些被稱爲驅動程序。
所以基本上驅動程序是內核的一部分? 不同的硬件供應商使驅動程序包含在內核中,以確保其某些設備在特定的操作系統上工作。系統 – Adeeb 2013-02-11 08:44:51
查看我上面的編輯。 – dotNET 2013-02-11 08:55:52