Linux 核心詳解, 3/e (Understanding the Linux Kernel, 3/e)

Daniel Bovet, Marco Cesati 著、陳建勳 譯

已絕版

買這商品的人也買了...

相關主題

商品描述

為了全面瞭解是什麼讓 Linux 起作用,以及為什麼 Linux 能在各種系統上運作得那麼好,你必須對核心有深入的瞭解。核心會處理 CPU 和外面世界的所有互動,決定哪些行程可以共用處理器時間,以及它們的使用次序。核心把有限的記憶體管理得很好,讓上百個行程能以有效率的方式共用系統。核心以巧妙的方式安排資料的傳輸,使得 CPU 再也不用等待速度緩慢的硬碟存取。

本書要帶領你瞭解,核心中最重要的資料結構、演算法以及程式設計技巧。探索核心功能背後的真相時,對那些想瞭解自己的機器究竟是怎麼運作的讀者,作者提出了寶貴的見解。本書會討論 Intel 特有的重要功能,也會逐一解析相關的程式片段。但是,本書不只談論程式的作用而已,也會說明 Linux 之所以這麼運作的理論基礎。

本書是第三版,談的是 2.6 版,每個核心子系統在 2.6 版中幾乎都有重大的修改,特別是記憶體管理和區塊裝置這兩個領域。本書的內容涵蓋:

  • 記憶體管理,包括緩衝機制、行程置換,以及直接記憶體存取(DMA)。 
  • 虛擬記憶體,以及 ext2 和 ext3 檔案系統。 
  • 行程的建立和排程。 
  • 信號、中斷事件,以及裝置驅動程式的基本介面。 
  • 計時功能。 
  • 核心內部的同步功能。 
  • 行程間通訊(IPC)。 
  • 程式的執行。 

本書可讓你熟悉 Linux 內部的運作方式,但本書絕不只是一本學術著作。你會瞭解到什麼條件下可以讓 Linux 的效能達到極致,而且你也會知道 Linux 在各種環境中的行程排程、檔案存取及記憶體管理,如何提供良好的系統回應時間及其原因。本書將能協助你善用你的 Linux 系統。

目錄大綱

第 1 章 簡介

1.1 Linux 與其他 Unix-Like 核心之比較
1.2 硬體相關性
1.3 Linux 的版本編號
1.4 作業系統基本概念
1.5 Unix 檔案系統概觀
1.6 Unix 核心概觀

第 2 章 記憶體定址

2.1 記憶體位址
2.2 硬體的分節功能
2.3 Linux 的分節功能
2.4 硬體的分頁功能
2.5 Linux 的分頁功能

第 3 章 行程

3.1 行程、輕量行程以及執行緒
3.2 行程描述器
3.3 行程切換
3.4 行程的建立
3.5 行程的毀滅

第 4 章 中斷和例外事件

4.1 中斷信號的作用
4.2 中斷事件和例外事件
4.3 例外事件和中斷事件處理器的巢狀執行
4.4 對中斷描述器表格進行初始設定
4.5 例外事件的處理
4.6 中斷事件的處理
4.7 softirqs 和 tasklets
4.8 工作佇列
4.9 從中斷事件和例外事件返回

第 5 章 核心同步

5.1 核心如何服務請求?
5.2 同步基元
5.3 對核心資料結構的同步存取
5.4 防止競速條件的實例

第 6 章 時間量測

6.1 時鐘和計時器電路
6.2 Linux 計時架構
6.3 更新時間和日期
6.4 更新系統統計資料
6.5 軟體計時器和延遲函式
6.6 與時間量測相關的系統呼叫

第 7 章 行程的排程

7.1 排程方針
7.2 排程演算法
7.3 排程器所使用的資料結構
7.4 排程器所使用的函式
7.5 多處理器系統中 runqueue 的平衡
7.6 與排程相關之系統呼叫

第 8 章 記憶體管理

8.1 頁框管理
8.2 記憶體區管理
8.3 非連續記憶體區管理 

第 9 章 行程位址空間

9.1 行程位址空間
9.2 記憶體描述器
9.3 記憶體範圍
9.4 頁面失誤例外事件處理器
9.5 行程位址空間的建立和刪除
9.6 管理堆積

第 10 章 系統呼叫

10.1 POSIX API 和系統呼叫
10.2 系統呼叫處理器和服務常式
10.3 進入和離開系統呼叫
10.4 參數的傳遞
10.5 核心包裹常式

第 11 章 信號

11.1 信號的功用
11.2 產生信號
11.3 傳遞信號
11.4 和信號處理相關的系統呼叫

第 12 章 虛擬檔案系統

12.1 虛擬檔案系統(VFS)的作用
12.2 VFS 資料結構
12.3 檔案系統類型
12.4 檔案系統的處理
12.5 路徑名稱查詢
12.6 VFS 系統呼叫的實作細節
12.7 檔案上鎖機制

第 13 章 I/O 架構和裝置驅動程式

13.1 I/O 架構
13.2 裝置驅動程式模型
13.3 裝置檔
13.4 裝置驅動程式
13.5 字符裝置驅動程式

第 14 章 區塊裝置驅動程式

14.1 區塊裝置的處理
14.2 一般區塊層
14.3 I/O 排程器
14.4 區塊裝置驅動程式
14.5 開啟區塊裝置檔

第 15 章 頁面快取

15.1 頁面快取區
15.2 在頁面快取區中儲存區塊
15.3 把修改過的頁面寫入磁碟
15.4 sync()、fsync() 及 fdatasync() 系統呼叫

第 16 章 存取檔案

16.1 讀寫檔案
16.2 記憶體對映
16.3 直接 I/O 傳輸
16.4 非同步 I/O

第 17 章 頁框之回收

17.1 頁框回收演算法
17.2 反向對映
17.3 實作 PFRA
17.4 置換

第 18 章 Ext2 和 Ext3 檔案系統

18.1 Ext2 的一般特性
18.2 Ext2 磁碟資料結構
18.3 Ext2 記憶體資料結構
18.4 建立 Ext2 檔案系統
18.5 Ext2 方法
18.6 管理 Ext2 磁碟空間
18.7 Ext3 檔案系統

第 19 章 行程通訊

19.1 導管
19.2 FIFO
19.3 System V IPC
19.4 POSIX 訊息佇列

第 20 章 程式的執行

20.1 可執行檔
20.2 可執行檔格式
20.3 執行領域
20.4 exec 函式

附錄 A 系統啟動

附錄 B 模組

參考書目

原始碼索引

索引