第一章 走進Linux
1. 1 GNU與Linux的成長
1. 2 Linux的開發(fā)模式和運作機制
1. 3 走進Linux內核
1. 3. 1 Linux內核的特征
1. 3. 2 Linux內核版本的變化
1. 4 分析Linux內核的意義
1. 4. 1 開發(fā)適合自己的操作系統
1. 4. 2 開發(fā)高水平軟件
1. 4. 3 有助于計算機科學的教學和科研
第二章 Linux操作系統結構
2. 1 Linux的抽象結構
2. 1. 1 概述
2. 1. 2 Linux內核的作用
2. 1. 3 Linux內核的抽象結構
2. 1. 4 系統數據結構
2. 2 Linux的具體結構
2. 3 進程調度子系統
2. 3. 1 子系統描述
2. 3. 2 功能
2. 3. 3 接口
2. 3. 4 數據結構
2. 3. 5 子系統結構
2. 3. 6 子系統依賴關系
2. 4 內存管理子系統
2. 4. 1 子系統描述
2. 4. 2 功能
2. 4. 3 接口
2. 4. 4 數據結構
2. 4. 5 子系統結構
2. 4. 6 子系統依賴關系
2. 5 虛擬文件系統
2. 5. 1 子系統描述
2. 5. 2 功能
2. 5. 3 接口
2. 5. 4 數據結構
2. 5. 5 子系統結構
2. 5. 6 子系統依賴關系
2. 6 進程間通信(IPC)
2. 6. 1 子系統描述
2. 6. 2 功能
2. 6. 3 接口
2. 6. 4 數據結構
2. 6. 5 子系統結構
2. 6. 6 子系統的依賴關系
2. 7 網絡接口
2. 7. 1 Linux的網絡層
2. 7. 2 接口
2. 7. 3 子系統描述
2. 7. 4 數據結構
2. 7. 5 子系統結構
2. 7. 6 子系統依賴關系
2. 8 Linux內核源代碼
2. 8. 1 多版本的內核源代碼
2. 8. 2 Linux內核源代碼的結構
2. 8. 3 從何處開始閱讀源代碼
2. 9 常用術語的定義
第三章 進程調度
3. 1 進程描述
3. 1. 1 進程和程序(Process and Program)
3. 1. 2 Linux中的進程概述
3. 1. 3 task_struct結構描述
3. 1. 4 task_struct數據結構
3. 2 Linux時間系統
3. 2. 1 時鐘硬件及時鐘運作機制
3. 2. 2 千年危機(千年蟲)簡介
3. 2. 3 Linux時間系統
3. 2. 4 時鐘中斷
3. 3 Linux的調度程序——Schedule()
3. 3. 1 基本原理
3. 3. 2 Linux進程調度時機
3. 3. 3 進程調度的依據
3. 3. 4 可運行隊列(Runnable Queue)
3. 3. 5 進程調度(調度正文)的工作流程
3. 3. 6 調度程序流程圖
3. 4 Linux內核機制
3. 4. 1 內核機制的引入
3. 4. 2 Linux內核機制
3. 4. 3 任務隊列(Task Queue)
3. 4. 4 定時器內核例程處理程序(timer bottom half handler)
第四章 保護模式
4. 1 虛擬存儲器
4. 1. 1 虛地址和虛地址空間
4. 1. 2 段機制和分頁機制
4. 1. 3 保護
4. 2 描述符
4. 2. 1 段機制
4. 2. 2 描述符的概念
4. 2. 3 系統段描述符
4. 2. 4 門描述符
4. 3 描述符表和尋址方式
4. 3. 1 描述符表
4. 3. 2 選擇器與描述符表
4. 3. 3 描述符投影寄存器
4. 4 分頁機制
4. 4. 1 狀態(tài)和控制寄存器
4. 4. 2 分頁機構
4. 4. 3 頁面高速緩沖寄存
4. 5 控制轉移和任務切換
4. 5. 1 控制轉移
4. 5. 2 調用門
4. 5. 3 任務切換
4. 6 小結
第五章 Linux啟動系統
5. 1 初始化流程
5. 1. 1 系統加電或復位
5. 1. 2 BIOS啟動
5. 1. 3 Boot Loader
5. 1. 4 操作系統的初始化
5. 2 初始化的任務
5. 2. 1 處理器對初始化的影響
5. 2. 2 其他硬件設備對初始化的影響
5. 3 Linux的Boot Loader
5. 3. 1 軟盤的結構
5. 3. 2 硬盤的結構
5. 3. 3 Boot Loader
5. 3. 4 LILO
5. 3. 5 LILO的運行分析
5. 4 進入操作系統
5. 4. 1 Setup. S
5. 4. 2 Head. S
5. 5 main. c中的初始化
5. 6 建立init進程
5. 6. 1 init進程的建立
5. 6. 2 啟動所需的Shell腳本文件
第六章 Linux內存管理
6. 1 Linux的虛擬內存管理
6. 1. 1 Linux虛擬內存的實現結構
6. 1. 2 多任務及保護
6. 1. 3 內核空間和用戶空間
6. 1. 4 Linux虛擬內存實現機制間的關系
6. 2 地址映射機制
6. 2. 1 地址映射的數據結構
6. 2. 2 進程的虛擬內存
6. 2. 3 內存映射
6. 3 請頁機制
6. 3. 1 頁故障的產生
6. 3. 2 頁錯誤的定位
6. 3. 3 頁錯誤處理程序
6. 3. 4 幾點說明
6. 4 交換機制
6. 4. 1 頁交換的方法
6. 4. 2 交換守護進程(kswapd)的分析
6. 4. 3 交換空間的數據結構
6. 4. 4 交換空間的應用
6. 5 內存分配和回收機制
6. 5. 1 分配策略
6. 5. 2 系統級調用分配過程和釋放過程
6. 5. 3 用戶級內存分配釋放函數
6. 6 緩存和刷新機制
6. 6. 1 Linux使用的緩存
6. 6. 2 緩沖區(qū)高速緩存
6. 6. 3 翻譯后援存儲器(TBL)
6. 6. 4 刷新機制
6. 7 進程的創(chuàng)建和執(zhí)行
6. 7. 1 進程的創(chuàng)建
6. 7. 2 程序執(zhí)行
6. 7. 3 執(zhí)行函數
6. 8 內存共享機制
6. 9 內存初始化
6. 9. 1. 內存初始化過程
6. 9. 2 進入用戶模式
第七章 進程間通信
7. 1 管道
7. 1. 1 Linux管道的實現機制
7. 1. 2 管道的應用
7. 1. 3 命名管道(FIFO)
7. 2 System V的IPC機制
7. 2. 1 信號量
7. 2. 2 消息隊列
7. 2. 3 共享內存
7. 3 信號(signal)
7. 3. 1 信號的引入
7. 3. 2 信號掩碼
7. 3. 3 系統調用
7. 3. 4 典型系統調用的實現
7. 3. 5 進程與信號的關系
7. 3. 6 信號舉例
第八章 虛擬文件系統
8. 1 概述
8. 2 VFS中的重要數據結構
8. 2. 1 VFS的超級塊
8. 2. 2 VFS的索引節(jié)點
8. 2. 3 與進程聯系的三個結構
8. 2. 4 有關操作的數據結構
8. 3 高速緩存
8. 3. 1 塊高速緩存
8. 3. 2 索引節(jié)點高速緩存
8. 3. 3 目錄高速緩存
8. 4 文件系統的注冊. 安裝與卸載
8. 4. 1 文件系統的注冊
8. 4. 2 文件系統的安裝
8. 4. 3 文件系統的卸載
8. 5 限額機制
8. 6 文件系統的系統調用
8. 6. 1 open系統調用
8. 6. 2 read系統調用
8. 6. 3 fcntl系統調用
第九章 EXT2文件系統
9. 1 基本概念
9. 2 EXT2的磁盤布局和數據結構
9. 2. 1 EXT2的磁盤布局
9. 2. 2 EXT2的超級塊
9. 2. 3 EXT2的索引節(jié)點
9. 2. 4 組描述符
9. 2. 5 位圖
9. 2. 6 索引節(jié)點表及舉例
9. 2. 7 EXT2的目錄項及文件的定位
9. 3 文件的訪問權限和安全
9. 4 鏈接文件
9. 5 錯誤處理
9. 6 分配策略
第十章 模塊機制
10. 1 概述
10. 1. 1 什么是模塊
10. 1. 2 為什么要使用模塊
10. 1. 3 Linux內核模塊的優(yōu)缺點
10. 2 實現機制
10. 2. 1 數據結構
10. 2. 2 實現函數的分析
10. 2. 3 模塊的裝入
10. 3 卸載(unload)一個模塊
10. 4 編寫內核模塊
10. 4. 1 內核的復制函數
10. 4. 2 內核版本2. 0. 35與2. 2. 3之間的變化
10. 4. 3 簡單內核模塊的編寫
10. 4. 4 內核模塊的Makefiles文件
10. 4. 5 內核模塊的多個文件
10. 5 系統調用
10. 6 模塊實用程序
第十一章 設備驅動程序
11. 1 Linux的設備管理
11. 1. 1 I/O軟件
11. 1. 2 設備驅動程序
11. 1. 3 Linux驅動程序的幾個通用函數
11. 2 中斷
11. 2. 1 硬件對中斷的支持
11. 2. 2 Linux對中斷的管理
11. 2. 3 Linux對中斷的處理
11. 3 塊設備驅動程序
11. 3. l 塊設備驅動程序的登記
11. 3. 2 塊設備基于緩沖區(qū)的數據交換
11. 3. 3 塊設備驅動程序的幾個函數
11. 3. 4 RAM盤驅動程序的實現
11. 3. 5 硬盤驅動程序的實現
11. 4 字符設備驅動程序
11. 4. 1 字符設備的注冊
11. 4. 2 工作內存
11. 4. 3 基本入口點
11. 4. 4 一個字符設備驅動程序的實例
11. 4. 5 驅動程序的編譯與裝載
第十二章 Linux系統調用機制
12. 1 基本原理
12. 2 系統調用的初始化
12. 3 Linux系統調用的執(zhí)行
12. 4 增加新的系統調用
12. 4. 1 編寫一個系統調用
12. 4. 2 連接新的系統調用
12. 4. 3 使用新的系統調用
第十三章 網絡
13. 1 概述
13. 2 網絡協議
13. 2. 1 網絡參考模型
13. 2. 2 TCP/IP協議工作原理及數據流
13. 2. 3 Internet協議
13. 2. 4 TCP協議
13. 3 套接字(socket)
13. 3. 1 套接字在網絡中的地位和作用
13. 3. 2 套接字接口的種類
13. 3. 3 套接字的工作原理
13. 3. 4 socket的通信過程
13. 3. 5 和套接字相關的數據結構
13. 3. 6 socket為用戶提供的系統調用
13. 4 套接字緩沖區(qū)(sk_buff)
13. 4. 1 套接字緩沖區(qū)的特點
13. 4. 2 套接字緩沖區(qū)操作基本原理
13. 4. 3 sk_buff數據結構的核心內容
13. 4. 4 套接字緩沖區(qū)提供的函數
13. 4. 5 套接字緩沖區(qū)的上層支持例程
13. 4. 6 sk_buff數據結構
13. 5 網絡設備接口
13. 5. 1 基本結構
13. 5. 2 命名規(guī)則
13. 5. 3 設備注冊
13. 5. 4 網絡設備數據結構