Linux核心(2) 子系統

2021-08-07 03:23:27 字數 1549 閱讀 5300

主要子系統

系統呼叫介面

sci 層提供了某些機制執行從使用者空間到核心的函式呼叫。正如前面討論的一樣,這個介面依賴於體系結構,甚至在相同的處理器家族內也是如此。sci 實際上是乙個非常有用的函式呼叫多路復用和多路分解服務。在 ./linux/kernel 中您可以找到 sci 的實現,並在 ./linux/arch 中找到依賴於體系結構的部分。

程序管理

程序管理的重點是程序的執行。在核心中,這些程序稱為執行緒,代表了單獨的處理器虛擬化(執行緒**、資料、堆疊和 cpu暫存器)。在使用者空間,通常使用程序 這個術語,不過 linux 實現並沒有區分這兩個概念(程序和執行緒)。核心通過 sci 提供了乙個應用程式程式設計介面(api)來建立乙個新程序(fork、exec 或 portable operating system inte***ce [posⅸ] 函式),停止程序(kill、exit),並在它們之間進行通訊和同步(signal 或者 posⅸ 機制)。

程序管理還包括處理活動程序之間共享 cpu 的需求。核心實現了一種新型的排程演算法,不管有多少個執行緒在競爭 cpu,這種演算法都可以在固定時間內進行操作。這種演算法就稱為 o⑴ 排程程式,這個名字就表示它排程多個執行緒所使用的時間和排程乙個執行緒所使用的時間是相同的。o⑴ 排程程式也可以支援多處理器(稱為對稱多處理器或 smp)。您可以在 ./linux/kernel 中找到程序管理的源**,在 ./linux/arch 中可以找到依賴於體系結構的源**。

記憶體管理

核心所管理的另外乙個重要資源是記憶體。為了提高效率,如果由硬

vfs 在使用者和檔案系統之間提供了乙個交換層管理虛擬記憶體,記憶體是按照所謂的記憶體頁 方式進行管理的(對於大部分體系結構來說都是 4kb)。linux 包括了管理可用記憶體的方式,以及物理和虛擬對映所使用的硬體機制。

不過記憶體管理要管理的可不止 4kb緩衝區。linux 提供了對 4kb緩衝區的抽象,例如 slab 分配器。這種記憶體管理模式使用 4kb緩衝區為基數,然後從中分配結構,並跟蹤記憶體頁使用情況,比如哪些記憶體頁是滿的,哪些頁面沒有完全使用,哪些頁面為空。這樣就允許該模式根據系統需要來動態調整記憶體使用。

為了支援多個使用者使用記憶體,有時會出現可用記憶體被消耗光的情況。由於這個原因,頁面可以移出記憶體並放入磁碟中。這個過程稱為交換,因為頁面會被從記憶體交換到硬碟上。記憶體管理的源**可以在 ./linux/mm 中找到。

虛擬檔案系統

虛擬檔案系統(vfs)是 linux 核心中非常有用的乙個方面,因為它為檔案系統提供了乙個通用的介面抽象。vfs 在 sci 和核心所支援的檔案系統之間提供了乙個交換層。

vfs 在使用者和檔案系統之間提供了乙個交換層

在 vfs 上面,是對諸如 open、close、read 和 write 之類的函式的乙個通用 api 抽象。在 vfs 下面是檔案系統抽象,它定義了上層函式的實現方式。它們是給定檔案系統(超過 50 個)的外掛程式。檔案系統的源**可以在 ./linux/fs 中找到。

檔案系統層之下是緩衝區快取,它為檔案系統層提供了乙個通用函式集(與具體檔案系統無關)。這個快取層通過將資料保留一段時間(或者隨即預先讀取資料以便在需要是就可用)優化了對物理裝置的訪問。緩衝區快取之下是裝置驅動程式,它實現了特定物理裝置的介面。

linux核心input子系統解析

android x windows qt等眾多應用對於linux系統中鍵盤 滑鼠 觸控螢幕等輸入裝置的支援都通過 或越來越傾向於標準的input輸入子系統。因為input子系統已經完成了字元驅動的檔案操作介面,所以編寫驅動的核心工作是完成input系統留出的介面,工作量不大。但如果你想更靈活的應用它...

linux核心input子系統解析

華清遠見嵌入式學院 講師。android x windows qt等眾多應用對於linux系統中鍵盤 滑鼠 觸控螢幕等輸入裝置的支援都通過 或越來越傾向於標準的input輸入子系統。因為input子系統已經完成了字元驅動的檔案操作介面,所以編寫驅動的核心工作是完成input系統留出的介面,工作量不大...

linux核心input子系統解析

android x windows qt等眾多應用對於linux系統中鍵盤 滑鼠 觸控螢幕等輸入裝置的支援都通過 或越來越傾向於標準的input輸入子系統。因為input子系統已經完成了字元驅動的檔案操作介面,所以編寫驅動的核心工作是完成input系統留出的介面,工作量不大。但如果你想更靈活的應用它...