Linux核心主要由五個子系統組成:程序排程,記憶體管理,虛拟檔案系統,網絡接口,程序間通信。
Linux核心記憶體管理支援虛拟記憶體,即在計算機中運作的程式,其代碼,資料,堆棧的總量可以超過實際記憶體的大小,作業系統隻是把目前使用的程式塊保留在記憶體中,其餘的程式塊則保留在磁盤中。必要時,作業系統負責在磁盤和記憶體間交換程式塊。記憶體管理從邏輯上分為硬體無關部分和硬體有關部分。硬體無關部分提供了程序的映射和邏輯記憶體的對換;硬體相關的部分為記憶體管理硬體提供了虛拟接口。
Linux核心利用一個資料結構(task_struct)代表一個程序,代表程序的資料結構指針形成了一個task數組(Linux中,任務和程序是相同的術語),這種指針數組有時也稱為指針向量。
程序是運作于虛拟位址空間的程式,可以這麼說,任何在Linux系統下運作的程式都是程序。
Linux系統支援虛拟記憶體,使得系統看起來有多于實際實體記憶體的記憶體容量。Linux利用磁盤(對換空間)作為記憶體的擴充。
虛拟記憶體技術實作了對程序的保護:系統中的每一個程序都有自己的虛拟位址空間。這些虛拟位址空間是完全分開的,這樣一個程序的運作不會影響其它程序,并且硬體上的虛拟記憶體機制是被保護的,記憶體不能被寫入。這樣可以防止迷失的應用程式覆寫代碼的資料。
Linux虛拟記憶體實作機制:
Linux虛拟記憶體的實作需要6種機制的支援:位址映射機制、記憶體配置設定回收機制、緩存和重新整理機制、請求頁機制、交換機制和記憶體共享機制。
記憶體管理程式通過映射機制把使用者程式的邏輯位址映射到實體位址。當使用者程式運作時,如果發現程式中要用的虛位址沒有對應的實體記憶體,就發出了請求頁要求。 如果有空閑的記憶體可供配置設定,就請求配置設定記憶體(于是用到了記憶體的配置設定和回收),并把正在使用的實體頁記錄在緩存中(使用了緩存機制)。如果沒有足夠的記憶體可 供配置設定,那麼就調用交換機制;騰出一部分記憶體。另外,在位址映射中要通過TLB(翻譯後援存儲器)來尋找實體頁;交換機制中也要用到交換緩存,并且把實體 頁内容交換到交換檔案中,也要修改頁表來映射檔案位址。