Linux 2.6內(nèi)核標準教程

出版時間:2008-11  出版社:人民郵電出版社  作者:華清遠見嵌入式培訓(xùn)中心,河秦,王洪濤 編著  頁數(shù):368  字數(shù):567000  
Tag標簽:無  

前言

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

內(nèi)容概要

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

書籍目錄

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

章節(jié)摘錄

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

編輯推薦

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

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    Linux 2.6內(nèi)核標準教程 PDF格式下載


用戶評論 (總計17條)

 
 

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

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7