www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] Linux可以說有人想學(xué)Linux內(nèi)核,那是什么呢?

Linux可以說有人想學(xué)Linux內(nèi)核,那是什么呢?

Linux內(nèi)核是一個操作系統(tǒng)(OS)內(nèi)核,本質(zhì)上定義為類Unix。它用于不同的操作系統(tǒng),主要是以不同的Linux發(fā)行版的形式。Linux內(nèi)核是第一個真正完整且突出的免費和開源軟件示例。Linux內(nèi)核是第一個真正完整且突出的免費和開源軟件示例,促使其廣泛采用并得到了數(shù)千名開發(fā)人員的貢獻(xiàn)。

Linux內(nèi)核由芬蘭赫爾辛基大學(xué)的學(xué)生LinusTorvalds于1991年創(chuàng)建。隨著程序員調(diào)整其他自由軟件項目的源代碼以擴(kuò)展內(nèi)核的功能,它迅速取得了進(jìn)展。Torvalds首先使用80386匯編語言編寫的任務(wù)切換器以及終端驅(qū)動程序,然后將其發(fā)布到comp.os.minixUsenet組。它很快被MINIX社區(qū)所改編,為該項目提供了見解和代碼。

Linux內(nèi)核越來越受歡迎,因為GNU自己的內(nèi)核GNUHurd不可用且不完整,而BerkeleySoftwareDistribuTIon(BSD)操作系統(tǒng)仍然受到法律問題的困擾。在開發(fā)人員社區(qū)的幫助下,Linux0.01于1991年9月17日發(fā)布。

linux內(nèi)核學(xué)習(xí)路線

很多同學(xué)接觸Linux不多,對Linux平臺的開發(fā)更是一無所知。而現(xiàn)在的趨勢越來越表明,作為一個優(yōu)秀的軟件開發(fā)人員,或計算機(jī)IT行業(yè)從業(yè)人員,掌握Linux是一種很重要的謀生資源與手段。下來我將會結(jié)合自己的幾年的個人開發(fā)經(jīng)驗,及對Linux,更是類UNIX系統(tǒng),及開源軟件文化,談?wù)凩inux的學(xué)習(xí)方法與學(xué)習(xí)中應(yīng)該注意的一些事。

就如同剛才說的,很多同學(xué)以前可能連Linux是什么都不知道,對UNIX更是一無所知。所以我們從最基礎(chǔ)的講起,對于Linux及UNIX的歷史我們不做多談,直接進(jìn)入入門的學(xué)習(xí)。

Linux入門是很簡單的,問題是你是否有耐心,是否愛折騰,是否不排斥重裝一類的大修。沒折騰可以說是學(xué)不好Linux的,鳥哥說過,要真正了解Linux的分區(qū)機(jī)制,對LVM使用相當(dāng)熟練,沒有20次以上的Linux裝機(jī)經(jīng)驗是積累不起來的,所以一定不要怕折騰。

由于大家之前都使用Windows,所以我也盡可能照顧這些“菜鳥”。我的推薦,如果你第一次接觸Linux,那么首先在虛擬機(jī)中嘗試它。虛擬機(jī)我推薦VirtualBox,我并不主張使用VM,原因是VM是閉源的,并且是收費的,我不希望推動盜版。當(dāng)然如果你的Money足夠多,可以嘗試VM,但我要說的是即使是VM,不一定就一定好。付費的軟件不一定好。首先,VirtualBox很小巧,Windows平臺下安裝包在80MB左右,而VM動輒600MB,雖然功能強大,但資源消耗也多,何況你的需求VirtualBox完全能夠滿足。所以,還是自己選。如何使用虛擬機(jī),是你的事,這個我不教你,因為很簡單,不會的話Google或Baidu都可以,英文好的可以直接看官方文檔。

現(xiàn)在介紹Linux發(fā)行版的知識。正如你所見,Linux發(fā)行版并非Linux,Linux僅是指操作系統(tǒng)的內(nèi)核,作為科班出生的你不要讓我解釋,我也沒時間。我推薦的發(fā)行版如下:

