天天看點

Linux核心子產品概述

Linux作業系統的核心為單一體系結構(單核心),其與微核心(如Windows作業系統)的最大差別在于所有的核心功能都被編譯在一起,成為一個單獨的鏡像檔案。單核心的優點是效率非常高,核心中各個功能子產品的互動是通過直接的函數調用來進行的。而微核心則隻實作核心中關鍵和核心的一部分,其他的功能子產品單獨編譯,功能子產品之間的互動由微核心提供的通信機制來建立。對于Linux的單核心而言,其缺點就是要增加或删除核心的某種功能,将不得不重新編譯整個核心,然後再重新啟動,這對于驅動開發前期是非常不友好的。為了彌補這一缺點,Linux引入了核心子產品(也可稱為子產品)的機制。

核心子產品為單獨編譯的一段核心代碼,其可以在需要時動态地加載到核心,進而增加核心的功能,當不需要時,可以動态解除安裝,進而減少核心的功能。無論是加載或解除安裝,都不再需要重新啟動作業系統。這種特性特别适合驅動程式開發工作,開發者隻需要單獨修改驅動的代碼并編譯,再将新編譯的驅動加載到核心中進行測試(核心子產品不一定都是驅動程式,驅動程式不一定都采用子產品的形式開發)。

綜上所述,核心子產品可以有效地減小核心鏡像檔案的體積,進而減少記憶體的使用。在實際開發中,并不需要将所有的驅動都編譯到核心,根據實際的需求,單獨編譯驅動程式,并将其加載到核心,可以有效地比對硬體裝置,實作個性化定制。裝入核心的子產品成為了核心的一部分,通過該子產品可以修改核心中的其他部分,是以子產品在使用不當的情況下會導緻系統崩潰,此時就需要重新啟動系統。

繼續閱讀