?? 目錄.txt
字號(hào):
目 錄
雷蒙序
簡(jiǎn)介
Linux文檔工程小組“公告”
譯者序
第一部分 Linux內(nèi)核
前言
第1章 硬件基礎(chǔ)與軟件基礎(chǔ) 6
1.1 硬件基礎(chǔ) 6
1.1.1 CPU 7
1.1.2 存儲(chǔ)器 8
1.1.3 總線 8
1.1.4 控制器和外設(shè) 8
1.1.5 地址空間 9
1.1.6 時(shí)鐘 9
1.2 軟件基礎(chǔ) 9
1.2.1 計(jì)算機(jī)語(yǔ)言 9
1.2.2 什么是操作系統(tǒng) 11
1.2.3 內(nèi)核數(shù)據(jù)結(jié)構(gòu) 13
第2章 內(nèi)存管理 15
2.1 虛擬內(nèi)存抽象模型 15
2.1.1 請(qǐng)求調(diào)頁(yè) 17
2.1.2 交換 17
2.1.3 共享虛擬內(nèi)存 18
2.1.4 物理尋址模式和虛擬尋址模式 18
2.1.5 訪問(wèn)控制 18
2.2 高速緩存 19
2.3 Linux頁(yè)表 20
2.4 頁(yè)分配和回收 21
2.4.1 頁(yè)分配 22
2.4.2 頁(yè)回收 22
2.5 內(nèi)存映射 22
2.6 請(qǐng)求調(diào)頁(yè) 23
2.7 Linux頁(yè)緩存 24
2.8 頁(yè)換出和淘汰 25
2.8.1 減少緩沖區(qū)和頁(yè)緩存大小 25
2.8.2 換出System V共享內(nèi)存頁(yè) 26
2.8.3 換出和淘汰頁(yè) 27
2.9 交換緩存 27
2.10 頁(yè)換入 28
第3章 進(jìn)程 29
3.1 Linux進(jìn)程 29
3.2 標(biāo)識(shí)符 31
3.3 調(diào)度 32
3.4 文件 34
3.5 虛擬內(nèi)存 35
3.6 創(chuàng)建進(jìn)程 36
3.7 時(shí)間和定時(shí)器 37
3.8 執(zhí)行程序 38
3.8.1 ELF 39
3.8.2 腳本文件 40
第4章 進(jìn)程間通信機(jī)制 41
4.1 信號(hào)機(jī)制 41
4.2 管道 42
4.3 套接字 44
4.3.1 System V的進(jìn)程間通信機(jī)制 44
4.3.2 消息隊(duì)列 44
4.3.3 信號(hào)量 45
4.3.4 共享存儲(chǔ)區(qū) 47
第5章 PCI 49
5.1 PCI的地址空間 49
5.2 PCI配置頭 50
5.3 PCI的I/O和存儲(chǔ)地址空間 51
5.4 PCI-ISA橋 51
5.5 PCI-PCI 橋 51
5.5.1 PCI-PCI橋:PCI I/O和存儲(chǔ)地址
空間的窗口 51
5.5.2 PCI-PCI橋:PCI配置周期和PCI
總線編號(hào) 52
5.6 Linux PCI初始化 53
5.6.1 Linux內(nèi)核PCI數(shù)據(jù)結(jié)構(gòu) 53
5.6.2 PCI設(shè)備驅(qū)動(dòng)程序 53
5.6.3 PCI的BIOS函數(shù) 56
5.6.4 PCI修正過(guò)程 57
第6章 中斷處理與設(shè)備驅(qū)動(dòng)程序 60
6.1 中斷與中斷處理 60
6.1.1 可編程中斷控制器 61
6.1.2 初始化中斷處理數(shù)據(jù)結(jié)構(gòu) 61
6.1.3 中斷處理 62
6.2 設(shè)備驅(qū)動(dòng)程序 63
6.2.1 測(cè)試與中斷 64
6.2.2 直接存儲(chǔ)器訪問(wèn)(DMA) 65
6.2.3 存儲(chǔ)器 66
6.2.4 設(shè)備驅(qū)動(dòng)程序與內(nèi)核的接口 66
6.2.5 硬盤 69
6.2.6 網(wǎng)絡(luò)設(shè)備 74
第7章 文件系統(tǒng) 77
7.1 第二個(gè)擴(kuò)展文件系統(tǒng)EXT2 78
7.1.1 EXT2系統(tǒng)的inode節(jié)點(diǎn) 79
7.1.2 EXT2系統(tǒng)的超級(jí)塊 80
7.1.3 EXT2系統(tǒng)的組描述符 80
7.1.4 EXT2系統(tǒng)的目錄 81
7.1.5 在EXT2文件系統(tǒng)中查找文件 81
7.1.6 在EXT2文件系統(tǒng)中改變文件
的大小 82
7.2 虛擬文件系統(tǒng) 83
7.2.1 VFS文件系統(tǒng)的超級(jí)塊 84
7.2.2 VFS文件系統(tǒng)的inode節(jié)點(diǎn) 84
7.2.3 注冊(cè)文件系統(tǒng) 85
7.2.4 裝配文件系統(tǒng) 85
7.2.5 在虛擬文件系統(tǒng)中查找文件 87
7.2.6 卸載文件系統(tǒng) 87
7.2.7 VFS文件系統(tǒng)的inode緩存 87
7.2.8 目錄緩存 88
7.3 緩沖區(qū)緩存 88
7.3.1 bdflush內(nèi)核守護(hù)進(jìn)程 90
7.3.2 update進(jìn)程 90
7.4 /proc文件系統(tǒng) 91
7.5 特殊設(shè)備文件 91
第8章 網(wǎng)絡(luò) 92
8.1 TCP/IP網(wǎng)絡(luò)概述 92
8.2 Linux中的TCP/IP網(wǎng)絡(luò)層次結(jié)構(gòu) 95
8.3 BSD套接字接口 96
8.4 INET的套接字層 97
8.4.1 創(chuàng)建BSD套接字 98
8.4.2 為INET BSD Socket綁定地址 99
8.4.3 建立INET BSD Socket連接 99
8.4.4 INET BSD Socket偵聽(tīng) 100
8.4.5 接受連接請(qǐng)求 100
8.5 IP層 100
8.5.1 套接字緩沖區(qū) 100
8.5.2 接收IP報(bào)文 101
8.5.3 發(fā)送IP報(bào)文 102
8.5.4 數(shù)據(jù)分片 102
8.6 地址解析協(xié)議 103
8.7 IP路由 104
第9章 內(nèi)核機(jī)制與模塊 107
9.1 內(nèi)核機(jī)制 107
9.1.1 Bottom Half控制 107
9.1.2 任務(wù)隊(duì)列 108
9.1.3 定時(shí)器 109
9.1.4 等待隊(duì)列 110
9.1.5 自旋鎖 110
9.1.6 信號(hào)量 110
9.2 模塊 111
9.2.1 模塊載入 112
9.2.2 模塊卸載 113
第10章 處理器 115
10.1 X86 115
10.2 ARM 115
10.3 Alpha AXP處理器 115
第11章 Linux內(nèi)核源代碼 117
11.1 怎樣得到Linux內(nèi)核源碼 117
11.2 內(nèi)核源碼的編排 117
11.3 從何處看起 118
第12章 Linux數(shù)據(jù)結(jié)構(gòu) 120
附錄A 有用的Web和FTP站點(diǎn) 138
附錄B 詞匯表 139
第二部分 Linux內(nèi)核模塊編程指南
致謝
前言
第1章 Hello, World 145
1.1 內(nèi)核模塊的Makefiles文件 146
1.2 多重文件內(nèi)核模塊 147
第2章 字符設(shè)備文件 149
第3章 /proc文件系統(tǒng) 158
第4章 把/proc用于輸入 162
第5章 把設(shè)備文件用于輸入 170
第6章 啟動(dòng)參數(shù) 182
第7章 系統(tǒng)調(diào)用 185
第8章 阻塞處理 190
第9章 替換printk 199
第10章 任務(wù)調(diào)度 202
第11章 中斷處理程序 207
第12章 對(duì)稱多處理 211
第13章 常見(jiàn)錯(cuò)誤 212
附錄A 2.0和2.2之間的差異 213
附錄B 其他資源 214
附錄C 給出你的評(píng)價(jià) 215
第三部分 Linux程序員指南
第1章 Linux操作系統(tǒng) 219
第2章 Linux內(nèi)核 220
第3章 Linux libc包 221
第4章 系統(tǒng)調(diào)用 222
第5章 “瑞士軍刀”:ioctl 223
第6章 Linux進(jìn)程間通信 224
6.1 介紹 224
6.2 半雙工Unix管道 224
6.2.1 基本概念 224
6.2.2 用C語(yǔ)言創(chuàng)建管道 225
6.2.3 簡(jiǎn)便方法 229
6.2.4 管道的原子操作 233
6.2.5 關(guān)于半雙工管道需要注意的幾個(gè)
問(wèn)題 233
6.3 命名管道 234
6.3.1 基本概念 234
6.3.2 創(chuàng)建FIFO 234
6.3.3 FIFO操作 235
6.3.4 FIFO上的阻塞動(dòng)作 236
6.3.5 SIGPIPE信號(hào) 237
6.4 系統(tǒng)V IPC 237
6.4.1 基本概念 237
6.4.2 消息隊(duì)列 239
6.4.3 信號(hào)量 251
6.4.4 semtool:交互式信號(hào)量操作
程序 260
6.4.5 共享內(nèi)存 267
第7章 聲音編程 274
7.1 內(nèi)部揚(yáng)聲器編程 274
7.2 聲卡編程 274
第8章 字符單元圖形 276
8.1 libc中的I/O函數(shù) 277
8.1.1 格式化輸出 277
8.1.2 格式化輸入 278
8.2 termcap庫(kù) 278
8.2.1 前言 278
8.2.2 獲得終端描述 279
8.2.3 查看終端描述 279
8.2.4 termcap權(quán)能 280
8.3 Ncurses簡(jiǎn)介 280
8.4 初始化 282
8.5 窗口 283
8.6 輸出 284
8.6.1 格式化輸出 285
8.6.2 插入字符/行 286
8.6.3 刪除字符/行 286
8.6.4 方框和直線 287
8.6.5 背景字符 287
8.7 輸入 288
8.8 選項(xiàng) 289
8.8.1 輸出選項(xiàng) 289
8.8.2 輸入選項(xiàng) 290
8.8.3 終端屬性 291
8.8.4 使用選項(xiàng) 291
8.9 更新終端 292
8.10 視頻屬性與顏色 293
8.11 光標(biāo)和屏幕坐標(biāo) 294
8.12 滾動(dòng) 294
8.13 小鍵盤 295
8.14 軟標(biāo)簽 295
8.15 雜項(xiàng) 295
8.16 低級(jí)訪問(wèn) 296
8.17 屏幕轉(zhuǎn)儲(chǔ) 296
8.18 Termcap模擬 296
8.19 Terminfo函數(shù) 296
8.20 調(diào)試函數(shù) 297
8.21 Terminfo權(quán)能 297
8.21.1 布爾型權(quán)能 297
8.21.2 數(shù)值型權(quán)能 298
8.21.3 字符串型權(quán)能 299
8.22 [N]Curses函數(shù)概述 306
第9章 I/O端口編程 307
9.1 鼠標(biāo)編程 307
9.2 調(diào)制解調(diào)器編程 308
9.3 打印機(jī)編程 308
9.4 游戲桿編程 308
第10章 把應(yīng)用程序移植到Linux上 309
10.1 介紹 309
10.2 信號(hào)處理 309
10.2.1 SVR4、BSD和POSIX.1下
的信號(hào) 310
10.2.2 Linux信號(hào)選項(xiàng) 310
10.2.3 Linux下的信號(hào) 310
10.2.4 Linux支持的信號(hào) 311
10.3 終端I/O 311
10.4 進(jìn)程信息和控制 311
10.4.1 kvm過(guò)程 312
10.4.2 ptrace和/proc文件系統(tǒng) 312
10.4.3 Linux下的進(jìn)程控制 312
10.5 可移植條件編譯 313
10.6 補(bǔ)充說(shuō)明 314
附錄 以字母順序排列的系統(tǒng)調(diào)用 315
第四部分 Linux內(nèi)核概念系統(tǒng)結(jié)構(gòu)
摘要 323
前言 324
第1章 系統(tǒng)結(jié)構(gòu) 325
1.1 系統(tǒng)概述 325
1.2 內(nèi)核的目標(biāo) 325
1.3 內(nèi)核結(jié)構(gòu)的概述 325
1.4 支持多個(gè)開(kāi)發(fā)人員 327
1.5 系統(tǒng)數(shù)據(jù)結(jié)構(gòu) 328
1.5.1 任務(wù)列表 328
1.5.2 內(nèi)存映射 328
1.5.3 索引節(jié)點(diǎn) 328
1.5.4 數(shù)據(jù)連接 329
第2章 子系統(tǒng)的系統(tǒng)結(jié)構(gòu) 330
2.1 進(jìn)程調(diào)度程序系統(tǒng)結(jié)構(gòu) 330
2.1.1 目標(biāo) 330
2.1.2 模塊 330
2.1.3 數(shù)據(jù)表達(dá) 331
2.1.4 依賴性、數(shù)據(jù)流和控制流 331
2.2 內(nèi)存管理程序系統(tǒng)結(jié)構(gòu) 331
2.2.1 目標(biāo) 331
2.2.2 模塊 331
2.2.3 數(shù)據(jù)表示 331
2.2.4 數(shù)據(jù)流、控制流和依賴性 332
2.3 虛擬文件系統(tǒng)系統(tǒng)結(jié)構(gòu) 333
2.3.1 目標(biāo) 333
2.3.2 模塊 333
2.3.3 數(shù)據(jù)表示 333
2.3.4 數(shù)據(jù)流、控制流和依賴性 334
2.4 網(wǎng)絡(luò)接口系統(tǒng)結(jié)構(gòu) 334
2.4.1 目標(biāo) 334
2.4.2 模塊 334
2.4.3 數(shù)據(jù)表示 335
2.4.4 數(shù)據(jù)流、控制流和依賴性 335
2.5 進(jìn)程間通信系統(tǒng)結(jié)構(gòu) 335
第3章 結(jié)論 336
附錄A 術(shù)語(yǔ)定義 337
附錄B 參考文獻(xiàn) 338
第五部分 Linux內(nèi)核具體系統(tǒng)結(jié)構(gòu)
摘要 341
第1章 前言 342
1.1 目標(biāo) 342
1.2 Linux介紹 342
1.3 軟件系統(tǒng)結(jié)構(gòu)的背景知識(shí) 342
1.4 方法與途徑 343
1.5 適用本書的讀者 344
1.6 本部分的章節(jié)安排 344
第2章 系統(tǒng)結(jié)構(gòu) 345
第3章 子系統(tǒng)結(jié)構(gòu) 346
3.1 進(jìn)程調(diào)度程序 346
3.1.1 目標(biāo) 346
3.1.2 外部接口 346
3.1.3 子系統(tǒng)描述 346
3.1.4 數(shù)據(jù)結(jié)構(gòu) 347
3.1.5 子系統(tǒng)結(jié)構(gòu) 348
3.1.6 子系統(tǒng)依賴性 348
3.2 內(nèi)存管理程序 348
3.2.1 目標(biāo) 348
3.2.2 外部接口 349
3.2.3 子系統(tǒng)描述 349
3.2.4 數(shù)據(jù)結(jié)構(gòu) 350
3.2.5 子系統(tǒng)結(jié)構(gòu) 350
3.2.6 子系統(tǒng)依賴性 351
3.3 虛擬文件系統(tǒng) 352
3.3.1 目標(biāo) 352
3.3.2 外部接口 352
3.3.3 子系統(tǒng)描述 353
3.3.4 設(shè)備驅(qū)動(dòng)程序 353
3.3.5 邏輯文件系統(tǒng) 354
3.3.6 模塊 354
3.3.7 數(shù)據(jù)結(jié)構(gòu) 355
3.3.8 子系統(tǒng)結(jié)構(gòu) 355
3.3.9 子系統(tǒng)依賴性 355
3.4 進(jìn)程間通信 355
3.4.1 目標(biāo) 355
3.4.2 外部接口 357
3.4.3 子系統(tǒng)描述 357
3.4.4 數(shù)據(jù)結(jié)構(gòu) 358
3.4.5 子系統(tǒng)結(jié)構(gòu) 359
3.4.6 子系統(tǒng)依賴性 359
3.5 網(wǎng)絡(luò)接口 360
3.5.1 目標(biāo) 360
3.5.2 外部接口 361
3.5.3 子系統(tǒng)描述 361
3.5.4 數(shù)據(jù)結(jié)構(gòu) 362
3.5.5 子系統(tǒng)結(jié)構(gòu) 363
3.5.6 子系統(tǒng)依賴性 363
第4章 結(jié)論 365
附錄A 術(shù)語(yǔ)定義 366
附錄B 參考文獻(xiàn) 368
第六部分 附 錄
附錄A Linux文檔工程拷貝許可證 372
附錄B GNU通用公共許可證 374
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -