Linux 2.6內(nèi)核標(biāo)準(zhǔn)教程

出版時(shí)間:2008-11  出版社:人民郵電出版社  作者:華清遠(yuǎn)見(jiàn)嵌入式培訓(xùn)中心,河秦,王洪濤 編著  頁(yè)數(shù):368  字?jǐn)?shù):567000  
Tag標(biāo)簽:無(wú)  

前言

寫(xiě)作背景自由、開(kāi)放的Linux操作系統(tǒng)正在蓬勃發(fā)展,得到了廣泛的應(yīng)用,Linux操作系統(tǒng)的用戶數(shù)量迅速增長(zhǎng),很多Linux愛(ài)好者希望能夠?qū)W習(xí)、掌握Linux內(nèi)核的原理、機(jī)制,能夠閱讀Linux內(nèi)核代碼,并能夠加以應(yīng)用,但在實(shí)際的學(xué)習(xí)過(guò)程中常遇到以下問(wèn)題。Linux內(nèi)核學(xué)習(xí)門(mén)檻較高,初學(xué)者總想迅速讀懂內(nèi)核源代碼,往往在不清楚內(nèi)核運(yùn)行機(jī)制和內(nèi)核代碼結(jié)構(gòu)的情況下就開(kāi)始閱讀Linux內(nèi)核代碼,會(huì)遇到很大障礙。隨著Linux內(nèi)核的發(fā)展,內(nèi)核的代碼量日益增加,系統(tǒng)規(guī)模不斷擴(kuò)大,復(fù)雜度不斷提高。

內(nèi)容概要

Linux內(nèi)核是Linux操作系統(tǒng)中最核心的部分,用于實(shí)現(xiàn)對(duì)硬件部件的編程控制和接口操作。本書(shū)深入、系統(tǒng)地講解了Linux內(nèi)核的工作原理,對(duì)Linux內(nèi)核的核心組件逐一進(jìn)行深入講解。    全書(shū)共8章,首先講解Linux系統(tǒng)的引導(dǎo)過(guò)程;然后對(duì)Linux內(nèi)核的3大核心模塊——內(nèi)存管理、進(jìn)程管理、中斷和異常處理進(jìn)行了深入的分析;在此基礎(chǔ)上,對(duì)時(shí)間度量、系統(tǒng)調(diào)用進(jìn)行了分析和討論;最后講解了Linux內(nèi)核中常見(jiàn)的同步機(jī)制,使讀者掌握每處理器變量和RCU這兩種新的同步機(jī)制。    本書(shū)適合Linux內(nèi)核愛(ài)好者、Linux驅(qū)動(dòng)開(kāi)發(fā)人員、Linux系統(tǒng)工程師參考使用,也可以作為計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)學(xué)生深入學(xué)習(xí)操作系統(tǒng)的參考書(shū)。

書(shū)籍目錄

第1章  Linux內(nèi)核學(xué)習(xí)基礎(chǔ)   1.1  為什么研究Linux內(nèi)核     1.1.1  Linux的歷史來(lái)源     1.1.2  Linux的發(fā)展現(xiàn)狀     1.1.3  Linux的前景展望   1.2  選擇什么版本進(jìn)行研究   1.3  內(nèi)核基本結(jié)構(gòu)     1.3.1  內(nèi)核在操作系統(tǒng)中的地位     1.3.2  Linux 2.6內(nèi)核源代碼目錄樹(shù)簡(jiǎn)介     1.3.3  Linux 2.6內(nèi)核的新特性   1.4  如何閱讀本書(shū)     1.4.1  內(nèi)核探索工具    1.4.2  推薦閱讀方法 第2章  引導(dǎo)過(guò)程分析   2.1  內(nèi)核鏡像的構(gòu)建過(guò)程    2.1.1  編譯內(nèi)核的步驟及分析    2.1.2  內(nèi)核鏡像構(gòu)建過(guò)程分析  2.2  系統(tǒng)引導(dǎo)過(guò)程分析    2.2.1  傀儡引導(dǎo)扇區(qū)    2.2.2  探測(cè)系統(tǒng)資源     2.2.3  解壓內(nèi)核鏡像    2.2.4  進(jìn)入保護(hù)模式    2.2.5  系統(tǒng)最終初始化  2.3  系統(tǒng)引導(dǎo)過(guò)程總結(jié)第3章  內(nèi)存管理  3.1  基礎(chǔ)知識(shí)     3.1.1  存儲(chǔ)器地址     3.1.2  分段機(jī)制     3.1.3  分頁(yè)機(jī)制  3.2  內(nèi)核頁(yè)表的初始化過(guò)程    3.2.1  啟用分頁(yè)機(jī)制    3.2.2  構(gòu)建內(nèi)核頁(yè)表  3.3  物理內(nèi)存的描述方法    3.3.1  內(nèi)存節(jié)點(diǎn)    3.3.2  內(nèi)存區(qū)域 1  3.3.3  物理頁(yè)框  3.4  物理內(nèi)存的初始化過(guò)程    3.4.1  探測(cè)系統(tǒng)物理內(nèi)存    3.4.2  初始化內(nèi)存分配器  3.5  物理內(nèi)存的分配與回收    3.5.1  伙伴分配算法    3.5.2  對(duì)象緩沖技術(shù)  3.6  內(nèi)核地址空間    3.6.1  常規(guī)映射地址空間    3.6.2  固定映射地址空間    3.6.3  長(zhǎng)久內(nèi)核映射空間    3.6.4  臨時(shí)內(nèi)核映射空間     3.6.5  非連續(xù)映射地址空間 第4章  進(jìn)程管理   4.1  進(jìn)程與線程的概念     4.1.1  程序與進(jìn)程     4.1.2  進(jìn)程與線程   4.2  進(jìn)程描述符     4.2.1  進(jìn)程標(biāo)識(shí)符     4.2.2  進(jìn)程的狀態(tài)     4.2.3  進(jìn)程上下文     4.2.4  當(dāng)前進(jìn)程   4.3  進(jìn)程的組織形式     4.3.1  進(jìn)程標(biāo)識(shí)符構(gòu)成的哈希表     4.3.2  所有進(jìn)程構(gòu)成的雙向鏈表     4.3.3  執(zhí)行態(tài)進(jìn)程組成的運(yùn)行隊(duì)列     4.3.4  阻塞態(tài)進(jìn)程組成的等待隊(duì)列  4.4  進(jìn)程的創(chuàng)建過(guò)程    4.4.1  進(jìn)程創(chuàng)建的接口函數(shù)  4.4.2  進(jìn)程創(chuàng)建的處理過(guò)程  4.5  進(jìn)程調(diào)度算法    4.5.1  進(jìn)程的分類(lèi)    4.5.2  進(jìn)程優(yōu)先級(jí)    4.5.3  時(shí)間片分配    4.5.4  進(jìn)程調(diào)度時(shí)機(jī)  4.6  進(jìn)程切換過(guò)程分析    4.6.1  選取合適進(jìn)程    4.6.2  完成上下文切換  4.7  空閑進(jìn)程的初始化    4.7.1  空閑進(jìn)程的內(nèi)核態(tài)棧    4.7.2  空閑進(jìn)程的內(nèi)存描述符    4.7.3  空閑進(jìn)程的硬件上下文    4.7.4  空閑進(jìn)程的任務(wù)狀態(tài)段第5章  中斷和異常  5.1  基礎(chǔ)知識(shí)    5.1.1  中斷和異常的定義    5.1.2  中斷和異常的分類(lèi)    5.1.3  中斷和異常的對(duì)比  5.2  處理機(jī)制    5.2.1  IA32架構(gòu)下的處理機(jī)制    5.2.2  Linux內(nèi)核的實(shí)現(xiàn)策略  5.3  中斷描述符表的初始化    5.3.1  中斷描述符表的初步初始化    5.3.2  中斷描述符表的最終初始化  5.4  具體處理過(guò)程     5.4.1  公用的硬件處理階段     5.4.2  中斷的軟件處理階段     5.4.3  異常的軟件處理階段   5.5  延遲處理機(jī)制     5.5.1  softirq延遲處理     5.5.2  tasklet延遲處理     5.5.3  work queue延遲處理 第6章  時(shí)間度量   6.1  硬件支持    6.1.1  實(shí)時(shí)鐘RTC    6.1.2  系統(tǒng)時(shí)鐘  6.2  軟件架構(gòu)    6.2.1  相對(duì)時(shí)間    6.2.2  墻上時(shí)間    6.2.3  內(nèi)核定時(shí)器  6.3  時(shí)間度量的初始化過(guò)程    6.3.1  內(nèi)核定時(shí)器初始化    6.3.2  系統(tǒng)時(shí)鐘的初始化    6.3.3  初始化時(shí)鐘中斷源  6.4  時(shí)鐘中斷處理過(guò)程    6.4.1  找回遺失的時(shí)鐘中斷    6.4.2  更新jiffies_64、xtime    6.4.3  對(duì)當(dāng)前進(jìn)程記賬    6.4.4  時(shí)鐘中斷處理小結(jié)  6.5  內(nèi)核定時(shí)器工作原理    6.5.1  初始化內(nèi)核定時(shí)器節(jié)點(diǎn)    6.5.2  激活內(nèi)核定時(shí)器節(jié)點(diǎn)    6.5.3  內(nèi)核定時(shí)器的處理過(guò)程  6.6  微秒級(jí)延遲    6.6.1  微妙級(jí)延遲的訪問(wèn)接口  6.6.2  微妙級(jí)延遲的實(shí)現(xiàn)方法第7章  系統(tǒng)調(diào)用  7.1  系統(tǒng)服務(wù)接口的種類(lèi)    7.1.1  系統(tǒng)調(diào)用接口    7.1.2  應(yīng)用編程接口  7.2  系統(tǒng)調(diào)用的訪問(wèn)手段    7.2.1  使用封裝函數(shù)    7.2.2  使用通用接口    7.2.3  使用內(nèi)嵌匯編  7.3  系統(tǒng)調(diào)用的工作機(jī)制    7.3.1  系統(tǒng)調(diào)用的基本要素    7.3.2  系統(tǒng)調(diào)用門(mén)的初始化    7.3.3  系統(tǒng)調(diào)用的處理過(guò)程  7.4  系統(tǒng)調(diào)用的參數(shù)傳遞    7.4.1  少量參數(shù)的情況    7.4.2  大量參數(shù)的情況  7.5  如何添加新系統(tǒng)調(diào)用    7.5.1  前期準(zhǔn)備工作    7.5.2  添加處理函數(shù)    7.5.3  測(cè)試新系統(tǒng)調(diào)用  7.6  什么是快速系統(tǒng)調(diào)用    7.6.1  工作機(jī)制    7.6.2  實(shí)現(xiàn)策略    7.6.3  處理過(guò)程第8章  內(nèi)核同步機(jī)制   8.1  同步基本原理     8.1.1  原子變量     8.1.2  中斷禁用     8.1.3  內(nèi)核態(tài)搶占   8.2  系統(tǒng)引導(dǎo)過(guò)程分析     8.2.1  普通自旋鎖    8.2.2  讀寫(xiě)自旋鎖     8.2.3  順序自旋鎖   8.3  信號(hào)量機(jī)制     8.3.1  普通信號(hào)量     8.3.2  讀寫(xiě)信號(hào)量   8.4  其他同步機(jī)制     8.4.1  每處理器變量     8.4.2  RCU同步機(jī)制 附錄A  Linux內(nèi)核雙向鏈表  A.1  內(nèi)核鏈表表頭  A.2  內(nèi)核鏈表遍歷  A.3  內(nèi)核鏈表遍歷附錄B  跟蹤調(diào)試內(nèi)核  B.1  安裝輔助工具  B.2  準(zhǔn)備內(nèi)核鏡像  B.3  準(zhǔn)備根文件系統(tǒng)  B.4  進(jìn)行源碼級(jí)調(diào)試附錄C  Linux內(nèi)核匯編語(yǔ)法  C.1  常規(guī)匯編語(yǔ)法  C.1.1  寄存器前綴  C.1.2  立即數(shù)前綴  C.1.3  操作數(shù)順序  C.1.4  操作數(shù)寬度  C.1.5  內(nèi)存尋址格式  C.2  內(nèi)嵌匯編語(yǔ)法  C.2.1  內(nèi)嵌匯編舉例  C.2.2  內(nèi)嵌匯編格式——格式框架  C.2.3  內(nèi)嵌匯編格式——語(yǔ)句模板  C.2.4  內(nèi)嵌匯編格式——輸出列表  C.2.5  內(nèi)嵌匯編格式——輸入列表  C.2.6  內(nèi)嵌匯編格式——修飾字符  C.2.7  內(nèi)嵌匯編格式——破壞描述附錄D  參考文獻(xiàn)  D.1  關(guān)于IA32體系結(jié)構(gòu)的資源  D.2  關(guān)于Linux內(nèi)核的相關(guān)資源  D.3  關(guān)于計(jì)算機(jī)基本原理的資源  D.4  其他相關(guān)資源

