注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)LinuxLinux內(nèi)核編程

Linux內(nèi)核編程

Linux內(nèi)核編程

定 價(jià):¥49.00

作 者: (美)羅瑞吉 著;陳莉君 譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: Linux

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111192176 出版時(shí)間: 2006-07-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 386 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)是一本Linux內(nèi)核編程的權(quán)威指南,其獨(dú)特的由表及里學(xué)習(xí)途徑使得內(nèi)核編程更易于理解。本書(shū)從用戶(hù)空間到內(nèi)核,把內(nèi)核的實(shí)現(xiàn)原理與用戶(hù)級(jí)編程的基本原則相聯(lián)系,系統(tǒng)地跟蹤了實(shí)現(xiàn)功能。這種途徑有助于在你所了解的Linux知識(shí)基礎(chǔ)上,加深對(duì)內(nèi)核組成及工作機(jī)理的理解。 為了理解內(nèi)核代碼并掌控其行為,作者逐步引入所有的工具和匯編語(yǔ)言編程技術(shù),并一一比較x86和PowerPC的實(shí)現(xiàn),揭示了含糊不清的實(shí)現(xiàn)功能。另外,書(shū)中對(duì)源代碼例子和實(shí)際項(xiàng)目都加有適當(dāng)注釋。本書(shū)是第一本全面涵蓋快速增長(zhǎng)的PowerPC Linux開(kāi)發(fā)平臺(tái)的書(shū),也是惟一一本用Linux構(gòu)建系統(tǒng)徹底討論內(nèi)核配置的書(shū)。 本書(shū)主要內(nèi)容● 數(shù)據(jù)結(jié)構(gòu) ● x86和PPC匯編語(yǔ)言 ● 查看內(nèi)核內(nèi)部狀態(tài) ● Linux進(jìn)程模型 ● 用戶(hù)空間和內(nèi)核空間 ● 中斷和異常 ● 內(nèi)存分配和跟蹤 ● 跟蹤子系統(tǒng)行為 ● I/O交互 ● 文件系統(tǒng)和文件操作 ● 調(diào)度和同步 ● 內(nèi)核啟動(dòng)過(guò)程 ● 內(nèi)核構(gòu)建過(guò)程 ● 配置選項(xiàng) ● 設(shè)備驅(qū)動(dòng)程序 本書(shū)介紹了Linux內(nèi)核編程需要的所有技巧和技術(shù),無(wú)論對(duì)于系統(tǒng)程序員、軟件工程師、系統(tǒng)分析員、測(cè)試人員還是Linux的熱衷者來(lái)說(shuō),都是不可或缺的參考書(shū)。

作者簡(jiǎn)介

  Claudia Salzberg Rodriguez就職于IBM Linux技術(shù)中心,負(fù)責(zé)內(nèi)核及相關(guān)編程工具的開(kāi)發(fā)。在擔(dān)任Linux系統(tǒng)程序員的5年多時(shí)間里,她一直針對(duì)Intel和PPC平臺(tái),進(jìn)行從嵌入式到高性能系統(tǒng)的Linux開(kāi)發(fā)。

圖書(shū)目錄