UBUNTU適合純菜鳥,追求穩(wěn)定的官方支持,對系統(tǒng)穩(wěn)定性要求較弱,喜歡最新應(yīng)用,相對來說不太喜歡折騰的開發(fā)者。

Debian,相對UBUNTU難很多的發(fā)行版,突出特點是穩(wěn)定與容易使用的包管理系統(tǒng),缺點是企業(yè)支持不足,為社區(qū)開發(fā)驅(qū)動。

Arch,追逐時尚的開發(fā)者的首選,優(yōu)點是包更新相當(dāng)快,無縫升級,一次安裝基本可以一直運作下去,沒有如UBUNTU那樣的版本概念,說的專業(yè)點叫滾動升級,保持你的系統(tǒng)一定是最新的。缺點顯然易見,不穩(wěn)定。同時安裝配置相對Debian再麻煩點。

Gentoo,相對Arch再難點,考驗使用者的綜合水平,從系統(tǒng)安裝到微調(diào),內(nèi)核編譯都親歷親為,是高手及黑客顯示自己技術(shù)手段,按需配置符合自己要求的系統(tǒng)的首選。

Slackware與Gentoo類似。

CentOS,社區(qū)維護(hù)的RedHat的復(fù)刻版本,完全使用RedHat的源碼重新編譯生成,與RedHat的兼容性在理論上來說是最好的。如果你專注于Linux服務(wù)器,如網(wǎng)絡(luò)管理,架站,那么CentOS是你的選擇。

LFS,終極黑客顯擺工具,完全從源代碼安裝,編譯系統(tǒng)。安裝前你得到的只有一份文檔,你要做的就是照文檔你的說明,一步步,一條條命令,一個個軟件包的去構(gòu)建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,證明你的Linux功底已經(jīng)相當(dāng)不錯,如果你能拿LFS文檔活學(xué)活用,再將Linux從源代碼開始移植到嵌入式系統(tǒng),我敢說中國的企業(yè)你可以混的很好。

你得挑一個適合你的系統(tǒng),然后在虛擬機(jī)安裝它,開始使用它。如果你想快速學(xué)會Linux,我有一個建議就是忘記圖形界面,不要想圖形界面能不能提供你問題的答案,而是滿世界的去找,去問,如何用命令行解決你的問題。在這個過程中,你最好能將Linux的命令掌握的不錯,起碼常用的命令得知道,同時建立了自己的知識庫,里面是你積累的各項知識。

再下個階段,你需要學(xué)習(xí)的是Linux平臺的C++/C++開發(fā),同時還有Bash腳本編程,如果你對Java興趣很深還有Java。同樣,建議你拋棄掉圖形界面的IDE,從VIM開始,為什么是VIM,而不是Emacs,我無意挑起編輯器大戰(zhàn),但我覺得VIM適合初學(xué)者,適合手比較笨,腦袋比較慢的開發(fā)者。Emacs的鍵位太多,太復(fù)雜,我很畏懼。然后是GCC,Make,Eclipse(Java,C++或者)。雖然將C++列在了Eclipse中,但我并不推薦用IDE開發(fā)C++,因為這不是Linux的文化,容易讓你忽略一些你應(yīng)該注意的問題。IDE讓你變懶,懶得跟豬一樣。如果你對程序調(diào)試,測試工作很感興趣,GDB也得學(xué)的很好,如果不是GDB也是必修課。這是開發(fā)的第一步,注意我并沒有提過一句Linux系統(tǒng)API的內(nèi)容,這個階段也不要關(guān)心這個。你要做的就是積累經(jīng)驗,在Linux平臺的開發(fā)經(jīng)驗。我推薦的書如下:C語言程序設(shè)計,譚浩強的也可以。C語言,白皮書當(dāng)然更好。C++推薦C++PrimerPlus,Java我不喜歡,就不推薦了。工具方面推薦VIM的官方手冊,GCC中文文檔,GDB中文文檔,GNU開源軟件開發(fā)指導(dǎo)(電子書),匯編語言程序設(shè)計(讓你對庫,鏈接,內(nèi)嵌匯編,編譯器優(yōu)化選項有初步了解,不必深度)。