章節(jié)摘錄

插圖:第1章 Linux內(nèi)核學(xué)習(xí)基礎(chǔ)1.1 為什么研究Linux內(nèi)核本節(jié)先對(duì)Linux系統(tǒng)的來(lái)源、歷史背景和現(xiàn)狀作簡(jiǎn)單介紹,然后討論自由軟件的價(jià)值所 在及自由軟件如何滿足用戶的需要,最后講解Linux系統(tǒng)的應(yīng)用前景和未來(lái)。1.1.1 Linux的歷史來(lái)源談到Linux內(nèi)核,不能不介紹GNU項(xiàng)目。假若沒(méi)有GNU計(jì)劃和GNU推出的自由軟件,Linux內(nèi)核不可能如此成功;Linux內(nèi)核的開(kāi)發(fā)工作都是基于GNU推出的自由軟件完成的。反過(guò)來(lái),沒(méi)有Linux內(nèi)核,GNU計(jì)劃也只是一個(gè)空談——它無(wú)法向用戶提供一個(gè)完全自由的類(lèi)UNIX操作系統(tǒng)。GNU和Linux相輔相承、缺一不可。GNU工程始于l984年,由自由軟件之父Richard Stallman組織,目的在于開(kāi)發(fā)一套自由、完整的UNIX操作系統(tǒng)。該系統(tǒng)是一個(gè)完全“自由”的軟件體系,與此相應(yīng)的有一份通用公共許可證(General Public License,GPL)。和大多數(shù)軟件許可證相反,GNU通用公共許可證力圖保證用戶共享和修改自由軟件的自由——保證自由軟件對(duì)所有用戶是自由的,這里指的是自由而不是免費(fèi)。GPL的詳細(xì)信息,請(qǐng)參見(jiàn)http://www.gnu.org/licenses/licenses.html。Linux內(nèi)核及其他相關(guān)的大量軟件都是在GPL的推動(dòng)下開(kāi)發(fā)和發(fā)布的。各種使用Linux作為內(nèi)核的GNU操作系統(tǒng)正被廣泛地使用著,雖然這些系統(tǒng)通常被稱作為L(zhǎng)inux,但是它們應(yīng)該被更確切地稱為GNU/Linux系統(tǒng)。原因在于,Linux實(shí)際上是操作系統(tǒng)的內(nèi)核,使這個(gè)內(nèi)核變得非常有用的大量應(yīng)用程序都是GNU軟件,都是在GPL許可證下發(fā)布的。例如,窗口管理系統(tǒng)、編譯器、各種shell、腳本解釋器、瀏覽器、編輯器以及其他多不勝數(shù)的實(shí)用工具?;谠撛颍珿NU/Linux更適合作為操作系統(tǒng)的名稱,而Linux則適合作為內(nèi)核的名稱。GNU項(xiàng)目的開(kāi)發(fā)策略是先完成現(xiàn)有UNIX系統(tǒng)中實(shí)用程序(如Is、cat、autoconf、 automake)的自由實(shí)現(xiàn),然后開(kāi)發(fā)GNU操作系統(tǒng)的核心——Hurd內(nèi)核,只要Hurd內(nèi)核開(kāi)發(fā)出來(lái),GNU就是一套真正自給自足、完整的自由操作系統(tǒng)。但與此同時(shí),Linux內(nèi)核在短短幾年內(nèi)迅速崛起,也使用GNU的通用公共許可證,填補(bǔ)了GNU Hurd內(nèi)核的空缺。因?yàn)長(zhǎng)inux內(nèi)核已經(jīng)十分成熟,目前幾乎所有的GNU系統(tǒng)都采用Linux作為操作系統(tǒng)的核心。如果說(shuō)Richard Stallman創(chuàng)立并推動(dòng)了自由軟件的發(fā)展,那么Linus毫不猶豫奉獻(xiàn)給GNu的Linux,則把自由軟件的發(fā)展帶入了一個(gè)全新的境界。Linux內(nèi)核是一個(gè)極其成功的自由軟件,是自由軟件中的一個(gè)典范。

編輯推薦

理解Linux內(nèi)核的工作原理是做好嵌入式Linux開(kāi)發(fā)的關(guān)鍵,也是嵌入式Linux系統(tǒng)開(kāi)發(fā)的難點(diǎn)之一?!禠inux2.6內(nèi)核標(biāo)準(zhǔn)教程》緊扣這一主題,以簡(jiǎn)沽的語(yǔ)言進(jìn)行了深入淺出的講解,值得一讀。北京麥克泰軟件技術(shù)有限公司(BMR)董事長(zhǎng)/電子產(chǎn)品世界雜志編委何小慶《Linux2.6內(nèi)核標(biāo)準(zhǔn)教程》有非常突出的特點(diǎn)一圖文并茂、分析透徹,全書(shū)配以大量圖表引導(dǎo)讀者建立起對(duì)Linux內(nèi)核的認(rèn)識(shí)和理解,是作者多年嵌入式Linux從業(yè)經(jīng)驗(yàn)的總結(jié),讀者一定會(huì)從中受益。中國(guó)軟件行業(yè)協(xié)會(huì)嵌入式系統(tǒng)分會(huì)秘書(shū)長(zhǎng)郭淳學(xué)在開(kāi)源技術(shù)盛行的今天,基于Linux內(nèi)核的計(jì)算機(jī)系統(tǒng)正在發(fā)揮符巨大的作用,越來(lái)越多的人參與到Linux的相關(guān)開(kāi)發(fā)之中,《Linux2.6內(nèi)核標(biāo)準(zhǔn)教程》是深入學(xué)習(xí)Linux內(nèi)核的最佳選擇。

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    Linux 2.6內(nèi)核標(biāo)準(zhǔn)教程 PDF格式下載


用戶評(píng)論 (總計(jì)17條)

 
 

  •   對(duì)于讀Linux內(nèi)核代碼很有幫助,理解操作系統(tǒng)的原理等等,很好的一本書(shū)!!
  •   這本書(shū)對(duì)本人來(lái)說(shuō),正好.
  •   教程比較通俗,在同類(lèi)教材里是比較適合上手的。就是“標(biāo)準(zhǔn)”2個(gè)字有些不明白。
  •   不錯(cuò)的,這本書(shū),值得看
  •   很通俗的教程,很好很強(qiáng)大
  •   還在讀,感覺(jué)不錯(cuò)!
  •   送貨速度也快,挺好的
  •   書(shū)中內(nèi)容枯燥,不適合初學(xué)者。
  •   書(shū)本不錯(cuò),不過(guò)書(shū)中的光盤(pán)給我郵到的時(shí)候竟然是斷開(kāi)的,郁悶
  •   寫(xiě)得過(guò)于簡(jiǎn)單,非常差,浪費(fèi)錢(qián)
  •   對(duì)于內(nèi)核分析來(lái)說(shuō) 就是垃圾
  •   講的挺好,對(duì)內(nèi)核剖析的挺讓人易懂,就是有一些小錯(cuò)誤,不過(guò)稍微動(dòng)下腦筋也不影響閱讀
  •   書(shū)的內(nèi)容著實(shí)不錯(cuò),但是里邊有許多小錯(cuò)誤,可能是碼字人員太粗心了,不過(guò)一般人一看就知道正確的是什么,不影響學(xué)習(xí)
  •   這種技術(shù)類(lèi)的書(shū)籍要么買(mǎi)外國(guó)人寫(xiě)的,國(guó)人寫(xiě)的也只有一些培訓(xùn)公司的還行,高校寫(xiě)的書(shū)都是垃圾。
  •   寫(xiě)的不錯(cuò),但是還是要有一定基礎(chǔ)的人在讀,如果以前沒(méi)有搞過(guò)linux,剛上來(lái)就弄這本書(shū)的話會(huì)找不著頭緒
  •   對(duì)內(nèi)核的部分代碼進(jìn)行了注釋式的解釋?zhuān)戒浿羞€講解了使用qemu調(diào)試內(nèi)核的方法。個(gè)人感覺(jué),配合O'reilly的《深入理解LINUX內(nèi)核》更好用
  •     國(guó)人寫(xiě)的書(shū)。
      周立功還寫(xiě)了序。
      初讀一下,感覺(jué)還行。不足的地方是,序言里面寫(xiě)的互動(dòng)論壇,竟然已經(jīng)換成其他的書(shū)了。
      另外,書(shū)很薄,很多地方?jīng)]有講到,感覺(jué)如果讀《情景分析》和《UKL3》的話,這本書(shū)可以先讀一下。
      最大的優(yōu)點(diǎn)是,利用的內(nèi)核是2.6.15.比較新了。
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7