出版時間:2012-3 出版社:電子工業(yè)出版社 作者:任橋偉 等編著 頁數(shù):441
Tag標簽:無
前言
前言從寫Linux那些事兒系列內容開始,到如今已有四年多了,而從整理出版第1版到現(xiàn)在也已經(jīng)一載有余了。期間不斷有認識或不認識的朋友問我,怎么會想起寫這么多如此可愛的文字,我的回答都是:娛樂自己,娛樂大家而已!或許,大家早已經(jīng)默認技術本是一個沉重或者枯燥的話題,我們無法用一種娛樂的心態(tài)去看待它,甚至說很多人早已喪失了從中獲取樂趣的能力。但是,一切本不該如此的,對于不管什么原因踏入這個行業(yè)的我們,愿意或不愿意,技術都已經(jīng)是我們生命不可分割的一部分。既如此,又何不放輕松些,把它當成朋友,用我們自己的方式去與它交流,而不是僅僅把它當成一堆堆死氣沉沉的代碼,亦或一些枯燥的名詞。而針對這本書的內容,我要說的就是:把內核當朋友。笑來老師有本書,叫《把時間當做朋友》,告訴我們只有把時間當做朋友,才能更好地利用自己的時間做些有益的事情。眼睛一閉一睜,一天就過去了;眼睛一閉不睜,一輩子就過去了。只有善待時間,時間才能善待我們。同樣,我們只有把內核當朋友,當成一個有生命的實體,把它放在對等的地位上,我們才能夠更好地認識和理解到它的精髓。具體到這本書,您可以把它當成一本內核源碼分析的書,甚至僅僅當成內核USB實現(xiàn)源碼分析的書,但是我更希望您把它當成展現(xiàn)如何學習Linux內核,展現(xiàn)如何與內核進行平等交流的一個范例,起碼它體現(xiàn)了我們應該用什么樣的態(tài)度去對待Linux內核源碼。也就是說,分析內核源碼,態(tài)度決定一切。我們很多人或許有這樣的困惑,也分析瀏覽了很多內核的源碼,可總是覺得分析、瀏覽后,腦子里還是空空的,并沒有感覺到多大的收獲。這個時候我們或許可以去看看是不是自己在分析代碼時的態(tài)度出現(xiàn)了問題。我們在分析內核源碼時,只有遵循嚴謹?shù)膽B(tài)度,而不是抱著走馬觀花、得過且過的態(tài)度,最終才會有很大的收獲。然后還有一句曾小范圍流傳的話:技術水平的高低不是決定于C,或者C++等用得有多么熟練,而是決定于你掌握的資源有多少。所以,我們還要以內核源碼為中心,堅持學習資源建設。在我們學習內核的過程中,內核源碼本身就是最好的參考資料,其他任何經(jīng)典或非經(jīng)典的書最多只是起輔助作用,不能也不應該取代內核代碼在我們學習過程中的主導地位。但是這些輔助的作用也是不可忽視的,我們需要以內核源碼為中心,堅持各種學習資源的長期建設不動搖。再次感謝孫學瑛編輯,沒有她的努力,這本書的內容將會一直偏居網(wǎng)絡一隅,將不可能被出版,從而去幫助更多需要的人。
內容概要
本書基于2.6.22內核,對USB子系統(tǒng)的大部分源代碼逐行進行分析,系統(tǒng)地闡釋了Linux內核中USB子系統(tǒng)是如何運轉的,子系統(tǒng)內部的各個模塊之間是如何互相協(xié)作、配合的。本次改版修改了第1版中出現(xiàn)的錯誤,增加了一個附錄,主要內容是關于Linux內核的學習方法,是作者的經(jīng)驗總結,值得一讀。
本書使用幽默詼諧的筆調對Linux內核中的USB子系統(tǒng)源代碼進行了分析,形象且詳盡地介紹了USB在Linux中的實現(xiàn)。本書從U盤、Hub、USB
Core到主機控制器覆蓋了USB實現(xiàn)的方方面面,被一些網(wǎng)友譽為USB開發(fā)的“圣經(jīng)”。
書籍目錄
第1篇 Linux那些事兒之我是USB Core
1.引子
2.它從哪里來
3.PK
4.漫漫辛酸路
5.我型我秀
6.我是一棵樹
7.我是誰
8.好戲開始了
9.不一樣的Core
10.從這里開始
11.面紗
12.模型,又見模型
13.繁華落盡
14.接口是設備的接口
15.設置是接口的設置
16.端點
17.設備
18.配置
19.向左走,向右走
20.設備的生命線(一)
21.設備的生命線(二)
22.設備的生命線(三)
23.設備的生命線(四)
24.設備的生命線(五)
25.設備的生命線(六)
26.設備的生命線(七)
27.設備的生命線(八)
28.設備的生命線(九)
29.設備的生命線(十)
30.設備的生命線(十一)
31.驅動的生命線(一)
32.驅動的生命線(二)
33.驅動的生命線(三)
34.驅動的生命線(四)
35.字符串描述符
36.接口的驅動
37.還是那個match
38.結束語
第2篇 Linux那些事兒之我是HUB
1.引子
2.跟我走吧,現(xiàn)在就出發(fā)
3.特別的愛給特別的Root Hub
4.一樣的精靈,不一樣的API
5.那些隊列,那些隊列操作函數(shù)
6.等待,只因曾經(jīng)承諾
7.最熟悉的陌生人——probe
8.蝴蝶效應
9.While You Were Sleeping(一)
10.While You Were Sleeping(二)
11.While You Were Sleeping(三)
12.While You Were Sleeping(四)
13.再向虎山行
14.樹,是什么樣的樹
15.沒完沒了的判斷
16.一個都不能少
17.蓋茨家對Linux代碼的影響
18.八大重量級函數(shù)閃亮登場(一)
19.八大重量級函數(shù)閃亮登場(二)
20.八大重量級函數(shù)閃亮登場(三)
21.八大重量級函數(shù)閃亮登場(四)
22.八大重量級函數(shù)閃亮登場(五)
23.是月亮惹的禍還是spec的錯
24.所謂的熱插拔
25.不說代碼說理論
26.看代碼的理由
27.電源管理的四大消息
28.將suspend分析到底
29.夢醒時分
30.掛起自動化
第3篇 Linux那些事兒之我是U盤
1.小城故事
2.Makefile
3.變態(tài)的模塊機制
4.想到達明天現(xiàn)在就要啟程
5.外面的世界很精彩
6.未曾開始卻似結束
7.狂歡是一群人的孤單
8.總線、設備和驅動(上)
9.總線、設備和驅動(下)
10.我是誰的他
11.從協(xié)議中來,到協(xié)議中去(上)
12.從協(xié)議中來,到協(xié)議中去(中)
13.從協(xié)議中來,到協(xié)議中去(下)
14.夢開始的地方
15.設備花名冊
16.冰凍三尺非一日之寒
17.冬天來了,春天還會遠嗎?(一)
18.冬天來了,春天還會遠嗎?(二)
19.冬天來了,春天還會遠嗎?(三)
20.冬天來了,春天還會遠嗎?(四)
21.冬天來了,春天還會遠嗎?(五)
22.通往春天的管道
23.傳說中的URB
24.彼岸花的傳說(一)
25.彼岸花的傳說(二)
26.彼岸花的傳說(三)
27.彼岸花的傳說(四)
28.彼岸花的傳說(五)
29.彼岸花的傳說(六)
30.彼岸花的傳說(七)
31.彼岸花的傳說(八)
32.彼岸花的傳說(The End)
33.SCSI命令之我型我秀
34.迷霧重重的批量傳輸(一)
35.迷霧重重的批量傳輸(二)
36.迷霧重重的批量傳輸(三)
37.迷霧重重的批量傳輸(四)
38.迷霧重重的批量傳輸(五)
39.迷霧重重的批量傳輸(六)
40.迷霧重重的批量傳輸(七)
41.跟著感覺走(一)
42.跟著感覺走(二)
43.有多少愛可以胡來?(一)
44.有多少愛可以胡來?(二)
45.當夢醒了天晴了
46.其實世上本有路,走的人多了,也便沒了路
附錄A Linux那些事兒之我是sysfs
A.1 sysfs初探
A.2 設備模型
A.2.1 設備底層模型
A.2.2 設備模型上層容器
A.2.3 示例一:usb子系統(tǒng)
A.2.4 示例二:usb storage驅動
A.3 sysfs文件系統(tǒng)
A.3.1 文件系統(tǒng)
A.3.2 sysfs
A.3.3 file_oprations
附錄B 學習內核和驅動的方法
B.1 高效學習Linux內核
B.2 Kernel地圖:Kconfig與Makefile
B.3 分析內核源碼如何入手
B.3.1 分析README
B.3.2 分析Kconfig和Makefile
B.3.3 態(tài)度決定一切:從初始化函數(shù)開始
B.4 內核學習的心理問題
B.5 高效學習Linux驅動開發(fā)
B.6 設備模型(上)
B.7 設備模型(下)
B.7.1 內核中USB子系統(tǒng)的結構
B.7.2 USB子系統(tǒng)與設備模型
B.8 驅動開發(fā)三件寶
章節(jié)摘錄
版權頁:插圖:
媒體關注與評論
牛人,談罷你們的文字 ,對Linux頓感興趣?! W(wǎng)友 uspark這么多優(yōu)秀文章,真是讓我吃了N頓飽餐啊哈,可惜發(fā)現(xiàn)得太晚,要是在3年前就看到多好?! W(wǎng)友 sunwill_chen第一次看的是U盤部分,硬著頭皮看完了55個小節(jié),現(xiàn)在來看PCI部分,有種一通百通的感覺,非常不錯! ——網(wǎng)友 haierfox過來拜一個,這幾天一直從頭看“Linux那些事兒”,我就一直在納悶,什么神人才能把復雜枯燥的驅動寫得那樣華麗,那樣搔首弄姿,那樣讓人欲罷不能。 ——網(wǎng)友 windwinter畢業(yè)設計是USB設備驅動,看了那個USB Core簡直勝過看所有的書啊。把所有自己不清楚的內容都說明白了。無限膜拜中?! W(wǎng)友 rabbit8ge第一眼看到作者的文章,立刻就被吸引了,詼諧的語言讓人看起技術文章來感覺不到枯燥,不去做老師真是浪費,現(xiàn)在的老師沒有幾個能讓人聽課不瞌睡的?! W(wǎng)友 likefreebird在過度疲勞的工作中看到樓主的文章,失笑了多回。雖然沒太懂,也沒來得及看完。我借助它敢SCSI設備號固定于硬端口的問題。贊一個:是金子總是要發(fā)光的?! W(wǎng)友 yzdai太經(jīng)典了,花了4天時間終于看完了,這是我看過的最好的技術文章! ——網(wǎng)友 raindown剛看了幾眼你的文章就喜歡上了,很喜歡你的文風?,F(xiàn)在的書要是文字都這么輕松該多好啊!感謝你為全人類做出的貢獻! ——網(wǎng)友 Felk2005非常喜歡您關于USB開發(fā)的幾部經(jīng)典作品,用超乎尋常的經(jīng)典方式學習,解剖經(jīng)典的技術?! W(wǎng)友 learner我也是因為工作緣故開始使用Linux開發(fā)程序,接觸有半年多,期間一直只是用GCC編寫程序,覺得跟WIN平臺比,從應用程序開發(fā)的角度來看,并不需要跨越多么大的鴻溝,所以始終沒有閱讀Linux內核代碼的動機。以前做過USB設備端的驅動程序,對USB協(xié)議有所了解。但我知道對于設備驅動程序開發(fā)來說,Linux與Windows平臺的區(qū)別相當大。在看本書的過程中,越來越強烈地感覺到,這真的是一本妙趣橫生的驚艷大作!我一口氣用了4個鐘頭左右的時間從頭到尾看完,一直看到凌晨2點多。我覺得這是我迄今為止看過的最有意思的技術類書籍,甚至年少時期狂熱愛的科普類書籍也趕不上本書風格的九牛一毛。 ——網(wǎng)友 zlzdsp有一種文章,看了直犯困,有一種文章,越看越興奮,你咋這么讓人興奮呢? ——網(wǎng)友 phoenix_zhang
編輯推薦
《Linux那些事兒之我是USB(第2版)》編輯推薦:做程序員的最高境界就要像和尚研究佛法一樣研究算法,這次函數(shù)調用就像流星,短暫地劃過卻能照亮整個天空。它的心只有編譯器才懂,終于,四大傳輸也就這樣結束了,而我們的故事也即將ALT+F4了。我只是說也許《Linux那些事兒之我是USB(第2版)》不僅能帶給你一趟愉悅的USB代碼之旅,更能給你一套終生受益的高效內核學習法寶!
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載