如果你這個階段過不了就不必往下做了,這是底線,最基礎(chǔ)的基礎(chǔ),否則離開,不要霍霍Linux開發(fā)。不專業(yè)的Linux開發(fā)者作出的程序是與Linux文化或UNIX文化相背的,程序是走不遠(yuǎn)的,不可能像Bash,VIM這些神品一樣。所以做不好干脆離開。

接下來進(jìn)入Linux系統(tǒng)編程,不二選擇,APUE,UNIX環(huán)境高級編程,一遍一遍的看,看10遍都嫌少,如果你可以在大學(xué)將這本書翻爛,里面的內(nèi)容都實踐過,有作品,你口頭表達(dá)能力夠強,你可以在面試時說服所有的考官。(可能有點夸張,但APUE絕對是圣經(jīng)一般的讀物,即使是Windows程序員也從其中汲取養(yǎng)分,Google創(chuàng)始人的案頭書籍,扎爾伯克的床頭讀物。)

這本書看完后你會對Linux系統(tǒng)編程有相當(dāng)?shù)牧私?,知道Linux與Windows平臺間開發(fā)的差異在哪?它們的優(yōu)缺點在哪?我的總結(jié)如下:做Windows平臺開發(fā),很苦,微軟的系統(tǒng)API總在擴(kuò)容,想使用最新潮,最高效的功能,最適合當(dāng)前流行系統(tǒng)的功能你必須時刻學(xué)習(xí)。Linux不是,Linux系統(tǒng)的核心API就100來個,記憶力好完全可以背下來。而且經(jīng)久不變,為什么不變,因為要同UNIX兼容,符合POSIX標(biāo)準(zhǔn)。所以Linux平臺的開發(fā)大多是專注于底層的或服務(wù)器編程。這是其優(yōu)點,當(dāng)然圖形是Linux的軟肋,但我站在一個開發(fā)者的角度,我無所謂,因為命令行我也可以適應(yīng),如果有更好的圖形界面我就當(dāng)作恩賜吧。另外,Windows閉源,系統(tǒng)做了什么你更本不知道,永遠(yuǎn)被微軟牽著鼻子跑,想想如果微軟說Win8不支持QQ,那騰訊不得哭死。而Linux完全開源,你不喜歡,可以自己改,只要你技術(shù)夠。另外,Windows雖然使用的人多,但使用場合單一,專注與桌面。而Linux在各個方面都有發(fā)展,尤其在云計算,服務(wù)器軟件,嵌入式領(lǐng)域,企業(yè)級應(yīng)用上有廣大前景,而且兼容性一流,由于支持POSIX可以無縫的運行在UNIX系統(tǒng)之上,不管是蘋果的Mac還是IBM的AS400系列,都是完全支持的。另外,Linux的開發(fā)環(huán)境支持也絕對是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就連C#也支持。而微軟除VisualStdio套件以外,都不怎么友好,不是嗎?

如果你看完APUE的感觸有很多,希望驗證你的某些想法或經(jīng)驗,推薦UNIX程序設(shè)計藝術(shù),世界頂級黑客將同你分享他的看法。

現(xiàn)在是時候做分流了。大體上我分為四個方向:網(wǎng)絡(luò),圖形,嵌入式,設(shè)備驅(qū)動。

如果選擇網(wǎng)絡(luò),再細(xì)分,我對其他的不是他熟悉,只說服務(wù)器軟件編寫及高性能的并發(fā)程序編寫吧。相對來說這是網(wǎng)絡(luò)編程中技術(shù)含量最高的,也是底層的。需要很多的經(jīng)驗,看很多的書,做很多的項目。

