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