1. linux核心源**的目錄結構
2. linux核心的組成部分
linux核心主要由程序排程(sched)、記憶體管理(mm)、虛擬檔案系統(vfs)、網路介面(net)、和程序間通訊(ipc) 五個子系統組成。linux核心的組成部分與關係圖如下:
2.1 程序排程
用於控制系統中多個程序對cpu的訪問。核心中其他子系統都依賴於系統排程來實現掛起或恢復程序。程序狀態轉換圖如下:
2.2 記憶體管理
主要作用是控制多個程序安全地共享主記憶體區域。當cpu提供記憶體管理單元(mmu)時,linux記憶體管理對於每個程序完成從虛擬記憶體到物理記憶體的轉換。
2.3 虛擬檔案系統
linux虛擬檔案系統隱藏了各種硬體的具體細節,並未所有裝置提供了統一的介面。並且,虛擬檔案系**立於具體的檔案系統,是對各種檔案系統的乙個抽象。
2.4 網路介面
網路介面提供對網路標準的訪問和網路硬體的支援。
linux中網路介面可分為:
2.5 程序間通訊
linux支援的程序間通訊機制有:訊號量、共享記憶體、訊息佇列、管道、unix域套接字等,這些機制協助多程序、多自資源的互斥訪問、程序間的同步和訊息傳遞。
3. linux核心空間與使用者空間
linux只能通過系統呼叫和硬體中斷完成從使用者空間到核心空間的控制轉移。
1 Linux核心的配置與裁減
一 核心的配置和編譯流程 1 編寫driver及其子目錄下的kconfig檔案,將驅動的配置項寫入menuconfig配置介面 2 執行make menuconfig命令,進入核心配置介面,將對應的驅動程式配置進核心或者模組 3 生成.congfig檔案,可以看到驅動在核心配置的模式 4 執行mak...
第2章 Docker 的核心概念
類似於虛擬機器映象,可以將它理解為乙個面向 docker引擎的唯讀模板,包含了檔案系統。比如 乙個映象可以只包含乙個完整的ubuntu作業系統環境,可以稱為乙個ubutnu映象。也可以安裝了android應用程式,稱為乙個android映象。docker 利用容器來執行和隔離應用。容器是從映象建立的...
第1章 基本概念
1.linux系統程式設計的3大基石 系統呼叫 c庫 c編譯器 呼叫系統呼叫 位於使用者空間的應用程式無法直接訪問核心空間。從安全性和可靠性角度考慮,也需要禁止使用者空間的程式直接執行核心 或操縱核心資料。但從另外乙個角度看,核心也必須提供這樣一種機制,當使用者空間的使用者希望執行系統呼叫時,可以通...