第1章 概述
1.1 UNIX發(fā)展史 1
1.2 標(biāo)準(zhǔn)和通用接口 2
1.3 自由軟件和開(kāi)放源碼 3
1.4 Linux發(fā)布版的快速瀏覽 3
1.4.1 Debian 4
1.4.2 Red Hat/Fedora 4
1.4.3 Mandriva 4
1.4.4 SUSE 4
1.4.5 Gentoo 4
1.4.6 Yellow Dog 4
1.4.7 其他發(fā)布版 5
1.5 內(nèi)核版本信息 5
1.6 基于Power的Linux 5
1.7 操作系統(tǒng)的概念 6
1.8 內(nèi)核組織 7
1.9 Linux內(nèi)核概述 7
1.9.1 用戶(hù)接口 7
1.9.2 用戶(hù)身份鑒別 8
1.9.3 文件和文件系統(tǒng) 8
1.9.4 進(jìn)程 12
1.9.5 系統(tǒng)調(diào)用 15
1.9.6 Linux調(diào)度程序 15
1.9.7 Linux設(shè)備驅(qū)動(dòng)程序 16
1.10 可移植性和體系結(jié)構(gòu)相關(guān)性 16
小結(jié) 17
習(xí)題 17
第2章 內(nèi)核探索工具集  18
2.1 內(nèi)核中常見(jiàn)的數(shù)據(jù)類(lèi)型 18
2.1.1 鏈表 18
2.1.2 查找 21
2.1.3 樹(shù) 21
2.2 匯編 23
2.2.1 PowerPC 24
2.2.2 x86 26
2.3 匯編語(yǔ)言示例 28
2.3.1 x86中的匯編示例 29
2.3.2 PowerPC中的匯編示例 31
2.4 內(nèi)聯(lián)匯編 33
2.4.1 輸出操作數(shù) 33
2.4.2 輸入操作數(shù) 33
2.4.3 修改過(guò)的寄存器(或者已修改元素列表) 33
2.4.4 參數(shù)的編號(hào)方式 34
2.4.5 約束條件 34
2.4.6 asm 34
2.4.7 volatile  34
2.5 特殊的C語(yǔ)言用法 37
2.5.1 asmlinkage 37
2.5.2 UL 38
2.5.3 inline 38
2.5.4 const和volatile 38
2.6 內(nèi)核探測(cè)工具一覽 39
2.6.1 objdump/readelf 39
2.6.2 hexdump 40
2.6.3 nm 41
2.6.4 objcopy 41
2.6.5 ar 41
2.7 內(nèi)核發(fā)言:傾聽(tīng)來(lái)自?xún)?nèi)核的消息 41
2.7.1 printk() 41  
2.7.2 dmesg 41
2.7.3 /var/log/messages 42
2.8 其他 42
2.8.1 init 42
2.8.2 likely()和unlikely() 42
2.8.3 IS ERR和PTR ERR 43
2.8.4 通告程序鏈 44
小結(jié) 44
項(xiàng)目:Hellomode 44
習(xí)題 47
第3章 進(jìn)程:程序執(zhí)行的基本模型  48
3.1 引入程序 49
3.2 進(jìn)程描述符 51
3.2.1 與進(jìn)程屬性相關(guān)的域 53
3.2.2 與調(diào)度相關(guān)的域 54
3.2.3 涉及進(jìn)程間相互關(guān)系的域 56
3.2.4 進(jìn)程信任度相關(guān)的域 58
3.2.5 進(jìn)程權(quán)能相關(guān)的域 59
3.2.6 進(jìn)程限制相關(guān)的域 60
3.2.7 文件系統(tǒng)和地址空間相關(guān)的域 61
3.3 進(jìn)程的創(chuàng)建:fork()、vfork和clone()系統(tǒng)調(diào)用 62
3.3.1 fork()函數(shù) 64
3.3.2 vfork()函數(shù) 64
3.3.3 clone()函數(shù) 65
3.3.4 do fork()函數(shù) 66
3.4 進(jìn)程生命周期 68
3.4.1 進(jìn)程的狀態(tài) 68
3.4.2 進(jìn)程狀態(tài)轉(zhuǎn)換 69
3.5 進(jìn)程的終止 72
3.5.1 sys exit()函數(shù) 73
3.5.2 do exit()函數(shù) 73
3.5.3 父進(jìn)程通知和sys wait4() 75
3.6 了解進(jìn)程的動(dòng)態(tài):調(diào)度程序的基本構(gòu)架 77
3.6.1 基本結(jié)構(gòu) 78
3.6.2 從等待中醒來(lái)或者激活 79
3.7 等待隊(duì)列 83
3.7.1 添加到等待隊(duì)列 85
3.7.2 等待事件 86
3.7.3 喚醒進(jìn)程 88
3.8 異步執(zhí)行流程 90
3.8.1 異常 90
3.8.2 中斷 92
小結(jié) 109
項(xiàng)目:current系統(tǒng)變量 110
習(xí)題 112
第4章 內(nèi)存管理  113
4.1 頁(yè) 115
4.1.1 標(biāo)志 116
4.2 內(nèi)存區(qū) 117
4.2.1 內(nèi)存區(qū)描述符 117
4.2.2 內(nèi)存區(qū)操作輔助函數(shù)組 119
4.3 頁(yè)面 120
4.3.1 請(qǐng)求頁(yè)面函數(shù)族 120
4.3.2 釋放頁(yè)面的函數(shù)族 121
4.3.3 伙伴系統(tǒng) 122
4.4 Slab分配器 126
4.4.1 緩存描述符 127
4.4.2 通用目的緩存描述符 131
4.4.3 slab描述符 131
4.5 slab分配器的生命周期 133
4.5.1 slab分配器有關(guān)的全局變量 133
4.5.2 創(chuàng)建緩存 134
4.5.3 slab創(chuàng)建與cache grow() 139
4.5.4 Slab的銷(xiāo)毀:退還內(nèi)存與kmem cache destroy() 141
4.6 內(nèi)存請(qǐng)求路徑 142
4.6.1 kmalloc() 142
4.6.2 kmem cache alloc() 143
4.7 進(jìn)程內(nèi)存結(jié)構(gòu) 144
4.7.1 mm struct 144
4.7.2 vm area struct 146
4.8 進(jìn)程映像分布于線(xiàn)性地址空間 147
4.9 頁(yè)表 150
4.10 缺頁(yè) 150  
4.10.1 x86缺頁(yè)異常 151
4.10.2 缺頁(yè)處理程序 151
4.10.3 PowerPC缺頁(yè)異常 158
小結(jié) 158
項(xiàng)目:進(jìn)程內(nèi)存映射 159
習(xí)題 160
第5章 輸入/輸出  161
5.1 硬件如何實(shí)現(xiàn)總線(xiàn)、橋、端口和接口 161
5.2 設(shè)備 165
5.2.1 塊設(shè)備概述 165
5.2.2 請(qǐng)求隊(duì)列和I/O調(diào)度 166
5.2.3 示例:“通用”塊設(shè)備驅(qū)動(dòng)程序 174
5.2.4 設(shè)備操作 176
5.2.5 字符設(shè)備概述 177
5.2.6 網(wǎng)絡(luò)設(shè)備 177
5.2.7 時(shí)鐘設(shè)備 177
5.2.8 終端設(shè)備 178
5.2.9 直接存儲(chǔ)器存取 178
小結(jié) 178
項(xiàng)目:創(chuàng)建并口驅(qū)動(dòng)程序 178
習(xí)題 186
第6章 文件系統(tǒng)  187
6.1 文件系統(tǒng)的一般概念 187
6.1.1 文件和文件名 187
6.1.2 文件類(lèi)型 188
6.1.3 附加文件屬性 188
6.1.4 目錄和路徑名 189
6.1.5 文件的操作 189
6.1.6 文件描述符 189
6.1.7 磁盤(pán)塊,磁盤(pán)分區(qū)及其實(shí)現(xiàn) 190
6.1.8 性能 191
6.2 Linux的虛擬文件系統(tǒng) 191
6.2.1 VFS的數(shù)據(jù)結(jié)構(gòu) 193
6.2.2 全局鏈表和局部鏈表的引用 203
6.3 與VFS相關(guān)的結(jié)構(gòu) 204
6.3.1 fs struct結(jié)構(gòu) 205
6.3.2 files struct結(jié)構(gòu) 205
6.4 頁(yè)緩沖 208
6.4.1 address space結(jié)構(gòu) 209
6.4.2 buffer head結(jié)構(gòu) 210
6.5 VFS的系統(tǒng)調(diào)用和文件系統(tǒng)層 212
6.5.1 open() 213
6.5.2 close() 217
6.5.3 read() 220
6.5.4 write() 235
小結(jié) 236
習(xí)題 237
第7章 調(diào)度和內(nèi)核同步  238
7.1 Linux調(diào)度程序 239
7.1.1 選擇下一個(gè)進(jìn)程 239
7.1.2 上下文切換 244
7.1.3 讓出CPU 251
7.2 搶占 259
7.2.1 顯式內(nèi)核搶占 259
7.2.2 隱式用戶(hù)搶占 259
7.2.3 隱式內(nèi)核搶占 260
7.3 自旋鎖和信號(hào)量 262
7.4 系統(tǒng)時(shí)鐘:關(guān)于時(shí)間和定時(shí)器 264
7.4.1 實(shí)時(shí)時(shí)鐘:現(xiàn)在幾點(diǎn)了? 264
7.4.2 讀取PPC實(shí)時(shí)時(shí)鐘 266
7.4.3 讀取x86的實(shí)時(shí)時(shí)鐘 268
小結(jié) 269
習(xí)題 270
第8章 內(nèi)核引導(dǎo)  271
8.1 BIOS和Open Firmware 272
8.2 引導(dǎo)裝入程序(Boot Loaders) 272
8.2.1 GRUB 273
8.2.2 LILO 275
8.2.3 PowerPC和Yaboot 276
8.3 體系結(jié)構(gòu)相關(guān)的內(nèi)存初始化 277
8.3.1 PowerPC的硬件內(nèi)存管理 277
8.3.2 基于Intel x86體系結(jié)構(gòu)的硬件內(nèi)存管理 286
8.3.3 PowerPC和x86的代碼匯集 294
8.4 原始的RAM盤(pán) 294 8.5 開(kāi)始:start kernel() 295
8.5.1 調(diào)用lock kernel() 296
8.5.2 調(diào)用page address init() 298
8.5.3 調(diào)用printk(linux banner) 300
8.5.4 調(diào)用setup arch 300
8.5.5 調(diào)用setup per cpu areas() 303
8.5.6 調(diào)用smp prepare boot cpu() 304
8.5.7 調(diào)用sched init() 305
8.5.8 調(diào)用build all zonelists() 307
8.5.9 調(diào)用page alloc init 307
8.5.10 調(diào)用parse args() 308
8.5.11 調(diào)用trap init() 310
8.5.12 調(diào)用rcu init() 310
8.5.13 調(diào)用init IRQ() 311
8.5.14 調(diào)用softirq init() 312
8.5.15 調(diào)用time init() 312
8.5.16 調(diào)用console init() 313
8.5.17 調(diào)用profile init() 314
8.5.18 調(diào)用local irq enable() 314
8.5.19 配置initrd 315
8.5.20 調(diào)用mem init() 315
8.5.21 調(diào)用late time init() 320
8.5.22 調(diào)用calibrate delay() 320
8.5.23 調(diào)用pgtable cache init() 321
8.5.24 調(diào)用buffer init() 322
8.5.25 調(diào)用security scaffolding startup() 323
8.5.26 調(diào)用vfs caches init() 323
8.5.27 調(diào)用radix tree init() 329
8.5.28 調(diào)用signal init() 330
8.5.29 調(diào)用page writeback init() 330
8.5.30 調(diào)用proc root init() 332
8.5.31 調(diào)用init idle() 334
8.5.32 調(diào)用rest init() 334
8.6 init線(xiàn)程(或進(jìn)程1) 335
小結(jié) 339
習(xí)題 339
第9章 構(gòu)建Linux內(nèi)核  340
9.1 工具鏈 340
9.1.1 編譯程序 341
9.1.2 跨編譯程序 341
9.1.3 鏈接程序 342
9.1.4 ELF二進(jìn)制目標(biāo)文件 342
9.2 編譯內(nèi)核源代碼 346
9.2.1 解釋源代碼 346
9.2.2 編譯內(nèi)核映像 349
小結(jié) 355
習(xí)題 355
第10章 向內(nèi)核添加代碼  356
10.1 瀏覽源代碼 356
10.1.1 熟悉文件系統(tǒng) 356
10.1.2 Filps和Fops 357
10.1.3 用戶(hù)空間和內(nèi)核空間 359
10.1.4 等待隊(duì)列 360
10.1.5 工作隊(duì)列和中斷 363
10.1.6 系統(tǒng)調(diào)用 365
10.1.7 其他類(lèi)型的驅(qū)動(dòng)程序 365
10.1.8 設(shè)備模型和sysfs系統(tǒng)文件 368
10.2 編寫(xiě)源代碼 370
10.2.1 設(shè)備基礎(chǔ) 370
10.2.2 符號(hào)輸出 372
10.2.3 IOCTL 373
10.2.4 輪詢(xún)與中斷 375
10.2.5 工作隊(duì)列和Tasklets 379
10.2.6 增加系統(tǒng)調(diào)用的代碼 380
10.3 編譯和調(diào)試 382
小結(jié) 383
習(xí)題 384
參考文獻(xiàn)  385

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)