付斌|作者
RTOS與Linux的物聯(lián)網(wǎng)設(shè)備操作系統(tǒng)之爭(zhēng)已經(jīng)持續(xù)了很多年。Linux以其強(qiáng)大的計(jì)算能力和豐富的軟件生態(tài),在需要復(fù)雜處理和軟件支持的物聯(lián)網(wǎng)設(shè)備上占據(jù)一席之地;RTOS憑借實(shí)時(shí)響應(yīng)和資源節(jié)約的特性,在對(duì)實(shí)時(shí)性和資源占用有嚴(yán)格要求的場(chǎng)景中獨(dú)領(lǐng)風(fēng)騷。
如果時(shí)間倒回五年前,那時(shí)候IoT徹底火了,但大型科技公司在面對(duì)RTOS和Linux的抉擇中,對(duì)RTOS不感興趣,更加青睞Linux,并把它推成主流。不過(guò),在最近一段時(shí)間,風(fēng)評(píng)反轉(zhuǎn)了,實(shí)時(shí)操作系統(tǒng) (RTOS)在嵌入式IoT領(lǐng)域開(kāi)始重新復(fù)興。
在開(kāi)源計(jì)劃、大型科技公司支持、對(duì)低延遲和資源受限應(yīng)用程序不斷增長(zhǎng)的需求的推動(dòng)下,RTOS 正在迅速縮小與Linux的差距。很多開(kāi)發(fā)人員發(fā)現(xiàn),在選擇操作系統(tǒng)時(shí),規(guī)模并非越大越好,隨著更多傳感器在時(shí)間關(guān)鍵型的應(yīng)用程序中上線,越來(lái)越多人發(fā)現(xiàn)RTOS有著改變邊緣世界的力量。
嵌入式的新變革
全面而精簡(jiǎn),是RTOS被人注視的最大原因,畢竟誰(shuí)又不喜歡“小而美”。并且,這幾年,隨著RTOS在保持實(shí)時(shí)響應(yīng)性的同時(shí),其在可用性、安全性和可擴(kuò)展性等方面也取得進(jìn)展。
目前,有將近三分之二的嵌入式系統(tǒng)都在使用RTOS,而RTOS迄今已經(jīng)擁有了100多種不同的商業(yè)和開(kāi)源產(chǎn)品,比如VxWorks、PX5、EmbOS、SafeRTOS等商業(yè)RTOS,再比如Eclipse ThreadX、RT-Thread、mbed OS、UCOS-II、NuttX、eCos、Zephyr等開(kāi)源RTOS。
對(duì)于未來(lái)幾年的市場(chǎng),很多業(yè)內(nèi)人士都很樂(lè)觀嗎,并表示RTOS在未來(lái)三年內(nèi)每年或可增長(zhǎng)10%。之所以能夠有這種市場(chǎng)表現(xiàn)的原因在于大廠不斷布局RTOS,幫助提升了RTOS開(kāi)發(fā)環(huán)境,提供了增強(qiáng)的綜合工具、強(qiáng)大的社區(qū)支持等,持續(xù)促進(jìn)市場(chǎng)增長(zhǎng)。
首先,是微軟。2019年4月18日,ThreadX這一有名的RTOS被微軟看中,其所有者Express Logic 被整體收購(gòu)。從那時(shí)起,它的名字也被改為Azure RTOS。去年11月,微軟宣布將Azure RTOS托管至Eclipse基金會(huì),更名為Eclipse ThreadX,并過(guò)渡到開(kāi)源模式。
其次,是亞馬遜。2017年 FreeRTOS由亞馬遜收購(gòu),并成為亞馬遜Web Services(AWS)的一部分,進(jìn)一步推動(dòng)了其在物聯(lián)網(wǎng)(IoT)領(lǐng)域的應(yīng)用。同時(shí),亞馬遜宣布在FreeRTOS_V10內(nèi)核基礎(chǔ)上建立MIT licensed的Amazon FreeRTOS操作系統(tǒng)”。
最后,是MCU廠商。比如,樂(lè)鑫將FreeRTOS作為組件集成到ESP-IDF中,因?yàn)樵鶩reeRTOS是單核RTOS,而ESP32是雙核的,因此樂(lè)鑫為了支持多核,將FreeRTOS 內(nèi)核移植到ESP芯片的所有可用架構(gòu)中;Linux基金會(huì)的Zephyr RTOS在Intel、NXP 和 Nordic等廠商的努力下,正在逐漸發(fā)展壯大,成為行業(yè)新主流;為嵌入式系統(tǒng)設(shè)計(jì)的lwIP(輕型IP)這樣的RTOS IP堆棧正變得越來(lái)越強(qiáng)大;MbedTLS這樣的加密庫(kù)現(xiàn)在可以與OpenSSL的功能相媲美,OpenSSL長(zhǎng)期以來(lái)一直是Linux系統(tǒng)的領(lǐng)導(dǎo)者。
RTOS和Linux的異同
RTOS和Linux都屬于嵌入式領(lǐng)域,二者的根本區(qū)別在于它們的設(shè)計(jì)理念。
RTOS追求的是輕量級(jí)和極致的實(shí)時(shí)性(Real-time),通常是專為實(shí)時(shí)應(yīng)用程序構(gòu)建的,優(yōu)先考慮任務(wù)執(zhí)行的確定性和可預(yù)測(cè)性,使其在醫(yī)療、核能或航空航天等關(guān)鍵任務(wù)行業(yè)中得到廣泛應(yīng)用。同時(shí),輕量化的設(shè)計(jì),使得其在資源受限的嵌入式系統(tǒng)中非常受歡。
所謂實(shí)時(shí)性指的是操作系統(tǒng)(OS)在有限的響應(yīng)時(shí)間內(nèi)提供所需服務(wù)級(jí)別的能力。在實(shí)時(shí)系統(tǒng)中,計(jì)算的正確性不僅取決于結(jié)果的邏輯正確性,還取決于它產(chǎn)生結(jié)果的時(shí)間。
與通用操作系統(tǒng)不同,RTOS側(cè)重于確定性響應(yīng)時(shí)間和對(duì)任務(wù)調(diào)度的精確控制。相比來(lái)說(shuō),RTOS擅長(zhǎng)管理任務(wù)優(yōu)先級(jí),允許關(guān)鍵任務(wù)優(yōu)先于對(duì)時(shí)間不太敏感的流程,在系統(tǒng)必須保證運(yùn)營(yíng)在特定時(shí)間范圍內(nèi)時(shí),這種優(yōu)先級(jí)至關(guān)重要。企業(yè)通常在任務(wù)關(guān)鍵型場(chǎng)景中使用RTOS,此外,它同樣適用于無(wú)法容忍任何形式系統(tǒng)故障的關(guān)鍵系統(tǒng)應(yīng)用程序中。
Linux則更為通用,支持多用戶和多任務(wù)處理,并提供了豐富的網(wǎng)絡(luò)功能和設(shè)備獨(dú)立性,也針對(duì)性地推出了實(shí)時(shí)Linux。不過(guò),畢竟Linux需要處理大量系統(tǒng)調(diào)度和其它任務(wù),實(shí)時(shí)性相對(duì)會(huì)差一些。
實(shí)時(shí)Linux的核心概念是“搶占”,也就是中斷當(dāng)前執(zhí)行線程,立即處理優(yōu)先級(jí)較高的事件。在沒(méi)有內(nèi)核搶占的情況下,在Linux中無(wú)法實(shí)現(xiàn)確定性響應(yīng)時(shí)間。
RTOS和實(shí)時(shí)Linux之間的選擇取決于系統(tǒng)特定延遲要求,以及對(duì)開(kāi)銷和資源效率的需求。雖然實(shí)時(shí)Linux為許多場(chǎng)景提供了強(qiáng)大的解決方案,但在某些關(guān)鍵的嵌入式系統(tǒng)中,專用 RTOS可能仍然更可取。如果項(xiàng)目需要在實(shí)時(shí)需求和運(yùn)行各種應(yīng)用程序的靈活性之間取得平衡,那么實(shí)時(shí)Linux將提供更通用的解決方案。
RTOS和Linux未來(lái)依然會(huì)共生
RTOS此時(shí)此刻的優(yōu)勢(shì)是明顯的。對(duì)于構(gòu)建時(shí)間敏感型應(yīng)用程序的開(kāi)發(fā)人員來(lái)說(shuō),RTOS的低延遲和可預(yù)測(cè)的實(shí)時(shí)任務(wù)執(zhí)行比通用操作系統(tǒng)具有明顯優(yōu)勢(shì)。此外,隨著復(fù)雜軟件堆棧中的安全漏洞不斷浮出水面,RTOS的精簡(jiǎn)架構(gòu)減少了攻擊面。由于應(yīng)用程序直接編譯到操作系統(tǒng)中,因此與動(dòng)態(tài)加載的程序相比,代碼注入的可能性大大降低。
更重要的是,開(kāi)發(fā)人員不再需要為了性能和安全性而犧牲可用性。從云到加密,RTOS解決方案正在迅速成熟,使開(kāi)發(fā)人員能夠構(gòu)建安全、響應(yīng)迅速且可擴(kuò)展的嵌入式系統(tǒng)。
不過(guò),要說(shuō)RTOS徹底取代Linux,那也是完全不可能的。
畢竟,實(shí)時(shí)不會(huì)帶來(lái)優(yōu)化的性能,而且Linux在復(fù)雜的高端嵌入式系統(tǒng)中無(wú)法被取代。
RTOS通常是專業(yè)且資源密集型的,與通用操作系統(tǒng)相比,功能有限。在需要超出實(shí)時(shí)約束的不同應(yīng)用程序的場(chǎng)景中,這可能是一個(gè)缺點(diǎn)。而且,現(xiàn)在實(shí)時(shí)Linux開(kāi)始集成一些補(bǔ)?。ū热鏤buntu的PREEMPT_RT補(bǔ)?。?,能夠有效地為大多數(shù)實(shí)際的低延遲、低抖動(dòng)工作負(fù)載提供服務(wù),同時(shí)實(shí)現(xiàn)均衡的解決方案,從而減少開(kāi)銷并保持響應(yīng)能力,最終減少維護(hù)成本,并使用有限的資源最大限度地提高。
總之,正是因?yàn)镽TOS和Linux非常互補(bǔ),開(kāi)發(fā)人員才有了更多選擇,能夠自由地選擇用什么系統(tǒng),對(duì)開(kāi)發(fā)者來(lái)說(shuō)才是一次真正的勝利。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2900文章
44061瀏覽量
370188 -
Linux
+關(guān)注
關(guān)注
87文章
11207瀏覽量
208712 -
RTOS
+關(guān)注
關(guān)注
21文章
809瀏覽量
119361
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論