我的看法是以下面的順序來看書:

APUE再深讀–尤其是進(jìn)程,線程,IPC,套接字

多核程序設(shè)計-Pthread一定得吃透了,你很NB

UNIX網(wǎng)絡(luò)編程–卷一,卷二

TCP/IP網(wǎng)絡(luò)詳解–卷一再看上面兩本書時就該看了

5.TCP/IP網(wǎng)絡(luò)詳解–卷二我覺得看到卷二就差不多了,當(dāng)然卷三看了更好,努力,爭取看了

6.Lighttpd源代碼-這個服務(wù)器也很有名了

7.Nginx源代碼–相較于Apache,Nginx的源碼較少,如果能看個大致,很NB。看源代碼主要是要學(xué)習(xí)里面的套接字編程及并發(fā)控制,想想都激動。如果你有這些本事,可以試著往暴雪投簡歷,為他們寫服務(wù)器后臺,想一想全球的魔獸都運行在你的服務(wù)器軟件上。

Linux內(nèi)核TCP/IP協(xié)議棧–深入了解TCP/IP的實現(xiàn)

如果你還喜歡驅(qū)動程序設(shè)計,可以看看更底層的協(xié)議,如鏈路層的,寫什么路由器,網(wǎng)卡,網(wǎng)絡(luò)設(shè)備的驅(qū)動及嵌入式系統(tǒng)軟件應(yīng)該也不成問題了。

當(dāng)然一般的網(wǎng)絡(luò)公司,就算百度級別的也該毫不猶豫的雇用你。只是看后面這些書需要時間與經(jīng)驗,所以35歲以前辦到吧!跳槽到給你未來的地方!

圖形方向,我覺得圖形方向也是很有前途的,以下幾個方面。

Opengl的工業(yè)及游戲開發(fā),國外較成熟。

影視動畫特效,如皮克斯,也是國外較成熟。

GPU計算技術(shù),可以應(yīng)用在瀏覽器網(wǎng)頁渲染上,GPU計算資源利用上,由于開源的原因,有很多的文檔程序可以參考。如果能進(jìn)火狐開發(fā),或google做瀏覽器開發(fā),應(yīng)該會很好。

嵌入式方向:嵌入式方向沒說的,Linux很重要。

掌握多個架構(gòu),不僅X86的,ARM的,單片機(jī)什么的也必須得懂。硬件不懂我預(yù)見你會死在半路上,我也想走嵌入式方向,但我覺得就學(xué)校教授嵌入式的方法,我連學(xué)電子的那幫學(xué)生都競爭不過。奉勸大家,一定得懂硬件再去做,如果走到嵌入式應(yīng)用開發(fā),只能祝你好運,不要碰上像Nokia,Hp這樣的公司,否則你會很慘的。

驅(qū)動程序設(shè)計:軟件開發(fā)周期是很長的,硬件不同,很快。每個月誕生那么多的新硬件,如何讓他們在Linux上工作起來,這是你的工作。由于Linux的兼容性很好,如果不是太低層的驅(qū)動,基本C語言就可以搞定,系統(tǒng)架構(gòu)的影響不大,因為有系統(tǒng)支持,你可能做些許更改就可以在ARM上使用PC的硬件了,所以做硬件驅(qū)動開發(fā)不像嵌入式,對硬件知識的要求很高??梢詮氖碌姆较蛞埠芏?,如家電啊,特別是如索尼,日立,希捷,富士康這樣的廠子,很稀缺的。

LDD–Linux驅(qū)動程序設(shè)計與內(nèi)核編程的基礎(chǔ)讀物

深入理解Linux內(nèi)核–進(jìn)階的

Linux源代碼–永無止境的

當(dāng)然你還的看個方面的書,如網(wǎng)絡(luò)啊什么的。

學(xué)習(xí)linux內(nèi)核的建議

