Linux內(nèi)核編程

出版時(shí)間:2011-5  出版社:人民郵電  作者:(美)羅德里格斯//費(fèi)舍爾//斯莫斯基|譯者:陳莉君//賀炎//劉霞林  頁數(shù):400  譯者:陳莉君 賀炎 劉霞林  
Tag標(biāo)簽:無  

前言

  無論是一般性技術(shù)還是計(jì)算機(jī)技術(shù),對于試圖了解它們的人們來說都具有不可思議的魔力。技術(shù)的發(fā)展使其影響力不斷擴(kuò)大,迫使人們對一些舊的概念重新評估。Linux操作系統(tǒng)已經(jīng)對產(chǎn)業(yè)變革和商業(yè)營銷方式轉(zhuǎn)變做出了巨大貢獻(xiàn)。它采用GNU公共許可證并與GNU軟件良性互動(dòng),占據(jù)了中心位置,圍繞開源、自由軟件和開發(fā)社區(qū)思想的各種爭論都離不開它。Linux無疑是一個(gè)極其成功的典范,展現(xiàn)了開源操作系統(tǒng)無比強(qiáng)大的力量,其理論的魔力令世界各地的程序員們?nèi)绨V如狂?! τ诖蠖鄶?shù)計(jì)算機(jī)用戶來說,使用Linux正變得越來越方便。有了各種各樣的發(fā)布版、社區(qū)的支持,以及工業(yè)后盾,Linux的應(yīng)用也找到了安全的港灣,出現(xiàn)在大學(xué)、行業(yè)應(yīng)用以及數(shù)以千計(jì)的家庭用戶中。  使用大潮促進(jìn)了技術(shù)支持和新功能需求的日益增長。這樣一來,愈來愈多的程序員發(fā)現(xiàn)自己對Linux內(nèi)核內(nèi)幕感興趣,因?yàn)榇罅楷F(xiàn)有的(還在快速增長的)應(yīng)用需要支持不同的體系結(jié)構(gòu)和種類繁多的新設(shè)備?! ?nèi)核向Power體系結(jié)構(gòu)的成功移植,也助長了Linux操作系統(tǒng)在高端服務(wù)器和嵌入式系統(tǒng)中的全面繁榮。許多公司購買基于Power PC的系統(tǒng)來運(yùn)行Linux,因此越來越多的人需要知道Linux在該體系結(jié)構(gòu)上的運(yùn)行機(jī)理?! ∵m合的讀者  本書的讀者包括初級和經(jīng)驗(yàn)豐富的系統(tǒng)程序員、Linux的熱衷者,以及應(yīng)用程序的開發(fā)者,這些開發(fā)者渴望更好地理解自己的程序到底是如何工作的。只要有C語言知識(shí),熟悉基本的Linux用法,如果想知道Linux如何工作,那么你就會(huì)發(fā)現(xiàn)這本書提供了所需的基本知識(shí),可以說,本書是理解Linux內(nèi)核如何工作的初級讀本?! 〔还苣闶侵坏卿涍^Linux并編寫了些小程序,還是你本身就是一個(gè)系統(tǒng)程序員,正想深入理解某個(gè)子系統(tǒng)的特性,本書都會(huì)有你所要的信息?! ?nèi)容組織  本書分為三部分,每部分都提供必要的知識(shí),讓讀者能順利地鉆研Linux內(nèi)幕?! 〉谝徊糠痔峁┍匾墓ぞ吆捅尘埃阌趯inux內(nèi)核展開進(jìn)一步的探索?! 〉?章回顧了Linux和UNIX的歷史,對比了很多發(fā)布版,并從用戶空間的角度簡述各種內(nèi)核子系統(tǒng)?! 〉?章描述Linux內(nèi)核中常用的數(shù)據(jù)結(jié)構(gòu)和語言的用法,介紹x86和PowerPC體系結(jié)構(gòu)的匯編語言,并簡述一些工具和實(shí)用程序,可用來獲取理解內(nèi)核內(nèi)幕所需的信息?! 〉诙糠纸榻B了在每個(gè)內(nèi)核子系統(tǒng)中所涉及的基本概念,并分析了執(zhí)行子系統(tǒng)功能的代碼?! 〉?章討論了進(jìn)程模型的實(shí)現(xiàn)。本章解釋了為何引入進(jìn)程,并討論了進(jìn)程往返于用戶空間和內(nèi)核空間時(shí)的控制流。我們還討論了進(jìn)程在內(nèi)核中是如何實(shí)現(xiàn)的,并描述了與進(jìn)程執(zhí)行相關(guān)的所有數(shù)據(jù)結(jié)構(gòu)。本章還介紹了中斷和異常,描述了這些硬件機(jī)制在每種體系結(jié)構(gòu)中是如何發(fā)生的,它們與Linux內(nèi)核又是如何交互的。  第4章描述了Linux內(nèi)核如何追蹤和管理用戶空間進(jìn)程的可用內(nèi)存和內(nèi)核的可用內(nèi)存。本章描述了內(nèi)核對內(nèi)存分類的方式,以及決定分配和釋放內(nèi)存的方式,也詳細(xì)描述了缺頁機(jī)制以及它怎樣在硬件上執(zhí)行?! 〉?章描述了處理器如何與其他設(shè)備進(jìn)行交互,內(nèi)核又是如何響應(yīng)和控制這些交互的。本章還涵蓋了各種設(shè)備及其在內(nèi)核中的實(shí)現(xiàn)。  第6章概述文件和目錄如何在內(nèi)核中實(shí)現(xiàn)。本章引入了虛擬文件系統(tǒng),它是用于支持多文件系統(tǒng)的抽象層。本章還跟蹤了文件相關(guān)操作的執(zhí)行,如打開和關(guān)閉文件?! 〉?章描述調(diào)度程序的操作,調(diào)度程序讓多個(gè)進(jìn)程運(yùn)行起來就像系統(tǒng)中只有一個(gè)進(jìn)程在運(yùn)行一樣。本章詳細(xì)描述了內(nèi)核如何選擇執(zhí)行哪一個(gè)任務(wù),進(jìn)程切換時(shí)如何與硬件進(jìn)行交互。本章還敘述了什么是內(nèi)核搶占,它又是怎樣執(zhí)行的。最后,描述了系統(tǒng)時(shí)鐘的工作原理,內(nèi)核怎樣使用它計(jì)時(shí)。  第8章描述電源開和關(guān)時(shí)都發(fā)生些什么。本章對各種處理器處理內(nèi)核加載的方式進(jìn)行了跟蹤,包括對BIOS、Open Firmware和bootloader的描述。然后,考察了內(nèi)核啟動(dòng)和初始化時(shí)的線性順序,涉及了前面章節(jié)中討論的所有子系統(tǒng)。  第三部分,描述如何編譯內(nèi)核并與內(nèi)核進(jìn)行交互的有效途徑?! 〉?章涵蓋了編譯內(nèi)核所必需的工具鏈和所執(zhí)行的對象文件的格式。還詳細(xì)描述了內(nèi)核源代碼編譯(Kernel Source Build)系統(tǒng)如何運(yùn)作,怎樣把配置選項(xiàng)加入內(nèi)核編譯系統(tǒng)中?! 〉?0章描述了/dev/random操作,這在所有的Linux系統(tǒng)中都可以看到。本章用它來跟蹤設(shè)備,并從更具實(shí)戰(zhàn)性的角度介紹前面各章描述過的概念。最后介紹了如何在內(nèi)核中實(shí)現(xiàn)自己的設(shè)備?! ∥覀兊奶剿鞣椒ā ”緯o讀者介紹了理解內(nèi)核的必要概念。我們遵循自頂向下的方式來組織內(nèi)容,具體體現(xiàn)在以下兩個(gè)方面?! ∈紫?,我們把內(nèi)核的機(jī)理和用戶空間操作的執(zhí)行關(guān)聯(lián)起來,因?yàn)樽x者對后者較熟悉,所以我們會(huì)將二者結(jié)合起來,解釋內(nèi)核的工作。在可能時(shí),我們從用戶空間的例子說起,并跟蹤代碼的執(zhí)行到內(nèi)核。但有時(shí),這種跟蹤方式并不有效,因?yàn)樾枰冉榻B子系統(tǒng)的數(shù)據(jù)類型和子結(jié)構(gòu),而后才能解釋其工作原理。在這些情況下,我們把對內(nèi)核子系統(tǒng)的解釋和它與用戶空間程序如何聯(lián)系的具體例子結(jié)合起來。有雙重意圖:其一,當(dāng)內(nèi)核一方面與用戶空間打交道,另一方面與硬件打交道時(shí),突出在內(nèi)核中看到的層面;其二,通過跟蹤代碼和事件發(fā)生的順序來解釋子系統(tǒng)的工作原理。我們相信,這有助于讀者將內(nèi)核的工作原理與自己的認(rèn)識(shí)匹配起來,也有利于讀者了解一個(gè)特定的功能怎樣與操作系統(tǒng)的其余部分產(chǎn)生聯(lián)系。  其次,我們以自頂向下的角度,考察把數(shù)據(jù)結(jié)構(gòu)視作子系統(tǒng)操作中心,并觀察它們怎樣與系統(tǒng)管理的執(zhí)行行為相聯(lián)系。我們盡力刻畫子系統(tǒng)操作中心的結(jié)構(gòu),并像追蹤子系統(tǒng)的操作一樣持續(xù)關(guān)注這些數(shù)據(jù)結(jié)構(gòu)?! 〖s定  你會(huì)在全書中看到源代碼列表。右上角存放有關(guān)源代碼樹根的源文件位置。代碼中的行號是為了方便隨后對代碼進(jìn)行解釋。我們在解釋內(nèi)核子系統(tǒng)及其工作原理時(shí),會(huì)不斷引用源代碼并給予解釋。  命令行選項(xiàng)、函數(shù)名、函數(shù)輸出以及變量名都用代碼體加以區(qū)分?! ∫胍粋€(gè)新概念時(shí)就采用黑體。

內(nèi)容概要

本書以Linux
操作系統(tǒng)為基礎(chǔ),詳細(xì)介紹了Linux 內(nèi)核子系統(tǒng),并輔以大量內(nèi)核源代碼和示例程序進(jìn)行演示,引領(lǐng)讀者深入Linux
內(nèi)核?!       ?br />  本書的主要內(nèi)容包括:Linux 基礎(chǔ)知識(shí)、內(nèi)核探索工具集、進(jìn)程的整個(gè)生命周期、內(nèi)存區(qū)、頁面、Slab 分配器、用于輸入/
輸出的各種設(shè)備、文件系統(tǒng)、搶占、自旋鎖、信號量、內(nèi)核引導(dǎo)、構(gòu)建Linux
內(nèi)核,以及向內(nèi)核添加代碼等,同時(shí)還簡單介紹了一些應(yīng)用工具和實(shí)用程序。每章末尾都給出一些練習(xí),涉及內(nèi)核運(yùn)行的操作及工作原理。
  本書適合對Linux 內(nèi)核感興趣的各層次讀者,無論對Linux 初學(xué)者還是Linux
程序開發(fā)人員,本書都是一本很有價(jià)值的參考書。

作者簡介

  Claudia Salzberg Rodriguez
  就職于IBM
Linux技術(shù)中心,負(fù)責(zé)內(nèi)核及相關(guān)編程工具的開發(fā)。在擔(dān)任程序員的10多年時(shí)間里,她一直針對Intel和PPC平臺(tái)進(jìn)行Linux嵌入式系統(tǒng)到高性能系統(tǒng)的開發(fā)。
  Gordon Fischer
曾為很多底層設(shè)備開發(fā)過Linux和Unix設(shè)備驅(qū)動(dòng)程序,并針對Intel和PPC平臺(tái)上的企業(yè)級系統(tǒng)中使用Linux內(nèi)核。
  Steven Smolski
有近30年的半導(dǎo)體行業(yè)從業(yè)經(jīng)驗(yàn)。從事過內(nèi)存、處理器以及ASICS的研發(fā)和測試,為Linux、AIX以及Windows都編寫過應(yīng)用程序和驅(qū)動(dòng)程序,還進(jìn)行過嵌入式操作系統(tǒng)的開發(fā)。

書籍目錄

第1 章 概述  
1.1 UNIX 的歷史  
1.2 標(biāo)準(zhǔn)和通用接口  
1.3 自由軟件和開放源碼   
1.4 Linux 發(fā)布版概覽  
1.41 Debian  
1.42 Red Hat/Fedora
1.43 Mandriva  
1.44 SUSE   
1.45 Gentoo   
1.46 Yellow Dog   
1.47 其他發(fā)布版  
1.5 內(nèi)核版本信息  
1.6 基于Power 的Linux   
1.7 什么是操作系統(tǒng)  
1.8 內(nèi)核組織  
1.9 Linux 內(nèi)核概述  
1.9.1 用戶接口  
1.9.2 用戶標(biāo)識(shí)符   
1.9.3 文件和文件系統(tǒng)   
1.9.4 進(jìn)程  
1.9.5 系統(tǒng)調(diào)用  
1.9.6 Linux 調(diào)度程序  
1.9.7 Linux 設(shè)備驅(qū)動(dòng)程序   
1.10 可移植性和體系結(jié)構(gòu)的相關(guān)性  
1.11 小結(jié)  
1.12 習(xí)題  
第2 章 內(nèi)核探索工具集   
2.1 內(nèi)核中常見的數(shù)據(jù)類型   
2.1.1 鏈表  
2.1.2 查找  
2.1.3 樹  
2.2 匯編  
2.2.1 PowerPC   
2.2.2 x86   
2.3 匯編語言示例  
2.3.1 x86 中的匯編示例   
2.3.2 PowerPC 中的匯編示例   
2.4 內(nèi)聯(lián)匯編  
2.4.1 輸出操作數(shù)   
2.4.2 輸入操作數(shù)   
2.4.3 已修改過的寄存器(已修改的元素列表)
2.4.4 參數(shù)的編號方式  
2.4.5 約束條件  
2.4.6 asm   
2.4.7 __volatile__   
2.5 特殊的C 語言用法   
2.5.1 asmlinkage  
2.5.2 UL  
2.5.3 內(nèi)聯(lián)  
2.5.4 const 和volatile  
2.6 內(nèi)核探索工具一覽  
2.6.1 objdump/readelf  
2.6.2 hexdump   
2.6.3 nm  
2.6.4 objcopy   
2.6.5 ar  
2.7 內(nèi)核發(fā)言:傾聽來自內(nèi)核的消息   
2.7.1 printk()  
2.7.2 dmesg  
2.7.3 /var/log/messages  
2.8 其他奧秘  
2.8.1 __init  
2.8.2 likely()和unlikely()  
2.8.3 IS_ERR 和PTR_ERR   
2.8.4 通告程序鏈   
2.9 小結(jié)  
2.9.1 項(xiàng)目:Hellomod   
2.9.2 第一步:構(gòu)造Linux 模塊的框架  
2.9.3 第二步:編譯模塊  
2.9.4 第三步:運(yùn)行代碼   
2.10 習(xí)題 
 
