Linux內(nèi)核源碼剖析(上下冊)

出版時間:2011-1  出版社:機械工業(yè)出版社  作者:樊東東 莫瀾  頁數(shù):1062  
Tag標(biāo)簽:無  

前言

有人宣稱Linux人才是未來20年IT職場中的王者。無論這種說法有多夸張,有一個事實是不可否認的,那就是,近年來Linux的市場份額不斷增長,Linux正在受到越來越多的關(guān)注乃至推崇。由于Linux可廣泛地應(yīng)用到各種系統(tǒng),包括很多嵌入式系統(tǒng)上,以及其他的諸多優(yōu)點,如開放、高效、豐富的網(wǎng)絡(luò)功能等,這種趨勢在可預(yù)計的未來還將持續(xù)。目前,國內(nèi)對Linux各方面的研究工作沒有國外那樣廣泛和深入,相關(guān)的出版物水準參差不齊。特別是在網(wǎng)絡(luò)的實現(xiàn)方面,有些著作針對性不強,有些則缺少了重要的傳輸層協(xié)議實現(xiàn)的論述,還有一些雖然有比較全面的介紹,卻不夠深入,選用的Linux版本也比較舊。針對以上情況,本書選擇了較新的2.6.2 0版本內(nèi)核RCP/IP實現(xiàn)作詳細的論述,在重要的細節(jié)處甚至逐行分析,并在此基礎(chǔ)上,對代碼背后的機制和原理作了深入的闡述,將各關(guān)鍵點連成一個整體,幫助讀者理清整個Linux網(wǎng)絡(luò)部分的脈絡(luò)。作者本著嚴謹?shù)膽B(tài)度,在寫作過程中參閱了大量的中英文資料及相關(guān)的文檔。相信本書可以成為那些希望深入了解Linux的TCP/IP協(xié)議棧、網(wǎng)絡(luò)部分實現(xiàn)的人們的有力工具。本書共有33章,通過自底向上的方法來論述TCP/IP的實現(xiàn),從數(shù)據(jù)鏈路層開始,然后是網(wǎng)絡(luò)層(IP、ICMP、IGMP、路由以及鄰居子系統(tǒng)和IP組播),接下來是套接口,最后是傳輸層(TCP和UDP)。在學(xué)習(xí)的時候也可以采用自頂向下的方法(從傳輸層開始向下),或者結(jié)合以上兩種方法。要理解一個系統(tǒng)的運行機制,對于一個專業(yè)人員來說,代碼是最為直接也最為可靠的資源。Linux普及面不斷擴展,越來越多的人會想通過研讀內(nèi)核代碼來了解Linux系統(tǒng),一來是更好地解決具體工作中的相關(guān)問題,二來是從Linux這個高質(zhì)量的操作系統(tǒng)中學(xué)習(xí)到更多的編程、架構(gòu)等技術(shù)。本書的特點如下:選擇的內(nèi)核版本新,內(nèi)容不會在短期內(nèi)過時。對代碼作了詳細的論述,在此基礎(chǔ)上進一步分析了代碼背后的機制和原理,為讀者理清了整個框架的脈絡(luò),幫助讀者避免迷失在細節(jié)中。寫作過程中參閱了大量中英文資料和相關(guān)的文檔,對內(nèi)核代碼更是作了長時間深入細致的研究和分析,在細節(jié)處反復(fù)推敲,以確保本書的質(zhì)量。

內(nèi)容概要

  本書詳細論述了Linux內(nèi)核2.6.20版本中TCP/IP的實現(xiàn)。書中給出了大量的源代碼,通過對源代碼的詳細注釋,幫助讀者掌握TCP/IP的實現(xiàn)。本書根據(jù)協(xié)議棧層次,從驅(qū)動層逐步論述到傳輸層,包括驅(qū)動的實現(xiàn)、接口層的輸入輸出、IP層的輸入輸出以及IP選項的處理、鄰居子系統(tǒng)、路由、套接口及傳輸層等內(nèi)容,全書基本涵蓋了網(wǎng)絡(luò)體系架構(gòu)全部的知識點。特別是TCP,包括TCP連接的建立和終止、輸入與輸出,以及擁塞控制的實現(xiàn)?! ”緯m用于熟悉Linux的基本使用方法,對Linux內(nèi)核工作原理以及網(wǎng)絡(luò)知識有一定的了解,而又極想更深入理解各個機制在Linux中的具體實現(xiàn)的用戶,包括應(yīng)用程序員和嵌入式程序員,以及網(wǎng)絡(luò)管理員等。相關(guān)專業(yè)的科研人員在工作中遇到問題時,也可以查閱本書,理解相關(guān)內(nèi)核部分的實現(xiàn)。此外,計算機相關(guān)專業(yè)的本科高年級學(xué)生和研究生,在學(xué)習(xí)相關(guān)課程(如操作系統(tǒng)、計算機網(wǎng)絡(luò)等)時,可將本書作為輔助教程,與理論相結(jié)合以便更好地理解相應(yīng)的知識點。

