內(nèi)容簡(jiǎn)介
為了透徹理解Linux的工作機(jī)理,以及為何它在各種系統(tǒng)上能順暢運(yùn)行,你需要深入到內(nèi)核的心臟。cPu與外部世界的所有交互活動(dòng)都是由內(nèi)核處理的,哪些程序會(huì)分享處理器的時(shí)間,以什么樣的順序來分享。內(nèi)核不遺余力地管理有限的內(nèi)存,以使數(shù)以千計(jì)的進(jìn)程有效地共享系統(tǒng)資源。內(nèi)核還精心組織數(shù)據(jù)傳送,使得cPu不再受限于慢速硬盤。
《深入理解Linux內(nèi)核》第三版將引領(lǐng)你暢游內(nèi)核中用到的最主要數(shù)據(jù)結(jié)構(gòu)、算法和編程技巧。如果你的確想了解計(jì)算機(jī)內(nèi)部的實(shí)現(xiàn)機(jī)理,那么作者透過現(xiàn)象探尋本質(zhì),提供了頗有價(jià)值的深入分析。本書針對(duì)具體的Intel平臺(tái),討論了其重要特征,逐行剖析了相關(guān)的代碼片段。但是,本書涵蓋的內(nèi)容不僅僅局限于代碼的機(jī)理,還解釋了Linux運(yùn)作方式的理論支撐。
本書第三版涵蓋Linux2.6,從中可以看到幾乎內(nèi)核每個(gè)子系統(tǒng)都有相當(dāng)大的變化,首當(dāng)其沖的是內(nèi)存管理和塊設(shè)備部分。本書集中討論了如下內(nèi)容:
內(nèi)存管理,包括文件緩沖、進(jìn)程交換以及直接內(nèi)存訪問(DMA)
虛擬文件系統(tǒng)層和第二及第三擴(kuò)展文件系統(tǒng)
進(jìn)程創(chuàng)建及調(diào)度
信號(hào)、中斷及設(shè)備驅(qū)動(dòng)程序的主要接口
定時(shí)
內(nèi)核中的同步
進(jìn)程間通信(IPC)
程序執(zhí)行
本書將使你熟悉Linux所有的內(nèi)在工作機(jī)理,但本書不僅僅是一種學(xué)術(shù)演練。你將了解到什么條件會(huì)促使Linux產(chǎn)生最佳性能,你還會(huì)看到,Linux在各種環(huán)境下如何滿足進(jìn)程調(diào)度、文件訪問及內(nèi)存管理期間系統(tǒng)提出的快速響應(yīng)要求。本書有助于你充分展現(xiàn)Linux系統(tǒng)的魅力。
目錄
前言
第一章緒論
Linux與其他類Unix內(nèi)核的比較
硬件的依賴性
Linux版本
操作系統(tǒng)基本概念
Unix文件系統(tǒng)概述
Unix內(nèi)核概述
第二章內(nèi)存尋址內(nèi)存地址
硬件中的分段
Linux中的分段
硬件中的分頁
Linux中的分頁
第三章進(jìn)程進(jìn)程、輕量級(jí)進(jìn)程和線程
進(jìn)程描述符
進(jìn)程切換
創(chuàng)建進(jìn)程
撤消進(jìn)程
第四章中斷和異常
中斷信號(hào)的作用
中斷和異常
中斷和異常處理程序的嵌套執(zhí)行
初始化中斷描述符表
異常處理
中斷處理
軟中斷及tasklet
工作隊(duì)列
從中斷和異常返回
第五章內(nèi)核同步
內(nèi)核如何為不同的請(qǐng)求提供服務(wù)
同步原語
對(duì)內(nèi)核數(shù)據(jù)結(jié)構(gòu)的同步訪問
避免競(jìng)爭(zhēng)條件的實(shí)例
第六章定時(shí)測(cè)量
時(shí)鐘和定時(shí)器電路
Linux計(jì)時(shí)體系結(jié)構(gòu)
更新時(shí)間和日期
更新系統(tǒng)統(tǒng)計(jì)數(shù)
軟定時(shí)器和延遲函數(shù)
與定時(shí)測(cè)量相關(guān)的系統(tǒng)調(diào)用
第七章進(jìn)程調(diào)度
調(diào)度策略
調(diào)度算法
調(diào)度程序所使用的數(shù)據(jù)結(jié)構(gòu)
調(diào)度程序所使用的函數(shù)
多處理器系統(tǒng)中運(yùn)行隊(duì)列的平衡
與調(diào)度相關(guān)的系統(tǒng)調(diào)用
第八章內(nèi)存管理
頁框管理
內(nèi)存區(qū)管理
非連續(xù)內(nèi)存區(qū)管理
第九章進(jìn)程地址空間
進(jìn)程的地址空間
內(nèi)存描述符
線性區(qū)
缺頁異常處理程序
創(chuàng)建和刪除進(jìn)程的地址空間
堆的管理
第十章系統(tǒng)調(diào)用
POSIXAPI和系統(tǒng)調(diào)用
系統(tǒng)調(diào)用處理程序及服務(wù)例程
進(jìn)入和退出系統(tǒng)調(diào)用
參數(shù)傳遞
內(nèi)核封裝例程
第十一章信號(hào)
信號(hào)的作用
產(chǎn)生信號(hào)
傳遞信號(hào)
與信號(hào)處理相關(guān)的系統(tǒng)調(diào)用
第十二章虛擬文件系統(tǒng)
虛擬文件系統(tǒng)(VFS)的作用
VFS的數(shù)據(jù)結(jié)構(gòu)
文件系統(tǒng)類型
文件系統(tǒng)處理
路徑名查找
VFS系統(tǒng)調(diào)用的實(shí)現(xiàn)
文件加鎖
第十三章I/O體系結(jié)構(gòu)和設(shè)備驅(qū)動(dòng)程序
I/O體系結(jié)構(gòu)
設(shè)備驅(qū)動(dòng)程序模型
設(shè)備文件
設(shè)備驅(qū)動(dòng)程序
字符設(shè)備驅(qū)動(dòng)程序
第十四章塊設(shè)備驅(qū)動(dòng)程序
塊設(shè)備的處理
通用塊層
I/O調(diào)度程序
塊設(shè)備驅(qū)動(dòng)程序
打開塊設(shè)備文件
第十五章頁高速緩存
頁高速緩存
把塊存放在頁高速緩存中
把臟頁寫入磁盤
sync()、fsync()和fdatasync()系統(tǒng)調(diào)用
第十六章訪問文件
讀寫文件
內(nèi)存映射
直接I/O傳送
異步I/O
第十七章回收頁框
頁框回收算法
反向映射
PFRA實(shí)現(xiàn)
交換
第十八章Ext2和Ext3文件系統(tǒng)
Ext2的一般特征
Ext2磁盤數(shù)據(jù)結(jié)構(gòu)
Ext2的內(nèi)存數(shù)據(jù)結(jié)構(gòu)
創(chuàng)建Ext2文件系統(tǒng)
Ext2的方法
管理Ext2磁盤空間
Ext3文件系統(tǒng)
第十九章進(jìn)程通信
管道
FIFO
SystemVIPC
POSIX消息隊(duì)列
第二十章程序的執(zhí)行
可執(zhí)行文件
可執(zhí)行格式
執(zhí)行域
exec函數(shù)
附錄一系統(tǒng)啟動(dòng)
附錄二模塊
參考文獻(xiàn)
源代碼索引
-
Linux
+關(guān)注
關(guān)注
87文章
11329瀏覽量
209967 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35486 -
米爾科技
+關(guān)注
關(guān)注
5文章
227瀏覽量
21022
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論