第3 章 進(jìn)程:程序執(zhí)行的基本模型  
3.1 程序  
3.2 進(jìn)程描述符  
3.2.1 與進(jìn)程屬性相關(guān)的字段   
3.2.2 與調(diào)度相關(guān)的字段   
3.2.3 涉及進(jìn)程間相互關(guān)系的字段   
3.2.4 與進(jìn)程信任狀相關(guān)的字段   
3.2.5 與進(jìn)程權(quán)能相關(guān)的字段  
3.2.6 與進(jìn)程限制相關(guān)的字段   
3.2.7 與文件系統(tǒng)及地址空間相關(guān)的字段  
3.3 進(jìn)程的創(chuàng)建:系統(tǒng)調(diào)用fork()、vfork 和clone()   
3.3.1 fork()函數(shù)   
3.3.2 vfork()函數(shù)   
3.3.3 clone()函數(shù)  
3.3.4 do_fork()函數(shù)   
3.4 進(jìn)程的生命周期  
3.4.1 進(jìn)程的狀態(tài)   
3.4.2 進(jìn)程狀態(tài)的轉(zhuǎn)換   
3.5 進(jìn)程的終止  
3.5.1 sys_exit() 函數(shù)   
3.5.2 do_exit()函數(shù)   
3.5.3 通知父進(jìn)程和sys_wait4()   
3.6 了解進(jìn)程的動(dòng)態(tài):調(diào)度程序的基本構(gòu)架  
3.6.1 基本結(jié)構(gòu)  
3.6.2 從等待中醒來或者激活   
3.7 等待隊(duì)列  
3.7.1 添加到等待隊(duì)列   
3.7.2 等待事件  
3.7.3 喚醒進(jìn)程  
3.8 異步執(zhí)行流程  
3.8.1 異?! ?br />3.8.2 中斷  
3.9 小結(jié)  
3.9.1 項(xiàng)目:系統(tǒng)變量current  
3.9.2 項(xiàng)目源碼  
3.9.3 運(yùn)行代碼  
3.10 習(xí)題  
第4 章 內(nèi)存管理  
4.1 頁  
4.2 內(nèi)存管理區(qū)  
4.2.1 內(nèi)存管理區(qū)描述符   
4.2.2 內(nèi)存管理區(qū)操作輔助函數(shù)   
4.3 頁面  
4.3.1 請求頁面的函數(shù)   
4.3.2 釋放頁面的函數(shù)   
4.3.3 伙伴系統(tǒng)   
4.4 Slab 分配器  
4.4.1 緩存描述符  
4.4.2 通用緩存描述符   
4.4.3 Slab 描述符   
4.5 Slab 分配器的生命周期  
4.5.1 與Slab 分配器有關(guān)的全局變量  
4.5.2 創(chuàng)建緩存  
4.5.3 創(chuàng)建slab 與cache_grow()   
4.5.4 Slab 的銷毀:退還內(nèi)存與kmem_cache_destroy()   
4.6 內(nèi)存請求路徑  
4.6.1 kmalloc()   
4.6.2 kmem_cache_alloc()   
4.7 Linux 進(jìn)程的內(nèi)存結(jié)構(gòu)   
4.7.1 mm_struct   
4.7.2 vm_area_struct   
4.8 進(jìn)程映像的分布及線性地址空間   
4.9 頁表  
4.10 缺頁  
4.10.1 x86 缺頁異常  
4.10.2 缺頁處理程序   
4.10.3 PowerPC 缺頁異常   
4.11 小結(jié)  
4.12 項(xiàng)目:進(jìn)程內(nèi)存映射   
4.13 習(xí)題 
 