書籍目錄

上冊 前言 第1章  預(yù)備知識	  1.1  應(yīng)用層配置診斷工具	   1.1.1  iputils	   1.1.2  net-tools	   1.1.3  iproute2	  1.2  內(nèi)核空間與用戶空間的接口	   1.2.1  procfs	   1.2.2  sysctl(/proc/sys目錄)	   1.2.3  sysfs(/sys文件系統(tǒng))	   1.2.4  ioctl系統(tǒng)調(diào)用	   1.2.5  netlink套接口	  1.3  網(wǎng)絡(luò)I/O加速	   1.3.1  TSO/GSO	   1.3.2  I/O AT	  1.4  其他	   1.4.1  slab分配器	   1.4.2  RCU	 第2章  網(wǎng)絡(luò)體系結(jié)構(gòu)概述	  2.1  引言	  2.2  協(xié)議簡介	  2.3  網(wǎng)絡(luò)架構(gòu)	  2.4  系統(tǒng)調(diào)用接口	  2.5  協(xié)議無關(guān)接口	  2.6  傳輸層協(xié)議	  2.7  套接口緩存	  2.8  設(shè)備無關(guān)接口	  2.9  設(shè)備驅(qū)動程序	  2.10  網(wǎng)絡(luò)模塊源代碼組織	 第3章  套接口緩存	  3.1  引言	  3.2  sk_buff結(jié)構(gòu)	   3.2.1  網(wǎng)絡(luò)參數(shù)和內(nèi)核數(shù)據(jù)結(jié)構(gòu)	   3.2.2  SKB組織相關(guān)的變量	   3.2.3  數(shù)據(jù)存儲相關(guān)的變量	   3.2.4  通用的成員變量	   3.2.5  標(biāo)志性變量	   3.2.6  特性相關(guān)的成員變量	  3.3  skb_shared_info結(jié)構(gòu)	   3.3.1 "零拷貝"技術(shù)	   3.3.2  對聚合分散I/O數(shù)據(jù)的支持	   3.3.3  對GSO的支持	   3.3.4  訪問skb_shared_info結(jié)構(gòu)	  3.4  管理函數(shù)	   3.4.1  SKB的緩存池	   3.4.2  分配SKB	   3.4.3  釋放SKB	   3.4.4  數(shù)據(jù)預(yù)留和對齊	   3.4.5  克隆和復(fù)制SKB	   3.4.6  鏈表管理函數(shù)	   3.4.7  添加或刪除尾部數(shù)據(jù)	   3.4.8  拆分數(shù)據(jù):skb_split()	   3.4.9  重新分配SKB的線性數(shù)據(jù)區(qū):pskb_expand_head()	   3.4.10  其他函數(shù)	 第4章  網(wǎng)絡(luò)模塊初始化	  4.1  引言	  4.2  網(wǎng)絡(luò)模塊初始化順序	  4.3  優(yōu)化基于宏的標(biāo)記	  4.4  網(wǎng)絡(luò)設(shè)備處理層初始化	 第5章  網(wǎng)絡(luò)設(shè)備	  5.1  PCI設(shè)備	   5.1.1  PCI驅(qū)動程序相關(guān)結(jié)構(gòu)	   5.1.2  注冊PCI驅(qū)動程序	  5.2  與網(wǎng)絡(luò)設(shè)備有關(guān)的數(shù)據(jù)結(jié)構(gòu)	  ……下冊

章節(jié)摘錄

