深入理解linux核心 書

來源:互聯網
上載者:User

第一章 緒論。作業系統,檔案系統,linux介紹。單核心與微核心(VxWorks,微核心通常包含幾個同步原語,一個簡單發送器和處理序間通訊機制,運行在微核心之上的幾個系統進程實現如記憶體配置,裝置驅動程式,系統調用等作業系統級功能。)linux採用模組來彌補。

核心本身不是一個進程,而是進程的管理者。除使用者進程之外,unix系統還包括幾個所謂核心線程的特權進程,其特點是:1以核心態運行在核心地址空間2不與使用者直接互動3通常在系統啟動時建立,一直活躍。

核心控制路徑表示核心處理系統調用、異常或中斷所執行的指令序列。核心控制路徑的交錯執行。

可重新進入核心可以包含非重入函數,並且利用鎖機制保證一次只有一個進程執行一個非重入函數。

同步核心控制路徑的方式可以有:非搶佔核心、禁止中斷、訊號量、自旋鎖、避免死結。

unix訊號(signal)提供了把系統事件報告給進程的一種機制。

IPC:訊號量、訊息佇列、共用記憶體。

核心記憶體 Clerk特點(快,避免浪費,減少片段,與其他記憶體管理子系統合作),主要有:資源圖分配演算法,2的冪次方空閑鏈表,buddy系統,zone分配演算法,slab分配演算法等。

第二章 記憶體定址。記憶體位址,硬體分段,分頁,linux的分段,分頁。

區分:邏輯地址(包含在機器語言指令中用來指定一個運算元或一條指令的地址)、線性地址(也稱虛擬位址)、物理地址(用於記憶體晶片級記憶體單元定址)。關係:MMU通過一種稱為分段單元的硬體電路把一個邏輯地址轉換成線性地址,接著,分頁單元的硬體電路把線性地址轉換成物理地址。

硬體中的分段:段選擇符和段寄存器,段描述符,快速存取段描述符,分段單元。

2.6版的linux只有在8086結構下才需要使用分段。

為了快速找到段選擇符,處理器提供段寄存器,用於存放段選擇符(段選擇符是邏輯地址的一部分)。cs程式碼片段寄存器,指向包含程式指令的段。ss棧段寄存器,指向包含當前程式棧的段。ds資料區段寄存器,指向包含待用資料或者全域資料的段。此外還有es,fs,gs,可以指向任意資料區段。cs指定特權級。

每個段由一個8位元組的段描述符表示,它描述段的特徵,放在通用描述元表或局部描述符表中。有幾種不同的段及它們對應的段描述符:程式碼片段描述符、資料區段描述符、任務狀態段描述符(用於儲存處理器寄存器的內容)、局部描述符表描述符。

每個CPU有一個GDT通用描述元表,它包含18個段描述符。調用門存放在LDT表,用於在調用預定義函數時改變CPU的特權級。

硬體中的分頁:常規分頁,擴充分頁,硬體保護方案。

第三章 進程。進程及其描述符,進程切換,建立,撤銷,線程。

第四章 中斷和異常。中斷訊號作用,處理常式,初始化中斷描述符表,異常中斷處理,非強制中斷和tasklet,工作隊列,從中斷和異常返回。

第五章 核心同步。如何為請求提供服務,同步原語,對核心資料結構的同步訪問。

第六章 定時測量。時鐘和定時電路,linux計時體繫結構,更新日期時間,更新系統計數,軟定時器和延遲函數。

第七章 進程調度。調度策略,演算法,資料結構,函數,多處理器系統中運行隊列的平衡。

第八章 記憶體管理。葉匡,記憶體區管理,非連續記憶體區管理。(核心怎樣給自己分配主存)

第九章 進程地址空間。記憶體描述符,線性區,缺頁,建立和刪除進程地址空間,堆的管理。(怎樣給進程分配線性地址)

第十章 系統調用。posix api和系統調用,系統調用處理常式及服務常式,進入和退出系統調用,參數傳遞,核心封裝常式。

第十一章 訊號。訊號作用,產生,傳遞。

第十二章 VFS。作用,資料結構,FS類型,處理,路徑名尋找,VFS系統調用的實現,檔案加鎖。

第十三章 IO體繫結構和裝置驅動程式。裝置檔案,裝置驅動程式模型。

第十四章 塊裝置驅動程式。通用塊層,塊裝置的處理,IO發送器,開啟塊裝置檔案。

第十五章 頁快取。把塊放在頁快取,髒頁寫回,sync(),fsync(),fdatasync()系統調用。

第十六章 訪問檔案。讀寫檔案,記憶體映射,直接IO傳送,非同步IO。

第十七章 回收葉匡。回收演算法,反向映射,PFRA實現,交換。

第十八章 EXT2和EXT3 FS。特徵,磁碟資料結構,記憶體資料結構,建立,函數,管理磁碟。

第十九章 進程通訊IPC。管道,fifo,system v ipc,posix訊息佇列。

第二十章 程式的執行。可執行檔,格式,執行域,exec函數。

附錄一 系統啟動。

附錄二 模組。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.