第5 章 輸入/輸出  
5.1 總線、橋、端口和接口的硬件實(shí)現(xiàn)   
5.2 設(shè)備  
5.2.1 塊設(shè)備概述   
5.2.2 請求隊(duì)列和I/O 調(diào)度  
5.2.3 示例:“通用”塊設(shè)備驅(qū)動(dòng)程序  
5.2.4 設(shè)備操作  
5.2.5 字符設(shè)備  
5.2.6 網(wǎng)絡(luò)設(shè)備  
5.2.7 時(shí)鐘設(shè)備   
5.2.8 終端設(shè)備   
5.2.9 直接存儲(chǔ)器存取   
5.3 小結(jié)  
5.4 項(xiàng)目:創(chuàng)建并口驅(qū)動(dòng)程序   
5.4.1 并口的硬件   
5.4.2 運(yùn)行在并口上的軟件   
5.5 習(xí)題  
第6 章 文件系統(tǒng)  
6.1 文件系統(tǒng)的基本概念   
6.1.1 文件和文件名   
6.1.2 文件類型   
6.1.3 文件的附加屬性  
6.1.4 目錄和路徑名   
6.1.5 文件操作  
6.1.6 文件描述符   
6.1.7 磁盤塊、磁盤分區(qū)以及實(shí)現(xiàn)   
6.1.8 性能  
6.2 Linux 虛擬文件系統(tǒng)   
6.2.1 VFS 的數(shù)據(jù)結(jié)構(gòu)  
6.2.2 全局鏈表和局部鏈表的引用  
6.3 與VFS 相關(guān)的結(jié)構(gòu)   
6.3.1 fs_struct 結(jié)構(gòu)   
6.3.2 files_struct 結(jié)構(gòu)   
6.4 頁緩存  
6.4.1 address_space 結(jié)構(gòu)  
6.4.2 buffer_head 結(jié)構(gòu)   
6.5 VFS 的系統(tǒng)調(diào)用和文件系統(tǒng)層  
6.5.1 open()  
6.5.2 close()   
6.5.3 read()  
6.5.4 write()   
6.6 小結(jié)  
6.7 習(xí)題 
 