插圖:盡管技術(shù)有了巨大的進步,但是TCP/IP協(xié)議棧的處理方式卻幾乎沒有變化。也就是說,即便用戶使用最先進的CPU,依然要處理那些未經(jīng)優(yōu)化的TCP/IP協(xié)議,由此產(chǎn)生巨大的系統(tǒng)開銷。例如,TCP/IP的傳輸過程中需要封裝、解包,這些動作對于處理器而言并不是一個復(fù)雜的過程,但是會占用處理器周期,而且網(wǎng)絡(luò)帶寬越高,這個問題越嚴重。系統(tǒng)開銷的增大不僅僅表現(xiàn)在占用較多的處理器周期,還會導(dǎo)致處理網(wǎng)絡(luò)相關(guān)數(shù)據(jù)時的內(nèi)存訪問效率降低。這又會進一步降低CPU效能和網(wǎng)絡(luò)效率。過去,網(wǎng)絡(luò)流量較低,處理網(wǎng)絡(luò)相關(guān)數(shù)據(jù)所產(chǎn)生的開銷,遠遠低于用于執(zhí)行正常任務(wù)的開銷,所以并未引起重視?,F(xiàn)在,隨著網(wǎng)絡(luò)流量大幅度提升,處理網(wǎng)絡(luò)相關(guān)數(shù)據(jù)所產(chǎn)生的系統(tǒng)開銷越來越不能忽視,甚至已經(jīng)影響到了正常應(yīng)用。現(xiàn)有幾種解決方案:  (1)TSO(TCP Segmentation Offioad)  通過網(wǎng)絡(luò)設(shè)備上的專用處理器處理部分或者全部的封包,借此來降低對于系統(tǒng)處理器資源的占用,不過這種解決方案只對具有某些特征的數(shù)據(jù)包有效。(2)RDMA(。Remote Direct MemoryAccess,遠程直接內(nèi)存訪問)發(fā)送端系統(tǒng)直接將有效數(shù)據(jù)送至目的系統(tǒng)指定的內(nèi)存中,無需移動數(shù)據(jù)包的時間消耗,因此大大提升了網(wǎng)絡(luò)傳輸?shù)男?。但是這種技術(shù)需要專用的網(wǎng)絡(luò)設(shè)備,應(yīng)用程序也需要進行修改,甚至還增加了一個RDMA層的封裝過程,而且這種操作風(fēng)險較高,因此目前看來還不是一個吸引人的解決方案。  (3)Onloading技術(shù)  將系統(tǒng)處理器作為處理網(wǎng)絡(luò)流量的第一引擎,盡可能地提升CP[J處理網(wǎng)絡(luò)數(shù)據(jù)包的效率,這種思想已經(jīng)被英特爾借鑒。

編輯推薦

《Linux內(nèi)核源碼剖析:TCP/IP實現(xiàn)(套裝上下冊)》:套接口緩存網(wǎng)絡(luò)設(shè)備IP:網(wǎng)際協(xié)議ICMP:Internet控制報文協(xié)議IP組播IGMP:Internet組管理協(xié)議鄰居子系統(tǒng)路由表套接口層TCP:傳輸控制協(xié)議TCP連接的建立TOP擁塞控制的實現(xiàn)TCP的輸出TCP的輸入TCP連接的終止UDP:用戶數(shù)據(jù)報

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Linux內(nèi)核源碼剖析(上下冊) PDF格式下載


用戶評論 (總計42條)

 
 

  •   印刷質(zhì)量很好,自己買了看不是為了學(xué)習(xí)Linux的TCP/IP的實現(xiàn),而是為了學(xué)習(xí)其中的編碼技巧。就這方面來說,自己已經(jīng)達到了目的。Linux的編碼都是一些高手所為,編碼的風(fēng)格和技巧很值得自己學(xué)習(xí)。
  •   通過學(xué)習(xí)內(nèi)核代碼,對代碼的編寫有些指導(dǎo)意義。
  •   講解的很深入 但需要一定基礎(chǔ)
  •   很好的一本書,內(nèi)容很豐富,慢慢看!
  •   此書買后放入公司圖書室,大家評論很好, 前兩周搶著看呢,呵呵
  •   書絕對是盜版的;很不爽。
    雖然書是用來看的,但花了這么多錢買個盜版的很不爽?。。?br /> ?。?!
    當(dāng)當(dāng)圖書品質(zhì)一向是不錯的,真不知道這次怎么搞的,竟然買盜版書?。?!
    氣憤?。?!
  •   值得靜下心來好好看看。。。
  •   我的水平不夠,看起來有點吃力~~~
  •   對學(xué)習(xí)linux網(wǎng)絡(luò)方面還是有幫助的不錯。
  •   因工作需要學(xué)習(xí)TCP,基本能滿足要求。就是有些地方?jīng)]講透徹。對初學(xué)都壓力較大。
  •   這本書對于TCP學(xué)習(xí)者來說不可或缺
  •   大體上把上冊和下冊的前半部分看完了,感覺還行。
    不過很多地方看著有點似曾相識的感覺。
    如果是初學(xué)linux的話,還是很值得看的。
  •   只能挺滿意。書的內(nèi)容其實是很好的,尤其適合初學(xué)者,唯一的遺憾是,價格的問題,70元左右還可以理解。書中有很多地方,都是一句概括,不夠詳細。謝謝。但總體講來,挺滿意!
  •   已經(jīng)開始看了,不錯的書,每一章開始的時候都會把基礎(chǔ)知識進行講解,對于初學(xué)者或者對理論性的東東不是很理解的童鞋,還是比較有用的。
  •   內(nèi)容詳盡,很豐富,講解的很容易理解
  •   字寫的很大,內(nèi)容有待研究,不好說
  •   書是不錯,可惜代碼太多,甚至整版整版的代碼,覺得花錢買來這么多的印刷的代碼不是很值,完全可以把2本的量放在1本里面,說是對代碼進行分析,其實更多的人需要的是思路的指點而不是在這里去讀源代碼,完全可以減少很多代碼,而是把代碼的具體出處告訴讀者,讓讀者自己去實踐操作,可能會更好。
    拋開整版的代碼太多的問題,其他都還不錯,需要多看幾遍才能看懂。
  •   本來挺期待這兩本書的,但是今天拿到貨后,將兩本書瀏覽了一下,發(fā)現(xiàn)里面80%的內(nèi)容都是代碼,100多塊錢太不值了!!
  •   有點心痛花了那么多錢,不值
  •   基本上是一些代碼
  •   為了寫書而寫的書,這書我翻了個目錄,就再沒看過.100多大洋啊~~~
  •   書是不錯,可惜代碼太多,甚至整版整版的代碼,覺得花錢買來這么多的印刷的代碼不是很值,完全可以把2本的量放在1本里面,說是對代碼進行分析,其實更多的人需要的是思路的指點而不是在這里去讀源代碼,完全可以減少很多代碼,而是把代碼的具體出處告訴讀者,讓讀者自己去實踐操作,可能會更好。拋開整版的代碼太多的問題,其他都還不錯,需要多看幾遍才能看懂。
  •   作為IT人,看過的IT技術(shù)書不少了,原來的印象是國內(nèi)的IT書好的很少,尤其是有大牛掛名的書(非第一作者的),質(zhì)量其實更是沒有保證。這本書的作者雖然沒什么名氣,但往往國內(nèi)的精品書就是這樣的人寫的。我與《深入理解網(wǎng)絡(luò)Linux技術(shù)內(nèi)幕》(包括英文版)對照著看了,《深入理解》雖然是公認的精品書,但其實瑕疵相當(dāng)多(比《LDD》和《ULK》差遠了),尤其是驅(qū)動層的分析寫得不好——組織混亂,還不夠深入。而《Linux剖析》這本國人作品,雖然形式只是代碼剖析,但是寫得很用心,除去代碼的分析外,會加入原理的介紹和很多圖的說明,至少在驅(qū)動層的分析上比《深入理解網(wǎng)絡(luò)Linux技術(shù)內(nèi)幕》要好。更難能可貴的是,是對2.6.20內(nèi)核做的剖析,比較新,使讀者能很快遷移到實際工作中去,總的來說:很棒!贊一個!
  •   優(yōu)點:全面講解Linux網(wǎng)絡(luò)協(xié)議棧的一本好書,內(nèi)容比較充實。目前已經(jīng)看到15章了,講得比較清楚,收獲比較大。建議大家在看之前先了解下Linux內(nèi)核以及網(wǎng)絡(luò)方面的知識,閱讀起來會更輕松些。之前也看過《Understanding Linux Network Internal》和《TCP/IP詳解卷1》等,但前者沒有講傳輸層且內(nèi)核版本也比較老;后者重在講理論。缺點:1. 雖然買到的第二次印刷的版本,但里面還是有些小的錯誤,不過不影響閱讀。2. 書的紙張比較差。
  •   同類書相比,很好的一本書,內(nèi)容很全,很強大,很給力。
  •   不敢說這本書的內(nèi)容上有什么不妥,敢說的都是真正的高手。只能說書中內(nèi)容大量引用《深入理解LINUX網(wǎng)絡(luò)技術(shù)內(nèi)幕》。有些關(guān)鍵內(nèi)容沒講,比如netfilter和bridge等。從提上來說,對初學(xué)者還是很好的。價格偏高,紙質(zhì)不行。
  •   剛拿到手中,覺得上面講得還不錯~對我們長期在linux環(huán)境中編寫程序有一定的幫助。
  •   封面有些臟,其他還好
  •   正品,很不錯,這本書也寫得很好
  •   源碼級的講解,內(nèi)容沒得說啊!
  •   之前一直看電子版的不舒服,后來買了,正好項目要用,對TCP、ip協(xié)議棧的脈絡(luò)說的比較清楚,但感覺有的地方還是不夠詳細,比較,linux東西太多了。再就是價格,有點貴啊。
  •   字體比較大,紙張不太好
  •   太專業(yè)了,不方便細說,自己買了參考就知道
  •   很滿意,基本上該講的都講了,而且比較容易懂。推薦。
  •   書紙張?zhí)盍?,用手一擦,手上有灰,不知到對身體有害沒有哦,印刷廠是否合格???內(nèi)容未看,對內(nèi)容先不做評論。
  •   封皮破了,希望大家引以為戒
  •   講的還不錯 國人講的
  •   剖析的比較細致
  •   學(xué)習(xí)Linux內(nèi)核代碼的不錯選擇
  •   Linux內(nèi)核圖書
  •   評,您的評價將幫助其他
  •   套裝書,包裝不錯
 

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

京ICP備13047387號-7