Linux內(nèi)核分析與高級教程

出版時間:2012-8  出版社:吳國偉、李瑩、 姚琳 清華大學(xué)出版社 (2012-08出版)  作者:吳國偉,李瑩,姚琳 著  頁數(shù):337  
Tag標(biāo)簽:無  

內(nèi)容概要

  《21世紀(jì)高等學(xué)校嵌入式系統(tǒng)專業(yè)規(guī)劃教材·普通高等教育“十一五”國家級規(guī)劃教材:Linux內(nèi)核分析與高級教程》主要分析了Linux(2.6.38)版本的內(nèi)核源代碼,向讀者系統(tǒng)而詳盡地介紹和分析了Linux內(nèi)核各個子系統(tǒng)的結(jié)構(gòu)、原理及Hadoop分布式文件系統(tǒng)、Linux安全子系統(tǒng)和Linux的網(wǎng)絡(luò)安全問題。全書分為14章,內(nèi)容包括Linux內(nèi)核簡介、進(jìn)程管理、進(jìn)程調(diào)度算法、中斷機(jī)制、系統(tǒng)調(diào)用、內(nèi)存管理、文件系統(tǒng)、I/O設(shè)備管理、內(nèi)核安全、Hadoop分布式文件系統(tǒng)、Linux安全子系統(tǒng)和Linux的網(wǎng)絡(luò)安全問題等。  《21世紀(jì)高等學(xué)校嵌入式系統(tǒng)專業(yè)規(guī)劃教材·普通高等教育“十一五”國家級規(guī)劃教材:Linux內(nèi)核分析與高級教程》內(nèi)容豐富,概念和原理講解細(xì)致,深入淺出。其中,有關(guān)代碼的部分都標(biāo)有注釋詳細(xì)介紹功能,書中的設(shè)計和分析也配以編程實(shí)例幫助理解。書中的每一章都相對獨(dú)立,兼顧了通用性和系統(tǒng)性,覆蓋了許多方面的內(nèi)容?!  ?1世紀(jì)高等學(xué)校嵌入式系統(tǒng)專業(yè)規(guī)劃教材·普通高等教育“十一五”國家級規(guī)劃教材:Linux內(nèi)核分析與高級教程》主要針對從事L1nux內(nèi)核編程的中高級讀者及軟件工程師學(xué)習(xí)內(nèi)核工作原理的自學(xué)參考書籍,也適合作為高校計算機(jī)專業(yè)學(xué)生學(xué)習(xí)操作系統(tǒng)課程的輔助和實(shí)踐教材。

書籍目錄