第7 章 進(jìn)程調(diào)度和內(nèi)核同步  
7.1 Linux 的調(diào)度程序  
7.1.1 選擇下一個(gè)進(jìn)程  
7.1.2 上下文切換   
7.1.3 讓出CPU   
7.2 內(nèi)核搶占  
7.2.1 顯式內(nèi)核搶占  
7.2.2 隱式用戶搶占  
7.2.3 隱式內(nèi)核搶占   
7.3 自旋鎖和信號量   
7.4 系統(tǒng)時(shí)鐘:關(guān)于時(shí)間和定時(shí)器  
7.4.1 實(shí)時(shí)時(shí)鐘:現(xiàn)在幾點(diǎn)了  
7.4.2 讀取PPC 的實(shí)時(shí)時(shí)鐘   
7.4.3 讀取x86 的實(shí)時(shí)時(shí)鐘  
7.5 小結(jié)  
7.6 習(xí)題  
第8 章 內(nèi)核引導(dǎo)  
8.1 BIOS 和Open Firmware
8.2 引導(dǎo)加載程序  
8.2.1 GRUB  
8.2.2 LILO  
8.2.3 PowerPC 和Yaboot   
8.3 與體系結(jié)構(gòu)相關(guān)的內(nèi)存初始化   
8.3.1 PowerPC 的硬件內(nèi)存管理   
8.3.2 基于Intel x86 體系結(jié)構(gòu)的硬件內(nèi)存管理   
8.3.3 PowerPC 和x86 的代碼匯集   
8.4 原始的RAM 盤   
8.5 開始:start_kernel()   
8.5.1 調(diào)用lock_kernel()   
8.5.2 調(diào)用page_address_init()  
8.5.3 調(diào)用printk(linux_banner)   
8.5.4 調(diào)用setup_arch  
8.5.5 調(diào)用setup_per_cpu_areas()   
8.5.6 調(diào)用smp_prepare_boot_cpu()   
8.5.7 調(diào)用sched_init()   
8.5.8 調(diào)用build_all_zonelists()   
8.5.9 調(diào)用page_alloc_init   
8.5.10 調(diào)用parse_args()  
8.5.11 調(diào)用trap_init()   
8.5.12 調(diào)用rcu_init()   
8.5.13 調(diào)用init_IRQ()   
8.5.14 調(diào)用softirq_init()   
8.5.15 調(diào)用time_init()   
8.5.16 調(diào)用console_init()   
8.5.17 調(diào)用profile_init()  
8.5.18 調(diào)用local_irq_enable()  
8.5.19 配置initrd  
8.5.20 調(diào)用mem_init()   
8.5.21 調(diào)用late_time_init()   
8.5.22 調(diào)用calibrate_delay()   
8.5.23 調(diào)用pgtable_cache_init()   
8.5.24 調(diào)用buffer_init()   
8.5.25 調(diào)用security_scaffolding_startup()   
8.5.26 調(diào)用vfs_caches_init()   
8.5.27 調(diào)用radix_tree_init()   
8.5.28 調(diào)用signal_init()   
8.5.29 調(diào)用page_writeback_init()   
8.5.30 調(diào)用proc_root_init()   
8.5.31 調(diào)用init_idle()   
8.5.32 調(diào)用rest_init()   
8.6 init 線程(或進(jìn)程1)  
8.7 小結(jié)  
8.8 習(xí)題 
 
第9 章 構(gòu)建Linux 內(nèi)核   
9.1 工具鏈  
9.1.1 編譯程序   
9.1.2 交叉編譯   
9.1.3 鏈接程序  
9.1.4 ELF 二進(jìn)制目標(biāo)文件  
9.2 內(nèi)核源代碼的構(gòu)建   
9.2.1 解釋源代碼   
9.2.2 構(gòu)建內(nèi)核映像  
9.3 小結(jié)  
9.4 習(xí)題
  
第10 章 向內(nèi)核添加代碼   
10.1 瀏覽源代碼  
10.11 熟悉文件系統(tǒng)  
10.12 filp 和fops   
10.13 用戶空間和內(nèi)核空間  
10.14 等待隊(duì)列  
10.15 工作隊(duì)列及中斷   
10.16 系統(tǒng)調(diào)用   
10.17 其他類型的驅(qū)動(dòng)程序  
10.18 設(shè)備模型和sysfs 文件系統(tǒng)  
10.2 編寫代碼  
10.2.1 設(shè)備基礎(chǔ)   
10.2.2 符號輸出  
10.2.3 IOCTL   
10.2.4 輪詢與中斷   
10.2.5 工作隊(duì)列和tasklet   
10.2.6 增加系統(tǒng)調(diào)用的代碼   
10.3 構(gòu)建和調(diào)試  
10.4 小結(jié)  
10.5 習(xí)題  

媒體關(guān)注與評論

  “本書詳細(xì)比較了x86和PPC體系結(jié)構(gòu)下的匯編程序,并介紹了分析工具。非常不錯(cuò)!”  ——亞馬遜讀者評論

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Linux內(nèi)核編程 PDF格式下載