學(xué)習(xí)linux內(nèi)核,這個可不像學(xué)一門語言,c或者java一個月或者3月你就能精通掌握。學(xué)習(xí)linux內(nèi)核是需要一步一步循序漸進(jìn),掌握正確的linux內(nèi)核學(xué)習(xí)路線對學(xué)習(xí)至關(guān)重要,本篇文章就來分享學(xué)習(xí)linux內(nèi)核的一些建議吧。

1.了解操作系統(tǒng)基本概念。如果不會,可以學(xué)習(xí)《操作系統(tǒng):設(shè)計與實現(xiàn)》AndrewS.Tanenbaum寫的那本。以MINIX為例子講解操作系統(tǒng)的概念。非常推薦。

2.有了操作系統(tǒng)的基本概念以后,可以了解Linux的機(jī)制了。推薦《Linux內(nèi)核設(shè)計與實現(xiàn)》RobertLove寫的。這本書從概念上講解了Linux有什么,他們是怎么運行的。這本書要反復(fù)認(rèn)真看透。

3.有了Linux內(nèi)核的了解,還需要具體研究Linux內(nèi)核源碼。經(jīng)典的就是《深入理解Linux內(nèi)核》DanielP.Bovet寫的。學(xué)習(xí)這本書的時候,要對著內(nèi)核代碼看著學(xué)。這本書學(xué)起來相當(dāng)費力了,那么多多代碼要研究。不過這本書如果學(xué)明白了,恭喜你,Linux內(nèi)核你已經(jīng)很熟悉了。

4.如果要開發(fā)設(shè)備驅(qū)動,可以學(xué)習(xí)《linux設(shè)備驅(qū)動程序》O‘Reilly出版社的。這本作為驅(qū)動的入門是很好的資料。另外還有一本《精通Linux驅(qū)動程序開發(fā)》也是不錯的教材,可以參考著看。學(xué)習(xí)驅(qū)動,免不了要學(xué)習(xí)一些硬件的協(xié)議和資料,研究哪個就找到相應(yīng)的硬件文檔,把硬件的工作原理搞明白。這些就不細(xì)說了。

5.網(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)職位較少。

6.現(xiàn)在Linux相關(guān)的工作,多集中在一些嵌入式開發(fā)領(lǐng)域,arm,mips等,要學(xué)習(xí)以下這些體系架構(gòu)的的資料,了解CPU的設(shè)計和工作方式。ARM就看對應(yīng)的芯片手冊,講的很細(xì)致。MIPS就看《seemipsrun》,有一二兩版,兩版內(nèi)容有些差異,推薦都看。

7.補充一點經(jīng)驗。不要認(rèn)為Linux很龐大,很復(fù)雜,就覺的很難學(xué)。任何東西認(rèn)真學(xué)下來都是能學(xué)會的,看你都恒心和毅力了。另外,不要走彎路,不要看市面上講什么Linux0.11的那些書,直接學(xué)你要學(xué)的東西。就像學(xué)C語言看什么譚浩強一樣,彎路走了,力氣沒少花,還嚴(yán)重影響學(xué)習(xí)效果。

關(guān)于linux內(nèi)核學(xué)習(xí)路線,再多說幾句應(yīng)用編程,有時候經(jīng)常會需要的:

1.學(xué)習(xí)Linux應(yīng)用編程,建議看《unix環(huán)境高級編程》,把里面的例子都做一遍,會對整個Linux編程有系統(tǒng)都認(rèn)識。

2.針對Linux,有本《Linux系統(tǒng)編程》,學(xué)完上一本,這本很快看一遍就懂了。主要是針對Linux具體懂一些內(nèi)容,講的挺全了,很實用。

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)的程序就都沒問題了。

這些內(nèi)容,分幾年時間,分步計劃學(xué)習(xí),就會成為Linux高手了。個人建議參加華清遠(yuǎn)見的培訓(xùn),學(xué)習(xí)效率會高很多,有目的性的參加培訓(xùn),縮短周期,快速成型才是時代所需。

這是我們推薦的Linux核心學(xué)習(xí)系列

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