第1章 Linux內(nèi)核簡介 1.1 什么是Linux 1.1.1 Linux發(fā)展歷程 1.1.2 常見Linux發(fā)行版本 1.2 Linux的內(nèi)核特征 1.2.1 接口特色 1.2.2 功能特色 1.2.3 結(jié)構(gòu)特征 1.3 關(guān)于Linux內(nèi)核 1.3.1 Linux內(nèi)核版本 1.3.2 Linux內(nèi)核體系結(jié)構(gòu) 1.3.3 單內(nèi)核與微內(nèi)核 1.4 內(nèi)核編譯方法 1.4.1 獲取內(nèi)核代碼 1.4.2 內(nèi)核源碼的組成 1.4.3 編譯內(nèi)核 第2章 Linux進(jìn)程管理 2.1 進(jìn)程描述 2.1.1 進(jìn)程的描述 2.1.2 Linux進(jìn)程描述符 2.2 進(jìn)程的組織形式 2.2.1 進(jìn)程鏈表 2.2.2 哈希鏈表 2.2.3 等待隊列 2.2.4 當(dāng)前進(jìn)程 2.3 進(jìn)程創(chuàng)建 2.3.1 概述 2.3.2 寫時復(fù)制 2.3.3 fork()、vfork()與clone() 2.4 進(jìn)程終止 2.4.1 概述 2.4.2 do exit()函數(shù) 2.4.3 wait()函數(shù) 2.5 線程的實(shí)現(xiàn) 2.5.1 用戶線程 2.5.2 內(nèi)核線程 2.6 進(jìn)程使用綜合實(shí)例 2.6.1 問題陳述 2.6.2 解決方案 第3章 Linux進(jìn)程調(diào)度算法 3.1 內(nèi)核調(diào)度概述 3.1.1 調(diào)度原理 3.1.2 Linux調(diào)度器發(fā)展 3.1.3 CFS調(diào)度器 3.2 與調(diào)度相關(guān)的數(shù)據(jù)結(jié)構(gòu) 3.2.1 運(yùn)行隊列 3.2.2 模塊化調(diào)度 3.2.3 組調(diào)度 3.3 CFS調(diào)度算法 3.3.1 進(jìn)程優(yōu)先級和虛擬運(yùn)行時問 3.3.2 CFS調(diào)度算法的實(shí)現(xiàn) 3.4 實(shí)時調(diào)度算法 3.4.1 實(shí)時調(diào)度策略 3.4.2 實(shí)時調(diào)度的具體實(shí)現(xiàn) 3.5 Linux內(nèi)核調(diào)度 3.5.1 schedule()  3.5.2 內(nèi)核搶占 3.6 調(diào)度相關(guān)系統(tǒng)調(diào)用 第4章 Linux中斷機(jī)制分析 4.1 x86對中斷的支持 4.1.1 中斷向量 4.1.2 中斷描述符 4.1.3 中斷描述符的初始化 4.2 中斷處理程序 4.2.1 概述 4.2.2 編寫中斷處理程序 4.2.3 中斷上下文 4.3 中斷處理機(jī)制的實(shí)現(xiàn) 4.3.1 中斷的硬件處理過程 4.3.2 中斷處理程序的注冊 4.3.3 中斷的軟件處理過程 4.4 中斷的下半部 4.4.1 下半部機(jī)制 4.4.2 軟中斷 4.4.3 tasklet 4.4.4 工作隊列 第5章 Linux系統(tǒng)調(diào)用分析 5.1 c程序庫和系統(tǒng)調(diào)用 5.2 系統(tǒng)調(diào)用實(shí)現(xiàn)分析 5.2.1 系統(tǒng)調(diào)用的初始化 5.2.2 與系統(tǒng)調(diào)用相關(guān)的數(shù)據(jù)結(jié)構(gòu) 5.2.3 系統(tǒng)調(diào)用入口函數(shù) 5.2.4 系統(tǒng)調(diào)用的參數(shù)傳遞 5.3 添加系統(tǒng)調(diào)用 5.4 快速系統(tǒng)調(diào)用 5.4.1 實(shí)現(xiàn)原理 5.4.2 實(shí)現(xiàn)策略 第6章 Linux內(nèi)核同步機(jī)制分析 6.1 臨界區(qū)和競爭條件 6.1.1 臨界區(qū)舉例 6.1.2 共享隊列和加鎖 6.1.3 確定保護(hù)對象 6.1.4 并發(fā)執(zhí)行的原因 6.2 原子操作 6.2.1 原子整數(shù)操作 6.2.2 原子位操作 6.3 自旋鎖 6.3.1 普通自旋鎖 6.3.2 讀寫自旋鎖 6.4 信號量機(jī)制 6.4.1 普通信號量 6.4.2 讀寫信號量 6.5 RCU同步機(jī)制 6.5.1 RCU同步機(jī)制原理 6.5.2 RCU同步機(jī)制的實(shí)現(xiàn) 6.6 其他同步機(jī)制 6.6.1 每個處理器變量 6.6.2 禁止內(nèi)核搶占 6.6.3 BKL 第7章 Linux定時器和時間管理機(jī)制 7.1 內(nèi)核中的時間概念 7.1.1 內(nèi)核中的時鐘 7.1.2 節(jié)拍率 7.1.3 iiffies 7.2 時鐘中斷處理過程 7.2.1 時鐘中斷的初始化 7.2.2 時鐘中斷處理函數(shù) 7.3 定時器 7.3.1 定時器的實(shí)現(xiàn)原理 7.3.2 定時器的使用 7.3.3 定時器的實(shí)現(xiàn)過程 7.4 內(nèi)核中的延遲 7.4.1 忙等待 7.4.2 短延遲 7.4.3 schedule timeout() 第8章 Linux模塊機(jī)制 8.1 模塊概念 8.2 內(nèi)核模塊的使用 8.2.1 一個簡單的內(nèi)核模塊程序 8.2.2 構(gòu)建模塊 8.2.3 模塊參數(shù) 8.2.4 內(nèi)核導(dǎo)出模塊符號表 8.3 內(nèi)核模塊實(shí)現(xiàn)機(jī)制分析 8.3.1 相關(guān)的數(shù)據(jù)結(jié)構(gòu) 8.3.2 內(nèi)核模塊T作機(jī)制 第9章 內(nèi)存管理機(jī)制 9.1 基本機(jī)制 9.2 物理內(nèi)存的描述方法 9.2.1 內(nèi)存節(jié)點(diǎn) 9.2.2 內(nèi)存區(qū) 9.2.3 物理頁面 9.3 物理內(nèi)存的分配與回收 …… 第10章 Linux文件系統(tǒng) 第11章 I/O設(shè)備管理 第12章 Hadoop分布式文件系統(tǒng) 第13章 Linux安全系統(tǒng) 第14章 Linux網(wǎng)絡(luò)安全 附錄A 內(nèi)核中常見數(shù)據(jù)結(jié)構(gòu)類型 附錄B 紅黑樹 附錄C 特殊的C語言用法 附錄D 匯編語法 參考文獻(xiàn)

章節(jié)摘錄