用戶評論 (總計(jì)35條)

 
 

  •   linux內(nèi)核編程切入角度不錯(cuò),把一些重要概念講述很清楚
  •   linux內(nèi)核講解的不錯(cuò)!
  •   本書不適合入門學(xué)習(xí),推薦linux內(nèi)核完全剖析(趙炯),學(xué)習(xí)linux首先要建立全局概念。然后個(gè)個(gè)擊破,欲速則不達(dá)。
  •   唉,內(nèi)容分析的挺好的,感覺沒有太多的實(shí)例,看了只是了解內(nèi)核、進(jìn)程相關(guān)知識(shí)等等,不知道程序怎么寫。
  •   書翻譯的很好,內(nèi)容也很好, 推薦需要學(xué)習(xí)內(nèi)核的人學(xué)習(xí)
  •   對內(nèi)核進(jìn)行了精簡描述,每一章都配有demo,總體說來還是可以。
  •   感覺還不錯(cuò),雖然還沒完全讀,但就書的質(zhì)量來說應(yīng)該是很好!
  •   入門級的科普書
  •   可以拿來入門用。很多平時(shí)容易忽略的知識(shí)。
  •   內(nèi)容詳實(shí),需仔細(xì)體會(huì)
  •   物流很快,寶貝們也好好,而且發(fā)票開得也開心
  •   還沒有看呢。。
  •   Linux內(nèi)核編程正在看,感覺寫得還可以,但是比較難懂,需要一定的基礎(chǔ)
  •   該書對內(nèi)核進(jìn)行了精簡式的描述,使得人可以對內(nèi)核有一個(gè)初淺的印象,同時(shí)每一章都配有demo,總體說來還是可以。
  •   不知道和以前出版的有啥區(qū)別,是重新翻譯校隊(duì)了么
  •   非常喜歡,包裝也非常給力
  •   內(nèi)容散了點(diǎn),有點(diǎn)像查漏補(bǔ)缺類型
  •   書頁都脫落了,明顯質(zhì)量不好
  •   內(nèi)容精減扼要,講解了一些入門的方法與技巧。這本書的談到了intel和powerPC的一些知識(shí),powerPC現(xiàn)在很少了。如果太在意這個(gè),就可以降低你的期望值可能會(huì)降低,但本人已經(jīng)會(huì)了匯編了,所以根本不在意這個(gè)。同時(shí)我也相信,這本書中的匯編介紹根本不會(huì)讓你明白匯編的。我打五分,很多技巧談得很樸實(shí)真切的!
  •   不適合初學(xué)者,看起來比較吃力
  •   書的第五章竟然有10頁是裝訂反了,而且我還沒時(shí)間換,這是氣死人了,這個(gè)配送員太不負(fù)責(zé)任了,書已經(jīng)到地了也不發(fā)短信也不打電話,還是我去找他的,真是的,比預(yù)期整整晚了兩天
  •   對入門級來說還是可以的
  •   稍微讀了一個(gè),感覺翻譯的比較生硬。不過作為參考使用還是有點(diǎn)用的,和《Professional》那本相比,這本內(nèi)容更集中,對一些《P》中沒有詳述的東西進(jìn)行了更多描寫,比如和x86、powerpc相關(guān)的各種實(shí)現(xiàn)細(xì)節(jié)。
  •   比起國內(nèi)某某介紹內(nèi)核的比起來,該書低調(diào)…………國內(nèi)這么喜歡將作者吹的天花亂墜,真是太浮躁了??戳丝磧?nèi)容,這本書還是很值得。
  •   涵蓋了x86和PPC架構(gòu),講的比較詳細(xì)。若想深入內(nèi)核,還得看ULK
  •   這本書很多地方都看到?jīng)]貨,評價(jià)還行,而且買的時(shí)候無意中看到是最后一本。譯者和《深入理解Linux內(nèi)核》是同一人,書還沒看,紙質(zhì)N爛~等了一個(gè)星期才發(fā)貨,收到書的時(shí)候已經(jīng)過了11天!書還沒仔細(xì)看,不敢妄加評論~
  •   適合內(nèi)核開發(fā)者。
  •   Linux才是正道
  •   感覺寫的不是很好啊
  •   作爲(wèi)參考
  •   初次閱讀,覺得不錯(cuò)
  •   這本書很新還不錯(cuò)
  •   Linux經(jīng)典圖書
  •   通俗易懂,提綱挈領(lǐng),比較基礎(chǔ)
  •   紙張不如書店的
 

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

京ICP備13047387號-7