如何學(xué)習(xí)嵌入式Linux?要學(xué)哪些東西?有些人在學(xué)習(xí)Linux的時(shí)候,總是糾結(jié),擔(dān)心自己會(huì)繞道而行,擔(dān)心他們學(xué)到的東西不能滿足企業(yè)的需求。下文8點(diǎn)基本很明了如何學(xué)習(xí)嵌入式Linux的方法。這是嵌入式學(xué)習(xí)的基本步驟。我認(rèn)為學(xué)到文中方法,即可成為嵌入式Linux的高級(jí)角色。這些東西要依靠自學(xué),說(shuō)實(shí)話是不現(xiàn)實(shí)的,嵌入入門的門檻比較高,必須做好準(zhǔn)備。
1、要學(xué)習(xí)Linux,首先要會(huì)用,如果不會(huì)用怎么知道怎么知道怎么去做,所以需要學(xué)習(xí)Linux系統(tǒng)的安裝及使用。
2、學(xué)會(huì)用Linux了,那么我們就要做一些Linux下的開發(fā)了,開發(fā)什么呢?看到網(wǎng)上有很多很強(qiáng)大很有趣的程序,我們都可以嘗試去做,可是如何去做呢,程序是什么呢,怎么寫呢?這時(shí)我們需要學(xué)習(xí)一些語(yǔ)言,比如比較基礎(chǔ)的C語(yǔ)言,比如面向?qū)ο蟮腃++,Java等。
3、寫完程序了發(fā)現(xiàn)不就是一個(gè)很普通的文件嗎,怎么能像別人寫的程序一樣運(yùn)行起來(lái)呢?這時(shí)我們需要知道如何編譯一個(gè)程序,需要知道編譯器及一些其他工具的使用,比如GCC,在開發(fā)的過(guò)程中我們?yōu)榱颂峁┕ぷ餍蔬€會(huì)用到Make,Shell等,為了能夠很好的管理我們代碼的不同版本,我們還需要知道什么是SVC,CVS,subversion,git等。
4、當(dāng)我們開始寫一些比較大的程序,不再是以往的hello world級(jí)別的了,這時(shí)我們發(fā)現(xiàn)我們考慮的更多了,我們考慮到了程序的效率,我們發(fā)現(xiàn)需要讀寫文件了,我們發(fā)現(xiàn)需要和另外一臺(tái)電腦通信了,于是我們有需要學(xué)習(xí)一些更高級(jí)點(diǎn)的東西了,比如數(shù)據(jù)結(jié)構(gòu),比如文件IO,比如多進(jìn)程多線程編程,比如網(wǎng)絡(luò)通信,這時(shí)我們會(huì)接觸很多新的名詞,什么是樹圖,什么是文件io什么是標(biāo)準(zhǔn)IO,什么是進(jìn)程線程,什么是TCP/IP。
5、當(dāng)我們?cè)龠M(jìn)一步的話,我們會(huì)發(fā)現(xiàn)我們什么有很多的東西都運(yùn)行的是Linux系統(tǒng),可是他們和我的PC運(yùn)行的Linux有什么區(qū)別呢,為什么我電腦要用風(fēng)扇而手機(jī)不用風(fēng)扇呢,我們打開網(wǎng)頁(yè)查找手機(jī)的詳細(xì)參數(shù)的時(shí)候,會(huì)看到Cortex-A15 、四核 、ARM等等字眼,什么是ARM,什么是Cortex-A15,我們需要進(jìn)一步的了解。
6、了解完ARM之后,很多人就回去購(gòu)買一些開發(fā)板,去學(xué)習(xí)它,這時(shí)操作系統(tǒng)的移植又成了一個(gè)比較重要的內(nèi)容了,什么是bootloader,什么是kernel,什么是rootfs等等,我們?cè)趺醋瞿亍?/p>
7、花了很長(zhǎng)時(shí)間系統(tǒng)做好了,發(fā)現(xiàn)板子上很多的什么不能用,怎么辦呢?這時(shí)我們需要寫一些驅(qū)動(dòng)來(lái)驅(qū)動(dòng)這些設(shè)備,這時(shí)我們需要知道,什么是字符設(shè)備驅(qū)動(dòng)、塊設(shè)備驅(qū)動(dòng)、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng),為了更好的寫驅(qū)動(dòng)我們需要了解更多的硬件相關(guān)的東西,我們需要看懂芯片手冊(cè),我們需要看懂原理圖,只有我們懂我們的設(shè)備,才能更好的驅(qū)動(dòng)它。等等,這里就列舉更多的內(nèi)容了,因?yàn)檫€有很多。
8、這些都有了我們就可以自行開發(fā)我們自己的產(chǎn)品了。
以上即是關(guān)于如何學(xué)習(xí)嵌入式Linux的全部?jī)?nèi)容介紹,想了解更多關(guān)于Linux的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。