版權(quán)頁:   插圖:   文件名稱常常表明文件的內(nèi)容,文件名稱可能包含文件的擴(kuò)展名,擴(kuò)展名是用點(diǎn)號添加到主文件名之后的附加名。這個擴(kuò)展名為用戶空間的程序提供了辨別文件內(nèi)容用途的附加方式。例如,使用c語言編寫的程序文件擴(kuò)展名為.C,GCC編譯過的程序目標(biāo)文件擴(kuò)展名為.O。盡管Linux的文件名對用戶應(yīng)用程序來說可能很重要,但是Linux操作系統(tǒng)不關(guān)心文件名,因?yàn)樗话盐募暈樽止?jié)的容器,而不考慮文件的內(nèi)容或用途。 Linux包含以下幾種文件類型。 (1)常規(guī)文件:供計算機(jī)用戶和操作系統(tǒng)存放數(shù)據(jù)、程序等信息的文件。一般長期地存放在外存儲器(磁盤、磁帶等)中。常規(guī)文件一般分為文本文件和二進(jìn)制文件。 (2)目錄文件:用來維護(hù)文件系統(tǒng)層次結(jié)構(gòu)的特殊文件。它用于創(chuàng)建、保存對系統(tǒng)中文件的訪問路徑。Linux把目錄當(dāng)作文件來處理,對文件的操作接口和目錄文件的操作接口相同。 (3)設(shè)備文件:Linux把所有的外設(shè)也都當(dāng)作文件來處理。每一個I/O設(shè)備對應(yīng)一個設(shè)備文件,存放在/dev目錄下。外設(shè)的主要類型有兩種,塊設(shè)備和字符設(shè)備,塊設(shè)備以塊為單位傳輸數(shù)據(jù),字符設(shè)備以字節(jié)為單位傳輸數(shù)據(jù)。 (4)管道文件:主要用于在進(jìn)程間傳輸數(shù)據(jù)。管道是進(jìn)程間傳輸數(shù)據(jù)的“媒介”。某個進(jìn)程將數(shù)據(jù)寫入管道的一端,另外一個進(jìn)程從管道另一端讀取數(shù)據(jù)。Linux把管道當(dāng)作文件來處理,對管道的操作與文件操作相同。 (5)鏈接文件:又稱為符號鏈接文件,它提供了共享文件的一種方法。在鏈接文件中不是通過文件名實(shí)現(xiàn)文件共享,而是通過鏈接文件中包含的指向文件的指針來實(shí)現(xiàn)對文件的訪問。使用鏈接文件可以訪問常規(guī)文件、目錄文件以及其他類型的文件。 為了保證文件內(nèi)容的安全,Linux設(shè)置了文件的保護(hù)機(jī)制,其中之一就是給文件設(shè)定一定的訪問權(quán)限。當(dāng)文件被訪問時,系統(tǒng)首先檢驗(yàn)訪問者的權(quán)限,只有符合文件訪問權(quán)限的進(jìn)程才能對文件進(jìn)行訪問。為此,Linux把訪問文件的用戶分成三類:文件所有者、與文件所有者同組的用戶和系統(tǒng)其他用戶。用戶可以對文件進(jìn)行多種操作,我們把應(yīng)用于文件的權(quán)限概括為三類:讀?、寫(w)和執(zhí)行(X)。因?yàn)檫@三類文件操作的每一類均可應(yīng)用于三類用戶中的每一類,因此,文件擁有與其相關(guān)的九個訪問權(quán)限集合。我們可以用ls命令查看文件的訪問權(quán)限。

編輯推薦

《21世紀(jì)高等學(xué)校嵌入式系統(tǒng)專業(yè)規(guī)劃教材?普通高等教育"十一五"國家級規(guī)劃教材:Linux內(nèi)核分析與高級教程》內(nèi)容豐富,概念和原理講解細(xì)致,深入淺出。其中,有關(guān)代碼的部分都標(biāo)有注釋詳細(xì)介紹功能,書中的設(shè)計和分析也配以編程實(shí)例幫助理解。書中的每一章都相對獨(dú)立,兼顧了通用性和系統(tǒng)性,覆蓋了許多方面的內(nèi)容?!?1世紀(jì)高等學(xué)校嵌入式系統(tǒng)專業(yè)規(guī)劃教材?普通高等教育"十一五"國家級規(guī)劃教材:Linux內(nèi)核分析與高級教程》主要針對從事Linux內(nèi)核編程的中高級讀者及軟件工程師學(xué)習(xí)內(nèi)核工作原理的自學(xué)參考書籍,也適合作為高校計算機(jī)專業(yè)學(xué)生學(xué)習(xí)操作系統(tǒng)課程的輔助和實(shí)踐教材。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Linux內(nèi)核分析與高級教程 PDF格式下載


用戶評論 (總計1條)

 
 

  •   必須改正一個觀念:不是所有十一五教材都是質(zhì)量合格的教材
 

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

京ICP備13047387號-7