在Linux下掌握arm和操作系统(0)--开篇闲聊
很明顯我是標(biāo)題黨,真正的標(biāo)題是《在Linux下學(xué)習(xí)stm32和NUTTX RTOS》。
由于stm32也是ARM的,NUTTX也是操作系統(tǒng),stm32和NUTTX有著arm的基本特征,NUTTX有著操作系統(tǒng)的基本特征,如果把這兩者搞明白了,
你會(huì)發(fā)現(xiàn)其他的arm芯片和操作系統(tǒng)似曾相識(shí)。
至于為什么選這兩者結(jié)合,原因有一下幾點(diǎn):
1,nuttx對(duì)stm32支持的特別好,
2.stm32資料很多,很容易找到資料學(xué)習(xí),或者很多人學(xué)過(guò)
3.nuttx和非常成果的Linux很像,而且開(kāi)源協(xié)議更有利于開(kāi)發(fā)產(chǎn)品
4.最重要的是,這兩個(gè)相對(duì)來(lái)說(shuō)功能都很豐富,而且相對(duì)簡(jiǎn)單。因?yàn)楹?jiǎn)單,我們才有信心征服他,我們大多數(shù)人也有能力征服他。
但是為什么一定要在Linux下?因?yàn)樵赪indows下學(xué)不會(huì)系統(tǒng),在Windows下開(kāi)發(fā)也許的確很方便,正因?yàn)榉奖?#xff0c;你不去思考,你不知道為什么會(huì)這樣,時(shí)間越長(zhǎng)越不明白,
Linux正好相反,它把所有的都呈現(xiàn)給你,讓你在做每一步的時(shí)候都明明白白的知道自己在干嘛,剛開(kāi)始可能覺(jué)得難,但時(shí)間久了就越明白系統(tǒng)的原理。就算不學(xué)習(xí)這么底層的原理,Linux的使用還是必須的。
說(shuō)大了,這是學(xué)習(xí)計(jì)算機(jī)和操作系統(tǒng)的最佳實(shí)踐。也是最功利的一種選擇,就arm的架勢(shì):低端,中端,高端全線布局可以說(shuō),未來(lái)是arm的。
從操作系統(tǒng)的角度看,Linux已經(jīng)名滿天下,但是Linux的實(shí)時(shí)性不好和不能再M(fèi)CU上跑的限制讓NUTTX給填補(bǔ)了,看起來(lái)就像在MCU上實(shí)現(xiàn)了Linux。
大家都知道Linux已經(jīng)接管了世界,現(xiàn)在各種智能設(shè)備基本上都是了Linux的天下了。Linux使得形態(tài)各異,功能千差萬(wàn)別的設(shè)備讓用戶看來(lái)都是統(tǒng)一的文件操作
大大方便了人們使用,正是因?yàn)闃?biāo)準(zhǔn)而統(tǒng)一的操作方式才有了Linux輝煌的今天。明天Linux必將繼續(xù)輝煌,在移動(dòng)端,在云端,在AI,在PC,在我們能想到的或想不到的地方。
然而隨著物聯(lián)網(wǎng)(IOT)的興起,各種以MCU為終端的網(wǎng)絡(luò)節(jié)點(diǎn)將井噴式的出現(xiàn)。而為復(fù)雜系統(tǒng)設(shè)計(jì)的Linux并不是很適合運(yùn)行在MCU上。
在這一領(lǐng)域,目前有很多OS出現(xiàn),但是我最看好的是NUTTX,因?yàn)樗鼛缀蹙褪且粋€(gè)精簡(jiǎn)版的Linux,可以運(yùn)行在8-32位的MCU上,而且開(kāi)源協(xié)議更寬松。
這樣一來(lái),Linux的標(biāo)準(zhǔn)將實(shí)現(xiàn)大一統(tǒng),在人和機(jī)器中間形成一個(gè)統(tǒng)一的OS層,就像Linux系統(tǒng)中VFS在各種文件系統(tǒng)中的作用一樣,這樣一層統(tǒng)一的OS層將使人和物聯(lián)網(wǎng)這一更大的系統(tǒng)更統(tǒng)一。
反過(guò)來(lái)說(shuō),可以通過(guò)stm32和NUTTX的學(xué)習(xí)為更進(jìn)一步學(xué)習(xí)arm和Linux打下堅(jiān)實(shí)的基礎(chǔ),有了這個(gè)基礎(chǔ),更進(jìn)一步的學(xué)習(xí)會(huì)更容易,更深入。
亂七八糟的說(shuō)了這么多,核心意思就是,在Linux下學(xué)習(xí)stm32和NUTTX是最好的選擇,沒(méi)有之一。
本系列文章,都是默認(rèn)大家有C語(yǔ)言和Linux的基礎(chǔ)。
為什么?
我為什么會(huì)寫這些文字,這要從我的經(jīng)歷說(shuō)起,我是一個(gè)機(jī)械專業(yè)畢業(yè)的,在學(xué)校就學(xué)過(guò)C語(yǔ)言,但是我一直想把電腦的原理搞清楚,當(dāng)時(shí)總在想,我生活的時(shí)代最偉大的發(fā)明是什么?這毫無(wú)疑問(wèn)就是計(jì)算機(jī),
在工業(yè)革命時(shí)期,掌握蒸汽機(jī)的人肯定走在時(shí)代的前列,這個(gè)信息化時(shí)代掌握了計(jì)算機(jī)的人最起碼不會(huì)被社會(huì)淘汰吧,哈哈哈
出于這樣的考慮,我就想一定要學(xué)懂計(jì)算機(jī),但是要學(xué)懂計(jì)算機(jī)該從哪里入手?我唯一的入口就是C語(yǔ)言嘛,大一就學(xué)了C語(yǔ)言,我大二又學(xué)了一遍。就是在VS2008上把譚浩強(qiáng)的C上面的例子又學(xué)了一遍。
但是還是感覺(jué)啥都不會(huì)啊。我們都知道程序不就是算法加數(shù)據(jù)結(jié)構(gòu)嘛,算法根據(jù)不同的問(wèn)題有很大不同,而數(shù)據(jù)結(jié)構(gòu)是通用的,那我就必須要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)。于是就在圖書館借了大學(xué)唯一借的書
《數(shù)據(jù)結(jié)構(gòu)》粗略的學(xué)習(xí)了隊(duì)列,鏈表,棧。二叉樹,堆,圖都看不懂。。。。。到這里就遇到瓶頸,不知道如何是好也沒(méi)有方向。學(xué)習(xí)之路就擱淺了一段時(shí)間,當(dāng)時(shí)也想著作為一個(gè)機(jī)械專業(yè),
學(xué)那些計(jì)算機(jī)的知識(shí)估計(jì)以后也用不著。
但是想要學(xué)習(xí)計(jì)算機(jī)的死心仍不改,第二年就報(bào)了一個(gè)機(jī)器人的選修課,在那個(gè)課上到是沒(méi)學(xué)到啥東西。但是遇到了一個(gè)人--彭州,我特別感謝他,正是他的經(jīng)歷改變了我的想法,他也不是計(jì)算機(jī)專業(yè)的
但是他的能力,整個(gè)軟件學(xué)院的人估計(jì)沒(méi)有幾個(gè)人能比的上,他在大四的時(shí)候在外面接私活已經(jīng)掙了很多錢了。而且關(guān)于我對(duì)計(jì)算機(jī)的任何問(wèn)題他都能很通俗的告訴我,每次上課回來(lái)的路上,我就一直問(wèn)
他各種問(wèn)題,得到了及時(shí)的回答。
榜樣的力量是強(qiáng)大的,他都可以辦到的事情,我應(yīng)該也能辦到,因?yàn)槲覀兊那闆r很相似。于是內(nèi)心的熱情又被點(diǎn)燃,我要繼續(xù)學(xué)習(xí)計(jì)算機(jī)。
從哪里開(kāi)始呢?我得知單片機(jī)是最簡(jiǎn)單的計(jì)算機(jī),咱能力不行,還是從最簡(jiǎn)單的開(kāi)始,這就是傳說(shuō)中的--“捏軟柿子”。
因?yàn)槲覀儧](méi)有單片機(jī)課程,于是從隔壁班借了一本《單片機(jī)與接口技術(shù)》,泡了幾天自習(xí)室,似懂非懂。感覺(jué)這是一個(gè)實(shí)踐性很強(qiáng)的課程,必須要實(shí)踐才行。
在淘寶上看了好長(zhǎng)時(shí)間,51單片機(jī)的開(kāi)發(fā)板還是很多的,我選了一個(gè)最便宜的,大概40多塊錢吧,當(dāng)時(shí)我還沒(méi)有淘寶賬號(hào),讓舍友幫我買了。
有了開(kāi)發(fā)板,我發(fā)現(xiàn)網(wǎng)上有很好的視頻教程,其中郭天祥的《單片機(jī)十天征服你》特別好,講的特別通俗易懂,曾經(jīng)有天熬了一個(gè)通宵看視頻教程,感覺(jué)如獲至寶。就那樣學(xué)會(huì)了51,當(dāng)時(shí)有種強(qiáng)烈的滿足感,
感覺(jué)我都能上天了,哈哈哈。然而學(xué)了單片機(jī)之后發(fā)現(xiàn),要做一個(gè)系統(tǒng)還需要很多硬件知識(shí),很多招聘信息顯示要會(huì)畫電路板。我在學(xué)習(xí)畫電路板路上迷失了。。。
期間沒(méi)有方向,學(xué)習(xí)了PS,Flash動(dòng)畫等反正亂七八糟學(xué)了一些,也沒(méi)啥用,除了給當(dāng)時(shí)的女朋友現(xiàn)在的老婆做了一個(gè)小游戲,P了些照片,給他做了《基于單片機(jī)的智能玩具》的畢業(yè)設(shè)計(jì)之外就沒(méi)別的輸出了,
不過(guò)說(shuō)起來(lái)也值了,用學(xué)習(xí)的東西換回來(lái)一個(gè)老婆還是很值得的嘛,哈哈哈
好像有些跑題來(lái)了,接下我就畢業(yè)了,顯然沒(méi)有找到計(jì)算機(jī)相關(guān)的工作,我去了中煤科工集團(tuán)下的一個(gè)研究院,做的是挖煤的設(shè)備,期間下車間,下煤礦,畫圖紙,對(duì)于工作內(nèi)容當(dāng)然是不滿意了。
想學(xué)習(xí)計(jì)算機(jī)的賊心仍然沒(méi)有死,
我當(dāng)時(shí)就在網(wǎng)上看,如果要找一個(gè)計(jì)算機(jī)相關(guān)的工作需要哪些技能,看了很多招聘要求,發(fā)現(xiàn)Linux的嵌入式開(kāi)發(fā)比較適合我,但是我對(duì)于Linux和arm一點(diǎn)都不懂啊?不懂就學(xué)唄,又在淘寶上看,買了一個(gè)
2440的開(kāi)發(fā)板,因?yàn)橹鞍l(fā)現(xiàn)郭天祥的視頻教程比較好,我就想學(xué)習(xí)Linux也必須要有視頻教程,選這個(gè)開(kāi)發(fā)板的原因是他帶有視頻教程,國(guó)嵌的,講的也是挺好的。就這樣,我下班回家,熬了好多個(gè)夜晚,
周末也花費(fèi)在這上面,功夫不負(fù)有心人,我終于把視頻看完了,于是我決定去找一份Linux嵌入式的工作。周圍人聽(tīng)說(shuō)我要辭去這個(gè)鐵飯碗去找什么編程的工作,有人說(shuō)我一定會(huì)后悔,有人說(shuō)感覺(jué)我說(shuō)話
特別飄,有點(diǎn)癡人說(shuō)夢(mèng)的意思。我也猶豫,心里特別沒(méi)底,因?yàn)槲以诰W(wǎng)上其實(shí)也投了幾份簡(jiǎn)歷,沒(méi)有得到任何回音。就這猶豫和彷徨中度過(guò)了1年,在這1年中,我一邊利用業(yè)余時(shí)間繼續(xù)學(xué)習(xí)Linux,一邊
思考著:我如果從這里不離開(kāi),身邊的老同事的今天就是我的明天,這種一眼就能看到邊的人生我是不想要的,想想都可怕。我一定要去未知的世界,去探索我想了解的一切。
這一次我毅然決然的離開(kāi)了,沒(méi)有告訴任何人其他的人。我離職了,后來(lái)得益于新公司有個(gè)好老板,一些好同事,找了份Linux嵌入式的工作,我特別開(kāi)心,特別享受那份工作,那是我最開(kāi)心的一份工作,
后來(lái)我離開(kāi)了那家最喜歡的公司,來(lái)到了現(xiàn)在這家世界30強(qiáng)企業(yè)的一個(gè)研究所。
這一路走來(lái)特別曲折,我想把經(jīng)歷分享出來(lái),也是對(duì)自己的一個(gè)階段性總結(jié)。我走了很多彎路,希望看到我經(jīng)歷的朋友,尤其是還在上學(xué)的朋友,少走彎路。更希望通過(guò)我的經(jīng)歷,有更多的人喜歡上計(jì)算機(jī),想去學(xué)習(xí)這一偉大發(fā)明。
我也是一邊學(xué)習(xí)一邊寫,錯(cuò)誤不能避免,望批評(píng)指正!
?
郵箱:576648661@qq.com
- 微信號(hào):find_xiaohei
- 名稱:找小黑?
總結(jié)
以上是生活随笔為你收集整理的在Linux下掌握arm和操作系统(0)--开篇闲聊的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 李力刚:职场上如何成功推销自己
- 下一篇: Linux浏览器拉起应用程序