嵌入式有必要學(xué)習(xí)RTOS嗎,RT-Thread是否更適合你?
通過觀察近年來招聘網(wǎng)站的招聘信息,嵌入式工程師的要求中總會(huì)多出一條“掌握至少1-2種RTOS”,網(wǎng)友頭上也經(jīng)常“有許多問號(hào)”表示,到底有沒有必要學(xué)RTOS?
RTOS是啥,有必要學(xué)嗎
RTOS,英文全稱Real-time operating system,又稱“實(shí)時(shí)操作系統(tǒng)”。
與其相對(duì)應(yīng)的還有TSOS這一概念,英文全稱Time Sharing Operating System,意為“分時(shí)操作系統(tǒng)”,我們所熟知的Windows、Linux、Unix便都屬于TSOS。
RTOS其實(shí)只有“實(shí)時(shí)性”才是它的最大特征,因?yàn)镽TOS在被發(fā)明之初便是因?yàn)樵缙贑PU任務(wù)切換開銷過大,另外隨著工業(yè)和物聯(lián)網(wǎng)的發(fā)展,許多特殊場(chǎng)景重要任務(wù)執(zhí)行優(yōu)先度又極高。
因此利用實(shí)時(shí)操作系統(tǒng)可以避免頻繁切換任務(wù)浪費(fèi)的CPU時(shí)間,并且能夠滿足一些實(shí)時(shí)要求較高的場(chǎng)景。
當(dāng)然,RTOS不僅此而已,除了實(shí)時(shí),從本質(zhì)上來說,它還是一款操作系統(tǒng)。
因此在廠商的“精心呵護(hù)”之下,普遍來說RTOS都擁有著極小的體積、極低的功耗和快速的啟動(dòng)速度,提供非常豐富的組件、工具鏈和社區(qū)。
在物聯(lián)網(wǎng)爆發(fā)式發(fā)展下,RTOS是必備的。為何這么說?如果沒有RTOS,設(shè)備便是處于“裸奔”的狀態(tài),這樣的狀態(tài)性能是無法最大化利用的。而反觀招聘網(wǎng)站,RTOS幾乎成了“必修課”。
(圖:招聘網(wǎng)站上嵌入式實(shí)時(shí)操作系統(tǒng)幾乎成為必備)
所以在物聯(lián)網(wǎng)的爆發(fā)興起下,嵌入式工程師掌握使用1-2種RTOS作為知識(shí)儲(chǔ)備是很有必要,說不定哪一天項(xiàng)目中就會(huì)使用到了。
同時(shí),一些著名的嵌入式專家也給出建議學(xué)習(xí)RTOS的觀點(diǎn),因?yàn)槟壳皝碚f,使用RTOS的人和場(chǎng)景也越來越多了。
不過,RTOS雖然坐擁諸多優(yōu)點(diǎn),但也并非一把“萬能鑰匙”,任意場(chǎng)景都“一股腦”使用。
雖然的確在物流網(wǎng)興起下,RTOS的應(yīng)用越來越多,但許多工程師動(dòng)不動(dòng)就給項(xiàng)目給出使用RTOS的方案,這在設(shè)計(jì)中是很大的一個(gè)誤區(qū)。
一般來說,是否使用RTOS取決于任務(wù)的數(shù)量和復(fù)雜程度。從方案來說,問題簡(jiǎn)單化才是一切的核心。
國產(chǎn)RTOS至關(guān)重要
中興事件、實(shí)體清單、華為事件……從2018年到2020年,“缺芯”成了卡脖子的關(guān)鍵問題,近年來國產(chǎn)芯片愈發(fā)揚(yáng)眉吐氣。
不過十多年前的老話題“繞的過芯片,卻繞不過系統(tǒng)”還是要拿出來翻一翻的。華為在此前發(fā)布了“鴻蒙”,另外還在最近投入了2億元進(jìn)一步發(fā)展鴻蒙??梢?,即使國外擁有一些開源系統(tǒng)可使用,但國產(chǎn)自主的系統(tǒng)仍然是必不可少的。
目前的操作系統(tǒng)市場(chǎng)一種是收費(fèi)的RTOS,一種是下游廠商打造的開源RTOS,不過隨著市場(chǎng)的不斷變換一些收費(fèi)RTOS也逐漸轉(zhuǎn)入免費(fèi)。
在嵌入式領(lǐng)域,雖然不乏VxWorks、μCOS或FreeRTOS等優(yōu)秀的國外RTOS,不過開源免費(fèi)是一個(gè)偽命題,并沒有任何保證,可以確定它是否會(huì)出現(xiàn)在下一次類似“實(shí)體清單”的事件中。
國產(chǎn)的RTOS還是有很多的。就拿巨頭來說,2015年,華為發(fā)布了輕量級(jí)RTOS LiteOS;2017年,阿里發(fā)布了面向IOT的 AliOS 操作系統(tǒng)。另外,djyos是一款由長(zhǎng)園深瑞繼保自動(dòng)化有限公司主持開源操作系統(tǒng)嵌入式RTOS。
在此,不得不提到RT-Thread,作為一款擁有將近14年歷史的RTOS,目前來說擁有的知名度和用戶方面相對(duì)占有優(yōu)勢(shì)。
不過,華為、阿里的加入必然是強(qiáng)有力的競(jìng)爭(zhēng),雖然AliOS和LiteOS依舊處于系統(tǒng)的技術(shù)建設(shè)完善期,但不容小覷的便是其強(qiáng)大的背景支持。一款產(chǎn)品必須擁有自己的獨(dú)到優(yōu)勢(shì)才能在巨鱷的陰影下生存。
RT-Thread起源于工匠,而根據(jù)其創(chuàng)始人熊譜翔坦言,未來還會(huì)繼續(xù)堅(jiān)持工匠的精神做產(chǎn)品。目前來說,AliOS和LiteOS還是以自己產(chǎn)品主導(dǎo),針對(duì)開發(fā)者支持還是短板,因此面向開發(fā)者便是RT-Thread的生態(tài)建設(shè)上的優(yōu)勢(shì)。
而嵌入式工程師,在如今的這種情境下,掌握一款國產(chǎn)的RTOS也似乎是一個(gè)不可或缺的課題,RT-Thread是其中一個(gè)好選擇。程序員出身的RTOS
RT-Thread創(chuàng)始人熊譜翔被人愛稱為“熊大”,程序員出身的他讓這款RTOS更懂開發(fā)者的需求。
出生于廣西桂林的他,父母都是高中教師。自幼理科偏科的他,一不小心拿了一個(gè)桂林單科數(shù)學(xué)的狀元,考入了重慶郵電學(xué)院,這是通信行業(yè)的黃埔軍校西南分校。
(RT-Thread創(chuàng)始人熊譜翔)
極度偏科的人一般都是絕頂聰明的人,純理工科的他自然也陷入了代碼的世界。熊大與Linux的“親密接觸”可以說與RT-Thread的誕生有著必不可少的關(guān)聯(lián),正因Linux也是一款免費(fèi)開源的系統(tǒng)。
90年代,精通Linux的程序員鳳毛麟角,在沒有任何教程的情況下,熊大把Linux代碼讀了無數(shù)遍。而他也順利成為了BBS的大佬,西南程序員圈子的名人。
2000年大學(xué)畢業(yè)以后,先后加入貝爾阿爾卡特、華為、NEC和松下合資成立的宇夢(mèng)通信和美國半導(dǎo)體公司Marvell上海分公司,直至2005年辭職創(chuàng)業(yè)。
在技術(shù)社區(qū)交流過程中,熊大發(fā)現(xiàn)市面上缺少真正小尺寸、開源且符合Linux簡(jiǎn)約代碼風(fēng)格的嵌入式RTOS。
2005年,熊大便著手這個(gè)操作系統(tǒng)的編寫。2006年,順利發(fā)布了RTOS內(nèi)核,命名為RT-Thread V0.0.1,意為實(shí)時(shí)線程。
2011年RT-Thread發(fā)布V1.0.0,支持更多MCU芯片,構(gòu)建完整的生態(tài);2015年發(fā)布V2.0.0,新增輕量級(jí)Javascript引擎和大量組件;2017年,RT-Thread發(fā)布V3.0.0,新增更多的IoT組件,大舉進(jìn)軍物聯(lián)網(wǎng)市場(chǎng)。
“RTOS之王”的目標(biāo)
在Github 4.1K多顆星,6萬多開發(fā)者,累積裝機(jī)量超過4億臺(tái)的成績(jī),是RT-Thread在物聯(lián)網(wǎng)時(shí)代可以稱之為RTOS之王的證明。
與諸多RTOS諸如FreeRTOS,uC/OS主要區(qū)別之一是,它不僅僅是一個(gè)實(shí)時(shí)內(nèi)核,還具備豐富的中間層組件。
不僅支持市面所有主流編譯工具諸如GCC、Keil、IAR等;還支持所有標(biāo)準(zhǔn)接口諸如POSIX、CMSIS、C++應(yīng)用環(huán)境、Javascript執(zhí)行環(huán)境等;支持所有主流MCU架構(gòu),如ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V。并且值得注意的是,RT-Thread遵循Apache 2.0,實(shí)時(shí)操作系統(tǒng)內(nèi)核及所有開源組件可以免費(fèi)在商業(yè)產(chǎn)品中使用,不需要公布應(yīng)用程序源碼,沒有潛在商業(yè)風(fēng)險(xiǎn)。
熊大曾經(jīng)表示,RT-Thread的目標(biāo)是成為國內(nèi)最主流、物聯(lián)網(wǎng)終端首選、聯(lián)網(wǎng)裝機(jī)量數(shù)十億臺(tái)的IoT OS,成為物聯(lián)網(wǎng)產(chǎn)業(yè)的基石,讓物聯(lián)網(wǎng)終端的開發(fā)變得簡(jiǎn)單、快速,芯片的價(jià)值得到最大化發(fā)揮。
一場(chǎng)始料未及的新冠,讓這個(gè)春節(jié)按下了暫停鍵,RT-Thread作為有擔(dān)當(dāng)?shù)钠髽I(yè),幾經(jīng)輾轉(zhuǎn)后,在疫情最關(guān)鍵的幾天采購了一批防護(hù)服為前線的“他們”也做了幫助。