商品簡介
《Linux內核精析》作者長期從事Linux系統特別是嵌入式系統產品的研發,積累了豐富的經驗。書中全面、系統、深入地介紹了Linux,對Linux內核進行了深度的剖析。全書共15章,包括概述、Linux內核啟動、進程、進程地址空間、進程的調度、內存管理、進程間通信、系統調用、內核同步、設備驅動程序、中斷、時鐘、文件系統、ext文件系統和內核模塊。每一章的內容都深入淺出,文字和程序相結合,每一部分的說明都比較詳細,盡可能讓讀者看得懂、能理解。
目次
第1章概述
1.1Linux的內存管理機制
1.2Linux的基本組成
1.2.1進程
1.2.2進程間通信
1.2.3內存管理
1.2.4設備驅動
1.2.5中斷
1.2.6時鐘
1.2.7文件系統
1.2.8內核模塊
1.3本章小結
第2章Linux內核啟動
2.1BOIS啟動階段
2.2實模式setup階段
2.3保護模式startup_32階段
2.4內核啟動start_kernel
2.5本章小結
第3章進程
3.1進程的表示
3.1.1進程描述符
3.1.2命名空間
3.1.3進程標識
3.2進程關係
3.3進程的複製
3.3.1寫時複製
3.3.2執行系統調用
3.4新進程啟動
3.5進程的切換
3.6進程的退出
3.7本章小結
第4章進程地址空間
4.1進程虛擬地址空間
4.1.1進程地址空間的佈局
4.1.2進程地址空間佈局的創建
4.2線性區
4.2.1虛擬內存區域的表示
4.2.2虛擬內存區域的操作
4.2.3缺頁的異常處理
4.2.4堆的管理
4.3本章小結
第5章進程的調度
5.1數據結構
5.1.1調度器類
5.1.2就緒隊列
5.1.3調度實體
5.2進程優先級
5.2.1優先級內核表示
5.2.2優先級的計算
5.2.3計算負荷權重
5.2.4核心調度器
5.3CFS調度器
5.3.1CFS調度器對象
5.3.2CFS調度器的管理結構
5.3.3CFS調度器操作
5.3.4CFS隊列操作
5.3.5週期性調度器
5.3.6進程加入就緒隊列
5.3.7選擇下一個進程
5.3.8喚醒進程
5.3.9新進程處理
5.4實時調度類
5.4.1實時進程的數據結構
5.4.2實時調度器操作
5.5本章小結
第6章內存管理
6.1內存管理的框架
6.1.1非一致內存訪問(NUMA)
6.1.2內存管理區
6.1.3物理內存地址空間
6.2內存管理初始化
6.2.1建立數據結構
6.2.2啟動過程內存管理的初始化
6.2.3頁表的初始化
6.2.4內存管理結構的初始化
6.3夥伴算法
6.3.1夥伴算法初始化與釋放
6.3.2內存分配API
6.3.3內核中不連續頁的分配
6.3.4內核映射
6.4slab分配器
6.4.1slab分配器的原理
6.4.2slab分配器的實現
6.4.3通用對象
6.5slub分配器
6.5.1slub分配器的原理
6.5.2slub分配器的初始化
6.5.3slub內存的分配
6.5.4slub內存的釋放
6.6本章小結
第7章進程間通信
7.1管道
7.1.1管道相關的數據結構
7.1.2管道的創建
7.1.3管道的撤銷
7.1.4向管道寫入數據
7.1.5從管道讀取數據
7.2FIFO
7.3SystemVIPC
7.3.1IPC信號量
7.3.2消息隊列
7.3.3共享內存
7.4信號
7.4.1信號發送
7.4.2信號傳遞與捕獲
7.5本章小結
第8章系統調用
8.1系統調用簡介
8.2系統調用的實現
8.3系統調用的參數傳遞
8.4異常表
8.5本章小結
第9章內核同步
9.1原子操作
9.2自旋鎖
9.3讀/寫自旋鎖
9.4信號量
9.5RCU機制
9.6屏障
9.7互斥量
9.8本章小結
第10章設備驅動程序
10.1I/O體系結構
10.2設備文件
10.2.1字符設備、塊設備和其他設備
10.2.2主、從設備號的表示
10.3字符設備註冊
10.3.1數據結構
10.3.2字符設備的註冊過程
10.4與文件系統關聯
10.4.1inode中的設備文件成員
10.4.2標準文件操作
10.5字符設備操作
10.5.1字符設備的表示
10.5.2打開設備文件
10.6塊設備操作
10.6.1塊設備的處理
10.6.2塊設備的表示
10.6.3向系統添加硬盤和分區
10.6.4請求結構
10.6.5BIO
10.6.6提交請求
10.6.7I/O調度
10.7資源分配
10.7.1資源管理
10.7.2I/O內存
10.8總線系統
10.8.1通用驅動程序模型
10.8.2PCI總線
10.8.3USB總線
10.9本章小結
第11章中斷
11.1中斷處理與中斷描述符
11.2中斷的初始化
11.3中斷請求隊列的初始化
11.4中斷的處理
11.5中斷與異常的返回
11.6軟中斷
11.7tasklet
11.8工作隊列
11.9本章小結
第12章時鐘
12.1低分辨率定時器
12.1.1數據結構
12.1.2動態定時器
12.2通用時鐘框架
12.2.1clocksource概述
12.2.2clocksource操作
12.2.3tickless機制
12.3高分辨率定時器
12.3.1高分辨率定時器管理結構
12.3.2高分辨率定時器的初始化
12.3.3高分辨率定時器操作
12.3.4高分辨率定時器的實現
12.3.5動態時鐘
12.4時鐘中斷處理
12.5軟件定時器
12.5.1軟件定時器的初始化
12.5.2軟件定時器的註冊與處理
12.6本章小結
第13章文件系統
13.1虛擬文件系統管理
13.2通用文件模型
13.2.1VFS的超級塊對象
13.2.2VFS的inode結構
13.2.3VFS的文件對象
13.2.4VFS的對象
13.2.5與進程相關的文件
13.3文件的類型
13.3.1磁盤文件
13.3.2網絡文件
13.3.3特殊文件
13.4虛擬文件系統處理
13.4.1文件系統類型註冊
13.4.2文件系統的掛載
13.4.3文件系統的卸載
13.4.4路徑定位
13.4.5文件的打開與關閉
13.4.6文件的讀/寫
13.5proc文件系統
13.5.1數據結構
13.5.2proc文件系統的初始化
13.5.3安裝proc文件系統
13.5.4proc數據項管理
13.6sysfs文件系統
13.6.1數據結構
13.6.2安裝sysfs文件系統
13.6.3文件與的操作
13.7本章小結
第14章ext文件系統
14.1簡介
14.2ext2文件系統的物理結構
14.3ext2文件系統的數據結構
14.3.1超級塊
14.3.2組描述符
14.3.3索引節點表
14.3.4和文件
14.3.5ext2文件系統內存中的結構
14.4ext2文件系統操作
14.5ext2磁盤空間管理
14.5.1創建索引節點inode
14.5.2刪除索引節點inode
14.5.3釋放數據塊
14.6ext3文件系統
14.7本章小結
第15章內核模塊
15.1模塊的實現
15.1.1模塊的表示
15.1.2模塊的依賴關係
……