混合微內(nèi)核OS的出現(xiàn),瞄準(zhǔn)哪些物聯(lián)網(wǎng)應(yīng)用痛點?
物聯(lián)網(wǎng)設(shè)備的類型成千上萬,然而其中絕大多數(shù)是采用MCU主控的智能邊緣。這種設(shè)備上同樣需要搭載合適的操作系統(tǒng),與PC和手機等設(shè)備不同,這種設(shè)備上運行的操作系統(tǒng)必須將實時性放在首位,也就是我們常說的RTOS(Real Time Opera System:實時操作系統(tǒng))。
宏內(nèi)核和微內(nèi)核之外的第三種選擇
通常來講操作系統(tǒng)分為宏內(nèi)核和微內(nèi)核兩種不同的架構(gòu),如下圖所示,操作系統(tǒng)中分為了用戶域和核心域兩個地址空間,微內(nèi)核架構(gòu)僅僅保留了最為基礎(chǔ)的內(nèi)核進(jìn)程管理和內(nèi)存管理服務(wù);宏內(nèi)核架構(gòu)的核心域中運行的應(yīng)用比微內(nèi)核架構(gòu)的多了系統(tǒng)應(yīng)用程序、通信接口管理等等。
基于兩種這種不同的設(shè)計理念,也就造就了宏內(nèi)核與微內(nèi)核兩種截然不同的特性表現(xiàn):微內(nèi)核非常易于拓展,添加任何新系統(tǒng)服務(wù),直接將其分配到新的用戶地址空間即可,內(nèi)核空間不需要任何修改;但由于用戶域與核心域之間通過信息傳遞通信,因此這些系統(tǒng)應(yīng)用服務(wù)的速度不如宏內(nèi)核中直接通過系統(tǒng)調(diào)用實現(xiàn)的更快;但同樣的因為都在同一個核心域中執(zhí)行這些應(yīng)用服務(wù),一旦其中一個失敗,整個系統(tǒng)就會崩潰,微內(nèi)核卻可以做到某一應(yīng)用崩潰卻不影響整體的穩(wěn)定運行。
微內(nèi)核架構(gòu) | 宏內(nèi)核架構(gòu) | |
---|---|---|
尺寸 | 較小 | 更大 |
系統(tǒng)服務(wù)執(zhí)行速度 | 較慢 | 較快 |
可拓展性 | 易于拓展 | 難以拓展 |
安全性 | 服務(wù)崩潰會影響到微內(nèi)核工作 | 服務(wù)崩潰則整個系統(tǒng)都將會崩潰 |
代碼 | 代碼數(shù)量較多 | 代碼數(shù)量較少 |
主流物聯(lián)網(wǎng)終端的OS最優(yōu)解
從最近幾年MCU廠商的新品發(fā)布中,我們不難看出,帶圖形界面、計算能力增強、無線功能加成等已經(jīng)逐漸成為趨勢,而且MPU的功耗和價格也是日趨親民化,硬件的演進(jìn)為產(chǎn)業(yè)升級打下了良好基礎(chǔ)?,F(xiàn)有的操作系統(tǒng)面臨著新的挑戰(zhàn),一方面是需要迎合這些更加智能化的需求,另一方面還要保證實時性和資源的合理配置。
如:網(wǎng)關(guān)的多種協(xié)議間的格式轉(zhuǎn)換、安防需要快速啟動、高端處理器的由于帶MMU功能復(fù)雜,Linux越來越龐大,傳統(tǒng)的IoT OS應(yīng)用與內(nèi)核編譯在一起后維護(hù)代價大,容易帶來安全性問題。業(yè)界需要一款更小、更快、更安全、可維護(hù)性更好的軟件開發(fā)平臺,RT-Thread Smart微內(nèi)核操作系統(tǒng)應(yīng)運而生!
RT-Thread Smart 定位于成為一個專業(yè)的面向?qū)崟r應(yīng)用場合的高性能混合微內(nèi)核操作系統(tǒng)。填補傳統(tǒng) RTOS 和大型操作系統(tǒng) Linux 之間的空白,在實時性、成本、安全性、啟動速度等方面取得最佳的平衡。
RT-Thread Smart的用戶態(tài)和內(nèi)核態(tài)之間通過共用同一個IPC channel來實現(xiàn)內(nèi)存的共享,內(nèi)核實現(xiàn)了盡可能的輕量化,大小僅為500kb;用戶態(tài)的系統(tǒng)服務(wù)支持可拆卸和可重啟,每個應(yīng)用都是一個獨立的elf程序,具備獨立地址空間,相互之間保證內(nèi)存隔離。不同的進(jìn)程之間通過消息句柄來進(jìn)行數(shù)據(jù)傳輸;進(jìn)程和進(jìn)程地址同時存在于共享內(nèi)存空間內(nèi),這樣減少了數(shù)據(jù)復(fù)制的工作。據(jù)熊譜翔先生現(xiàn)場分享,用戶在編譯的時候可以自己決定哪些服務(wù)運行在用戶態(tài)、哪些運行在內(nèi)核態(tài)。早期的Linux中用戶態(tài)和內(nèi)核態(tài)都不能相互搶占,而在RT-Thread Smart中支持搶占式調(diào)度的方式。
資源大小方面進(jìn)行對比:RT-Thread Smart的內(nèi)核504kB,壓縮后 217kB, 根文件系統(tǒng)127kB,內(nèi)存占用1.9MB;Linux的裁剪版壓縮后內(nèi)核3.57MB, 根文件系統(tǒng)5MB ,內(nèi)存占用17.4MB。
啟動時間方面進(jìn)行對比:宏內(nèi)核方式(RT-ThreadRT-Thread + 文件系統(tǒng) + 網(wǎng)絡(luò)協(xié)議棧 + 多媒體)的 啟動時間 3 – 5秒;Linux系統(tǒng):啟動時間近5 - 10秒;而RT-Thread Smart的啟動時間在500毫秒以內(nèi)。
在實際應(yīng)用中差距到底有多大呢?通過一個帶圖形界面的場景啟動速度比對,RT-Thread Smart的啟動僅需1.7秒,免除了Linux漫長的啟動等待時間。
生態(tài)賦予的生命力
站在開源社區(qū)與商業(yè)的十字路口,RT-Thread 團(tuán)隊選擇了社區(qū),RT-Thread創(chuàng)始人熊譜翔宣布RT-Thread Smart 依然開源如故,采用Apache License v2.0,獲得現(xiàn)場熱烈掌聲!做操作系統(tǒng)最重要的就是生態(tài),而RT-Thread在這一方面做到了世界上較為領(lǐng)先的水平。不論是用戶規(guī)模,還是社區(qū)的活躍度,包括各種用戶貢獻(xiàn)的組件和軟件包的數(shù)量以及質(zhì)量,均達(dá)到了業(yè)界領(lǐng)先 的水準(zhǔn)。
熊譜翔先生認(rèn)為,從開源的角度來讓更多合作伙伴/用戶來認(rèn)可RT-Thread是非常重要的,生態(tài)對于OS來講是根本。RT-Thread在生態(tài)維護(hù)方面非常用心,一直確??梢越邮盏娇蛻簟⒂脩?、芯片廠商等多方面的不同的聲音,從這些生態(tài)中發(fā)出的聲音中,來挖掘真正的需求點,然后在這些需求點上去進(jìn)行創(chuàng)新。這些創(chuàng)新的點經(jīng)過團(tuán)隊孵化出一些成果之后,繼續(xù)拿到社區(qū)上去進(jìn)行嘗試和探索,拿到反饋來進(jìn)行迭代。這就是目前RT-Thread所實現(xiàn)的一種與生態(tài)同棲共生的模式。
據(jù)悉,大約在今年10月份用戶有望在開源代碼托管平臺上免費下載RT-Thread Smart。