專欄:Linux內(nèi)核修煉之道
本文關(guān)鍵詞:Linux內(nèi)核修煉之道,由筆耕文化傳播整理發(fā)布。
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》 之 高效學(xué)習(xí)Linux驅(qū)動(dòng)開(kāi)發(fā)
前一篇我們談到了如何高效學(xué)習(xí)Linux內(nèi)核,現(xiàn)在我們開(kāi)始另外一個(gè)話題,就是如何高效學(xué)習(xí)linux驅(qū)動(dòng)開(kāi)發(fā)。...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》 之 高效學(xué)習(xí)Linux內(nèi)核
世界悲結(jié)束了,章魚(yú)哥也退役了,連非誠(chéng)勿擾中的拜金女也突然的少了很多。這本《Linux內(nèi)核修煉之道》在卓越、當(dāng)當(dāng)、china-pub上也已經(jīng)開(kāi)賣了,雖然是嚴(yán)肅文學(xué),但為了保證流暢性,大部分文字我還都是斟詞灼句,反復(fù)的念幾遍才寫(xiě)上去的,盡量考慮到寫(xiě)上去的每段話能夠讓讀者產(chǎn)生什么疑惑,然后也都會(huì)緊接著盡量的去進(jìn)行解釋清楚,中間的很多概念也有反復(fù)糾結(jié)過(guò)怎么解釋能夠更容易的理解,力求即使對(duì)于初學(xué)者也可以有很少阻礙的一氣讀完。同時(shí)我也把書(shū)中一部分自己的感悟抽出來(lái)整理了精華版,share出來(lái)。當(dāng)然水平有限,錯(cuò)漏之處有發(fā)現(xiàn)...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(22)——方法論
那么什么是方法論?很多人都應(yīng)該會(huì)很自然的回答方法論就是方法,這也沒(méi)錯(cuò),那么這里為什么要使用方法論這個(gè)詞,不是我非要在這里故弄玄虛,這都要怪笛卡兒在17世紀(jì)的某一天,閑極無(wú)聊寫(xiě)了這么一本書(shū),書(shū)名就叫《方法論》,在這本目前來(lái)說(shuō)絕大部分人都不知道的書(shū)里將方法上升到了理論的高度,于是就有了方法論。...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(21)——二分法與printk()
人生就是一個(gè)茶幾,上面擺滿了杯具。內(nèi)核也是一個(gè)大茶幾,不過(guò)它上面的杯具是一個(gè)個(gè)的bug。確定bug什么時(shí)候被引入是一個(gè)很關(guān)鍵的步驟,在這個(gè)定位bug的過(guò)程中,不論有意或無(wú)意,都會(huì)很自然地用到二分查找的方法。二分查找法的基本原理 對(duì)于二分查找法,我們不會(huì)也不應(yīng)該會(huì)感到陌生。作為一種高效的查找算法,它曾出現(xiàn)在我們的數(shù)據(jù)結(jié)構(gòu)課堂里,出現(xiàn)在一次又一次的面試?yán),更是?huì)頻繁地應(yīng)用在我們的代碼里...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(20)——學(xué)會(huì)使用Git
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 作為一名人民的好干部,如果希望被惦記,可以學(xué)我們的鄭書(shū)記,將自己和藹可親的光輝形象搬上臺(tái)歷;作為一名有夢(mèng)想有追求而又不知道如何出名的人,你可以參考對(duì)岸的“超想被包養(yǎng)”社團(tuán)。而作為一個(gè)內(nèi)核愛(ài)好者,要想成為一名內(nèi)核開(kāi)發(fā)者,為內(nèi)核貢獻(xiàn)自己的代碼,我們必須要能夠與其他眾...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(19)——不穩(wěn)定的內(nèi)核API
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 剛才欣聞在SB會(huì)試運(yùn)行期間,參觀的上海市民情緒非常穩(wěn)定的,很好很舒服的展示了自己的風(fēng)采。于是我們要在這里要反思一下,為什么內(nèi)核的API就不能同樣的穩(wěn)定?開(kāi)源社區(qū)正以極快的速度向內(nèi)核中添加新功能,同時(shí)又在努力讓修補(bǔ)bug的步伐跟上去,放慢開(kāi)發(fā)速度看上去是不太可...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(18)——選擇發(fā)行版
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 學(xué)習(xí)內(nèi)核首先要會(huì)使用它,依照一個(gè)由上至下循序漸進(jìn)的過(guò)程,在能夠熟練的使用Linux操作系統(tǒng)之后再去研究?jī)?nèi)核中的實(shí)現(xiàn)。因此,了解并選擇一個(gè)發(fā)行版進(jìn)行安裝使用便是一個(gè)不能回避的過(guò)程。 目前已經(jīng)有超過(guò)600個(gè)Linux發(fā)行版,可以在
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(17)——子系統(tǒng)的初始化:以PCI子系統(tǒng)為例
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 由Kconfig這張地圖的分布來(lái)看,PCI這塊兒的代碼應(yīng)該分布在兩個(gè)地方,drivers/pci和arch/i386/pci,兩岸三地都屬于一個(gè)中國(guó),不管是drivers/pci那兒的,還是arch/i386/pci那兒的,也都只屬于一個(gè)PCI子系統(tǒng),本著一個(gè)中國(guó)的原則,咱們要...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(16)——子系統(tǒng)的初始化:那些入口函數(shù)
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 內(nèi)核選項(xiàng)的解析完成之后,各個(gè)子系統(tǒng)的初始化即進(jìn)入第二部分—入口函數(shù)的調(diào)用。通常USB、PCI這樣的子系統(tǒng)都會(huì)有一個(gè)名為subsys_initcall的入口,如果你選擇它們作為研究?jī)?nèi)核的切入點(diǎn),那么就請(qǐng)首先找到它。朱德庸在《關(guān)于上班這件事》里說(shuō),要花前半生找入口,花后半生找出...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(15)——子系統(tǒng)的初始化:內(nèi)核選項(xiàng)解析
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 首先感謝國(guó)家。其次感謝上大的鐘莉穎,讓我知道了大學(xué)不僅有校花,還有校雞,而且很多時(shí)候這兩者其實(shí)沒(méi)什么差別。最后感謝清華女劉靜,讓我深刻體會(huì)到了素質(zhì)教育的重要性,讓我感到有責(zé)任寫(xiě)寫(xiě)子系統(tǒng)的初始化。各個(gè)子系統(tǒng)的初始化是內(nèi)核整個(gè)初始化過(guò)程必然要完成的基本任務(wù),這些任務(wù)按照...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(14)——內(nèi)核中的鏈表
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 早上上班坐地鐵要排隊(duì),到了公司樓下等電梯要排隊(duì),中午吃飯要排隊(duì),下班了追求一個(gè)女孩子也要排隊(duì),甚至在網(wǎng)上下載個(gè)什么門(mén)的短片也要排隊(duì),每次看見(jiàn)人群排成一條長(zhǎng)龍時(shí),才真正意識(shí)到自己是龍的傳人。那么下面咱們就說(shuō)說(shuō)隊(duì)列(鏈表)。 使用鏈表的目的很明確,因?yàn)橛泻芏嗍?..
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(13)——驅(qū)動(dòng)開(kāi)發(fā)三件寶:spec、datasheet與內(nèi)核源碼
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 設(shè)備模型之外,對(duì)于驅(qū)動(dòng)程序的開(kāi)發(fā)者來(lái)說(shuō),有三樣?xùn)|西是不可缺少的:第一是協(xié)議或標(biāo)準(zhǔn)的spec,也就是規(guī)范,比如usb協(xié)議規(guī)范;第二是硬件的datasheet,即你的驅(qū)動(dòng)要支持的硬件的手冊(cè);第三就是內(nèi)核里類似驅(qū)動(dòng)的源代碼,比如你要寫(xiě)觸摸屏驅(qū)動(dòng)的話,就可以參考內(nèi)核里已經(jīng)有的一...
linux內(nèi)核
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(12)——設(shè)備模型(下)
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 設(shè)備模型拍得再玄幻,它也只是個(gè)模型,必須得落實(shí)在具體的子系統(tǒng),否則就只能抱著個(gè)最佳技術(shù)獎(jiǎng)空遺恨。既然前面已經(jīng)以USB子系統(tǒng)的實(shí)現(xiàn)分析示例了分析內(nèi)核源碼應(yīng)該如何入手,那么這里就仍然以USB子系統(tǒng)為例,看看設(shè)備模型是如何軟著陸的。內(nèi)核中USB子系統(tǒng)的結(jié)構(gòu) 我們已經(jīng)知道了...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(11)——設(shè)備模型(上)
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 對(duì)于驅(qū)動(dòng)開(kāi)發(fā)來(lái)說(shuō),設(shè)備模型的理解是根本,毫不夸張得說(shuō),理解了設(shè)備模型,,再去看那些五花八門(mén)的驅(qū)動(dòng)程序,你會(huì)發(fā)現(xiàn)自己站在了另一個(gè)高度,從而有了一種俯視的感覺(jué),就像鳳姐俯視知音和故事會(huì),韓峰同志俯視女下屬。顧名而思義就知道設(shè)備模型是關(guān)于設(shè)備的模型,既不是任小強(qiáng)們的房模,也不是...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(10)——模塊機(jī)制與“Hello World!”
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 有一種感動(dòng),叫內(nèi)牛滿面,有一種機(jī)制,叫模塊機(jī)制。顯然,這種模塊機(jī)制給那些Linux的發(fā)燒友們帶來(lái)了方便,因?yàn)槟K機(jī)制意味著人們可以把龐大的Linux內(nèi)核劃分為許許多多個(gè)小的模塊。對(duì)于編寫(xiě)設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)者來(lái)說(shuō),從此以后他們可以編寫(xiě)設(shè)備驅(qū)動(dòng)程序卻不需要把她編譯進(jìn)內(nèi)核,不用r...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(9)——內(nèi)核學(xué)習(xí)的相關(guān)資源
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 “世界上最缺的不是金錢,而是資源。”當(dāng)我在一份報(bào)紙上看到這句大大標(biāo)題時(shí),我的第一反應(yīng)是——作者一定是個(gè)自然環(huán)保主義者,然后我在羞愧得反省自身的同時(shí)油然生出一股對(duì)這樣的無(wú)產(chǎn)主義理想者無(wú)比崇敬的情緒來(lái)。 于是,我繼續(xù)往下看,“因此在XXX還未正式面市之時(shí)...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(8)——內(nèi)核學(xué)習(xí)的心理問(wèn)題
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 對(duì)于學(xué)習(xí)來(lái)說(shuō),無(wú)論是在學(xué)校的課堂學(xué)習(xí),還是這里說(shuō)的內(nèi)核學(xué)習(xí),效果好或者壞,最主要取決于兩個(gè)方面——方法論和心理。注意,我無(wú)視了智商的差異,這玩意兒玄之又玄,岔開(kāi)了說(shuō),屬于迷信的范疇。 前面又是Kernel地圖,又是如何入手,說(shuō)的都是方法論的問(wèn)題,那么這里要面對(duì)的就主...
linux內(nèi)核 linux
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(7)——分析內(nèi)核源碼如何入手?(下)
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 下面的分析,米盧教練說(shuō)了,內(nèi)容不重要,重要的是態(tài)度。就像韓局長(zhǎng)對(duì)待日記的態(tài)度那樣,嚴(yán)謹(jǐn)而細(xì)致。只要你使用這樣的態(tài)度開(kāi)始分析內(nèi)核,那么無(wú)論你選擇內(nèi)核的哪個(gè)部分作為切入點(diǎn),比如USB,比如進(jìn)程管理,在花費(fèi)相對(duì)不算很多的時(shí)間之后,你就會(huì)發(fā)現(xiàn)你對(duì)內(nèi)核的理解會(huì)上升到另外一個(gè)高度,...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(6)——分析內(nèi)核源碼如何入手?(上)
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 透過(guò)現(xiàn)象看本質(zhì),獸獸門(mén)無(wú)非就是一些人體藝術(shù)展示。同樣往本質(zhì)里看過(guò)去,學(xué)習(xí)內(nèi)核,就是學(xué)習(xí)內(nèi)核的源代碼,任何內(nèi)核有關(guān)的書(shū)籍都是基于內(nèi)核,而又不高于內(nèi)核的。既然要學(xué)習(xí)內(nèi)核源碼,就要經(jīng)常對(duì)內(nèi)核代碼進(jìn)行分析,而內(nèi)核代碼千千萬(wàn),還前仆后繼的不斷往里加,這就讓大部分人都有種霧里看花花...
[編程語(yǔ)言] 《Linux內(nèi)核修煉之道》精華分享與討論(5)——Kernel地圖:Kconfig與Makefile
推薦博文: Linux內(nèi)核“問(wèn)題門(mén)”——學(xué)習(xí)問(wèn)題、經(jīng)驗(yàn)集錦推薦下載:《Linux內(nèi)核修煉之道》精華版之方法論 Makefile不是Make Love從前在學(xué)校,混了四年,沒(méi)有學(xué)到任何東西,每天就是逃課,上網(wǎng),玩游戲,睡覺(jué)。畢業(yè)的時(shí)候,人家跟我說(shuō)Makefile我完全不知,但是一說(shuō)Make Love我就來(lái)勁了,現(xiàn)在想來(lái)依然覺(jué)得丟人。毫不夸張地說(shuō),Kconfig和Mak...
25條 共2頁(yè)1
本文關(guān)鍵詞:Linux內(nèi)核修煉之道,由筆耕文化傳播整理發(fā)布。
本文編號(hào):47527
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/47527.html