當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > Linux學(xué)習(xí) > linux入門(mén) > 深入理解Linux內(nèi)核 學(xué)習(xí)Linux內(nèi)核的一些建議
之所以學(xué)習(xí)Linux內(nèi)核的理由是,我喜歡它,想搞清楚他的原理,而且也愿意花時(shí)間去研究。興趣是好的老師,只有真正的喜歡一個(gè)東西,才能把它學(xué)好。此外,程序員的好奇心是天生的,要是不弄明白一件事,就會(huì)吃不下飯,睡不著覺(jué)。沒(méi)有好奇心的程序員不是真正的程序員。想要深入理解Linux內(nèi)核,學(xué)習(xí)Linux內(nèi)核有什么建議呢?下面我們來(lái)看看華清大神為我們列出的深入理解和學(xué)習(xí)Linux內(nèi)核的一些建議。
1. 了解操作系統(tǒng)基本概念。如果不會(huì),可以學(xué)習(xí)《操作系統(tǒng):設(shè)計(jì)與實(shí)現(xiàn)》Andrew S.Tanenbaum 寫(xiě)的那本。以MINIX為例子講解操作系統(tǒng)的概念。非常推薦。
2. 有了操作系統(tǒng)的基本概念以后,可以了解Linux的機(jī)制了。推薦《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》Robert Love 寫(xiě)的。這本書(shū)從概念上講解了Linux有什么,他們是怎么運(yùn)行的。這本書(shū)要反復(fù)認(rèn)真看透。
3. 有了Linux內(nèi)核的了解,還需要具體研究Linux內(nèi)核源碼。經(jīng)典的就是《深入理解Linux內(nèi)核》Daniel P. Bovet 寫(xiě)的。學(xué)習(xí)這本書(shū)的時(shí)候,要對(duì)著內(nèi)核代碼看著學(xué)。這本書(shū)學(xué)起來(lái)相當(dāng)費(fèi)力了,那么多多代碼要研究。不過(guò)這本書(shū)如果學(xué)明白了,恭喜你,Linux內(nèi)核你已經(jīng)很熟悉了。
4. 如果要開(kāi)發(fā)設(shè)備驅(qū)動(dòng),可以學(xué)習(xí)《linux設(shè)備驅(qū)動(dòng)程序》O'Reilly出版社的。這本作為驅(qū)動(dòng)的入門(mén)是很好的資料。另外還有一本《精通Linux 驅(qū)動(dòng)程序開(kāi)發(fā)》也是不錯(cuò)的教材,可以參考著看。學(xué)習(xí)驅(qū)動(dòng),免不了要學(xué)習(xí)一些硬件的協(xié)議和資料,研究哪個(gè)就找到相應(yīng)的硬件文檔,把硬件的工作原理搞明白。這些就不細(xì)說(shuō)了。
5. 網(wǎng)絡(luò)部分,學(xué)些Linux網(wǎng)絡(luò)部分就學(xué)習(xí)《深入理解LINUX網(wǎng)絡(luò)技術(shù)內(nèi)幕》。這本書(shū)把Linux的網(wǎng)絡(luò)部分講的非常清晰透徹。但是通常不做這方面的工作研究,也不用研究這么深,畢竟現(xiàn)在相關(guān)職位較少。
6. 現(xiàn)在Linux相關(guān)的工作,多集中在一些嵌入式開(kāi)發(fā)領(lǐng)域,arm,mips等,要學(xué)習(xí)以下這些體系架構(gòu)的的資料,了解CPU的設(shè)計(jì)和工作方式。ARM就看對(duì)應(yīng)的芯片手冊(cè),講的很細(xì)致。MIPS就看 《see mips run》,有一二兩版,兩版內(nèi)容有些差異,推薦都看。
7. 補(bǔ)充一點(diǎn)經(jīng)驗(yàn)。不要認(rèn)為L(zhǎng)inux很龐大,很復(fù)雜,就覺(jué)的很難學(xué)。任何東西認(rèn)真學(xué)下來(lái)都是能學(xué)會(huì)的,看你都恒心和毅力了。另外,不要走彎路,不要看市面上講什么Linux0.11的那些書(shū),直接學(xué)你要學(xué)的東西。就像學(xué)C語(yǔ)言看什么譚浩強(qiáng)一樣,彎路走了,力氣沒(méi)少花,還嚴(yán)重影響學(xué)習(xí)效果。
除了這些,在我們學(xué)習(xí)Linux的時(shí)候,還需要注意以下幾點(diǎn):
1. 學(xué)習(xí)Linux應(yīng)用編程,建議看《unix環(huán)境高級(jí)編程》,把里面的例子都做一遍,會(huì)對(duì)整個(gè)Linux編程有系統(tǒng)都認(rèn)識(shí)。
2. 針對(duì)Linux,有本 《Linux系統(tǒng)編程》,學(xué)完上一本,這本很快看一遍就懂了。主要是針對(duì)Linux具體懂一些內(nèi)容,講的挺全了,很實(shí)用。
3. Linux網(wǎng)絡(luò)編程,系統(tǒng)的學(xué)習(xí)一下《unix網(wǎng)絡(luò)編程.卷1,套接字聯(lián)網(wǎng)api》,基本上網(wǎng)絡(luò)應(yīng)用相關(guān)的程序就都沒(méi)問(wèn)題了。
以上就是深入理解和學(xué)習(xí)Linux內(nèi)核的一些建議,但愿對(duì)大家學(xué)習(xí)Linux內(nèi)核有一定的幫助,更深入理解Linux內(nèi)核。