Linux內(nèi)核開發(fā)應(yīng)該怎么學(xué)?(附帶學(xué)習(xí)路線)
學(xué)習(xí)linux內(nèi)核,這個(gè)可不像學(xué)一門語言,c或者java一個(gè)月或者3月你就能精通掌握。學(xué)習(xí)linux內(nèi)核是需要一步一步循序漸進(jìn),掌握正確的linux內(nèi)核學(xué)習(xí)路線對(duì)學(xué)習(xí)至關(guān)重要,本篇文章就來分享學(xué)習(xí)linux內(nèi)核的一些建議吧。
了解操作系統(tǒng)基本概念。如果不會(huì),可以學(xué)習(xí)《操作系統(tǒng):設(shè)計(jì)與實(shí)現(xiàn)》Andrew S.Tanenbaum 寫的那本。以MINIX為例子講解操作系統(tǒng)的概念。非常推薦。
有了操作系統(tǒng)的基本概念以后,可以了解Linux的機(jī)制了。推薦《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》Robert Love 寫的。這本書從概念上講解了Linux有什么,他們是怎么運(yùn)行的。這本書要反復(fù)認(rèn)真看透。
有了Linux內(nèi)核的了解,還需要具體研究Linux內(nèi)核源碼。經(jīng)典的就是《深入理解Linux內(nèi)核》Daniel P. Bovet 寫的。學(xué)習(xí)這本書的時(shí)候,要對(duì)著內(nèi)核代碼看著學(xué)。這本書學(xué)起來相當(dāng)費(fèi)力了,那么多多代碼要研究。不過這本書如果學(xué)明白了,恭喜你,Linux內(nèi)核你已經(jīng)很熟悉了。
如果要開發(fā)設(shè)備驅(qū)動(dòng),可以學(xué)習(xí)《linux設(shè)備驅(qū)動(dòng)程序》O'Reilly出版社的。這本作為驅(qū)動(dòng)的入門是很好的資料。另外還有一本《精通Linux 驅(qū)動(dòng)程序開發(fā)》也是不錯(cuò)的教材,可以參考著看。學(xué)習(xí)驅(qū)動(dòng),免不了要學(xué)習(xí)一些硬件的協(xié)議和資料,研究哪個(gè)就找到相應(yīng)的硬件文檔,把硬件的工作原理搞明白。這些就不細(xì)說了。
網(wǎng)絡(luò)部分,學(xué)些Linux網(wǎng)絡(luò)部分就學(xué)習(xí)《深入理解LINUX網(wǎng)絡(luò)技術(shù)內(nèi)幕》。這本書把Linux的網(wǎng)絡(luò)部分講的非常清晰透徹。但是通常不做這方面的工作研究,也不用研究這么深,畢竟現(xiàn)在相關(guān)職位較少。
現(xiàn)在Linux相關(guān)的工作,多集中在一些嵌入式開發(fā)領(lǐng)域,arm,mips等,要學(xué)習(xí)以下這些體系架構(gòu)的的資料,了解CPU的設(shè)計(jì)和工作方式。ARM就看對(duì)應(yīng)的芯片手冊(cè),講的很細(xì)致。MIPS就看 《see mips run》,有一二兩版,兩版內(nèi)容有些差異,推薦都看。
補(bǔ)充一點(diǎn)經(jīng)驗(yàn)。不要認(rèn)為L(zhǎng)inux很龐大,很復(fù)雜,就覺的很難學(xué)。任何東西認(rèn)真學(xué)下來都是能學(xué)會(huì)的,看你都恒心和毅力了。另外,不要走彎路,不要看市面上講什么Linux0.11的那些書,直接學(xué)你要學(xué)的東西。就像學(xué)C語言看什么譚浩強(qiáng)一樣,彎路走了,力氣沒少花,還嚴(yán)重影響學(xué)習(xí)效果。
關(guān)于linux內(nèi)核學(xué)習(xí)路線,再多說幾句
這里給大家分享零聲教育的Linux內(nèi)核源碼課程,對(duì)標(biāo)騰訊T9級(jí)別。
主要從
進(jìn)程管理專題
內(nèi)存管理專題
網(wǎng)絡(luò)協(xié)議棧專題
設(shè)備驅(qū)動(dòng)管理專題
文件系統(tǒng)及內(nèi)核組件專題
全方面系統(tǒng)全面的講解底層原理開發(fā)技術(shù):
最新Linux內(nèi)核大綱
進(jìn)程管理專題

內(nèi)存管理專題

網(wǎng)絡(luò)協(xié)議棧專題

設(shè)備驅(qū)動(dòng)管理專題

文件系統(tǒng)及內(nèi)核組件專題


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個(gè)人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。?!前100名進(jìn)群領(lǐng)取,額外贈(zèng)送一份價(jià)值699的內(nèi)核資料包(含視頻教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)? ? ?


?
適合于
1. 從事業(yè)務(wù)開發(fā)多年,對(duì)底層原理理解不夠深入的在職工程師
2. 從事嵌入式方向開發(fā),想轉(zhuǎn)入互聯(lián)網(wǎng)開發(fā)的在職工程師
3. 從事Qt/MFC等桌面開發(fā),薪資多年漲幅不大的在職工程師
4. 從事非開發(fā)崗位(算法崗,運(yùn)維崗,測(cè)試崗),想轉(zhuǎn)后臺(tái)開發(fā)崗位的在職工程師
5. 工作中技術(shù)沒有挑戰(zhàn),工作中接觸不到新技術(shù)的在職工程師
6. 自己研究學(xué)習(xí)速度較慢,不能系統(tǒng)構(gòu)建知識(shí)體系的開發(fā)人員
7. 了解很多技術(shù)名詞,但是深入細(xì)問又不理解的工程師
8. 計(jì)算機(jī)相關(guān)專業(yè)想進(jìn)入大廠的在校生(本科及以上學(xué)歷,有c/c++基礎(chǔ))




學(xué)習(xí)模式:
128小時(shí)錄播課,持續(xù)9個(gè)月,每周晚上騰訊課堂8點(diǎn)到10點(diǎn)直播公開課
課前預(yù)習(xí)資料課后思考實(shí)踐作業(yè)
班主任督學(xué)作業(yè)統(tǒng)計(jì)博客統(tǒng)計(jì)
老師答疑工作問題課程問題
獎(jiǎng)學(xué)金機(jī)制最高1000元公開透明
這些內(nèi)容,分些時(shí)間,分步計(jì)劃學(xué)習(xí),就會(huì)成為L(zhǎng)inux高手了