提到操作系統(tǒng),第一時(shí)間我們就會想到運(yùn)行在電腦上的Windows,想起運(yùn)行在手機(jī)上的安卓。這些系統(tǒng)直接運(yùn)行在“裸機(jī)”設(shè)備的最低層,搭建起其他軟件、應(yīng)用運(yùn)行的環(huán)境與基礎(chǔ)。操作系統(tǒng)的興起、完善,促成了軟件與應(yīng)用的興起,鑄就了輝煌的PC時(shí)代與移動互聯(lián)網(wǎng)時(shí)代。
談到物聯(lián)網(wǎng),最大的問題之一就在于溝通,不同設(shè)備、不同標(biāo)準(zhǔn)之間的溝通、軟件與硬件的溝通。如何解決這種 “溝通”問題,操作系統(tǒng)變得尤為重要。物聯(lián)網(wǎng)操作系統(tǒng)調(diào)度“物體”本身,對“物體”的調(diào)度過程通過層層分發(fā)、層層下達(dá),通過調(diào)度云、邊、端,不同層級中不同設(shè)備的計(jì)算資源而實(shí)現(xiàn)。因此,物聯(lián)網(wǎng)中的操作系統(tǒng)涉及到芯片層、終端層、邊緣層、云端層等多個(gè)層面
當(dāng)前很多物聯(lián)網(wǎng)設(shè)備已經(jīng)從傳統(tǒng)意義上的“啞”設(shè)備成功轉(zhuǎn)型為智能化設(shè)備。那么一個(gè)設(shè)備從“啞”到智能化,必須面對兩個(gè)問題:資源管理、設(shè)備的互聯(lián)互通。而在這物聯(lián)網(wǎng)操作系統(tǒng)百家爭鳴,百花齊放的時(shí)代,華為LiteOS物聯(lián)網(wǎng)操作系統(tǒng)要如何破浪前進(jìn)?
LiteOS資源管理:麻雀雖小,五臟俱全
說到物聯(lián)網(wǎng)操作系統(tǒng),不得不提物聯(lián)網(wǎng)的內(nèi)核,一個(gè)內(nèi)核要具備尺寸伸縮性強(qiáng)、實(shí)時(shí)性必須足夠強(qiáng)、架構(gòu)可擴(kuò)展性強(qiáng)、足夠安全和可靠、低功耗節(jié)能省電等優(yōu)良特質(zhì)。比如,一個(gè)極端的情況下,內(nèi)核尺寸必須維持在10K以內(nèi),以支撐內(nèi)存和CPU性能都很受限的傳感器。這要求內(nèi)核需具備完善的任務(wù)調(diào)度、內(nèi)存管理、本地存儲、復(fù)雜的網(wǎng)絡(luò)協(xié)議等功能,以滿足高配置的智能物聯(lián)網(wǎng)終端的要求。
LiteOS內(nèi)核的資源管理,可分為四個(gè)部分:時(shí)間管理、存儲管理、硬件管理、同步通信資源。在LiteOS的最底層,實(shí)現(xiàn)的是對各類硬件的一個(gè)總體抽象,這主要是解決LiteOS和CPU體系的耦合。對于操作系統(tǒng)核心而言,和CPU的耦合主要在于任務(wù)的調(diào)度、異常的處理等,這和每個(gè)CPU體系架構(gòu)強(qiáng)相關(guān)。LiteOS的任務(wù)調(diào)度,正是基于CPU架構(gòu)而非單個(gè)特定的CPU,目前已經(jīng)支持ARMV6M、ARMV7M、RISIC-V等,這就意味著,LiteOS可以在不同的MCU廠商的產(chǎn)品上做到無縫移植,降低設(shè)備廠商切換硬件的難度。
一般的內(nèi)存管理都是采用的雙鏈表模式,按需分配。那么這個(gè)時(shí)候就會帶來一個(gè)問題,如何管理這個(gè)雙向鏈表呢?普通的雙向鏈表,對查找比較麻煩,有序的雙向鏈表,對排序的時(shí)間存在不確定性,這會給開發(fā)者帶來困擾。為了降低開發(fā)者對時(shí)間搜索的不確定性,LiteOS采用了TLSF以及基于紅黑樹的二叉搜索樹,這兩個(gè)方法將會大大的降低我們搜索的復(fù)雜度。當(dāng)內(nèi)存經(jīng)過多次的申請和釋放之后,組織空閑內(nèi)存的線性鏈表可能很長,在這種情況下如果去搜索一個(gè)匹配的內(nèi)存可能很費(fèi)勁,因?yàn)槟悴恢雷詈线m的內(nèi)存在什么位置(有可能在鏈表尾部)。而采用TLSF的方式,通過計(jì)算MAP的位置,可以一次命中,這樣就讓開發(fā)者查找一塊空閑的內(nèi)存時(shí)間變得更加確定。
同時(shí),LiteOS的中斷管理、驅(qū)動等功能,還給傳統(tǒng)裸機(jī)開發(fā)者帶來更好的開發(fā)體驗(yàn)。例如中斷管理,我們知道在MCU上,串口的數(shù)量比較多,每個(gè)串口都可能分配一個(gè)中斷號,如果是裸機(jī)開發(fā)者,就不得不寫很多中斷服務(wù)函數(shù)掛載到中斷表中。而LiteOS的中斷管理,開發(fā)者可以通過采用注冊的方式,傳遞相同的服務(wù)函數(shù),只需參數(shù)不同即可,這就意味著開發(fā)者可以實(shí)現(xiàn)串口中斷函數(shù)的最大復(fù)用,同樣的道理,還可以應(yīng)用到驅(qū)動程序中。
LiteOS互聯(lián)互通:有趣的靈魂千里挑一,做開發(fā)者鐘愛的皮囊——提供快速集成和統(tǒng)一的協(xié)議
LiteOS的資源管理,是為滿足開發(fā)者對資源管理的訴求,解決物聯(lián)網(wǎng)硬件上的碎片化而生。就拿TCPIP通信來說,實(shí)現(xiàn)方式就千奇百怪,有使用蜂窩模組自帶的SOCKET、有使用PPP撥號、有使用WIIF模組、有使用LWIP這樣的軟件協(xié)議棧的。不是說這樣不好,畢竟它們都是有趣的靈魂;但是對于開發(fā)者而言,會帶來一個(gè)問題——為了保證兼容性,他們不得不基于TCPIP進(jìn)行開發(fā),從而導(dǎo)致代碼出現(xiàn)各種各樣的宏開關(guān),到最后這種代碼幾乎沒有辦法維護(hù)。
為了解決開發(fā)者委曲求全的適配各種方式帶來毀滅性的維護(hù)問題,LiteOS提出組件功能標(biāo)準(zhǔn)化。不論你是WIFI模組還是LTE模組,還是其他的軟件棧,只要采用統(tǒng)一的標(biāo)準(zhǔn)API之后,各種各樣形態(tài)的組件,就像是菜單上的一個(gè)選項(xiàng),只需要打勾選擇想要即可。LiteOS操作系統(tǒng)從內(nèi)核到互聯(lián)網(wǎng)協(xié)議的抽象層框架,構(gòu)建統(tǒng)一的API標(biāo)準(zhǔn)?;谶@個(gè)標(biāo)準(zhǔn),開發(fā)者可以快速將協(xié)議或者其他組件插入到框架,幫助開發(fā)者復(fù)用已有能力,也加快了集成的效率。
LiteOS一鍵上云:采用積木式的組件和組裝模式,更靈活輕便
在華為云IoT的云管端戰(zhàn)略中,LiteOS承擔(dān)著云服務(wù)落地的關(guān)鍵角色,因此如何更好的、更合理的引導(dǎo)終端設(shè)備快速的上云是LiteOS的主要目標(biāo)。整體看,LiteOS可以分作兩部分:
l LiteOS的內(nèi)核,這部分主要是用來管理端側(cè)資源,讓端側(cè)設(shè)備更好、更方便的使用端側(cè)的各種硬件資源;
l LiteOS的互聯(lián)互通性,將云服務(wù)做到協(xié)議無關(guān)性,更方便的在各種傳統(tǒng)設(shè)備上集成。
原則上,LiteOS的各個(gè)模塊在開發(fā)設(shè)計(jì)過程中,可以做到模塊解耦、可裁剪、可配置。從這可以看出LiteOS在開發(fā)整體上,可以說是屬于 “積木型開發(fā)”,開發(fā)者像搭建積木一樣簡單來使用,可以按照自己的實(shí)際應(yīng)用場景,選擇不同的解決方案,從而解決物聯(lián)網(wǎng)碎片化的問題。
但用原始的小積木搭建一個(gè)滿意的作品,也要有設(shè)計(jì)的一個(gè)過程,包括選擇何種協(xié)議,使用哪個(gè)組件。事實(shí)上,物聯(lián)網(wǎng)設(shè)備存在一個(gè)“老大難”的問題——存儲資源、計(jì)算資源有限。例如,TLS除了要占用大幾十KB的ROM和 RAM 以外,還非常消耗我們的計(jì)算資源;在一個(gè)200M主頻的MCU在ECHDA模式下,握手協(xié)議過程都需要接近10秒鐘,對于那些低速設(shè)備可能會更長。
在這種情況下,如果告訴你,有個(gè)模組,通過簡單的AT指令就可以直接和華為云IoT互通,你會不會很驚喜呢?華為LiteOS將互聯(lián)互通功能集成到了模組內(nèi)部,豐富自運(yùn)算資源、存儲資源。設(shè)備廠家通過簡單的AT指令就可以調(diào)用LiteOS的互聯(lián)API,省卻了移植、配置等煩惱,再也不用考慮和云對接的底層流程和詳細(xì)細(xì)節(jié)。
最新文章
- 終端節(jié)點(diǎn)管理_如何使用VPC終端節(jié)點(diǎn)_VPC終端節(jié)點(diǎn)應(yīng)用場景
- VPCEP終端節(jié)點(diǎn)產(chǎn)品功能_VPC終端節(jié)點(diǎn)免費(fèi)嗎_VPC終端節(jié)點(diǎn)優(yōu)勢
- 企業(yè)門戶多終端獨(dú)立版-什么是多終端獨(dú)立版-企業(yè)門戶獨(dú)立版
- VPC終端節(jié)點(diǎn)的作用是什么_VPC終端節(jié)點(diǎn)應(yīng)用場景_華為云VPC終端節(jié)點(diǎn)
- 企業(yè)門戶多終端自適應(yīng)版-什么是多終端自適應(yīng)版-企業(yè)門戶自適應(yīng)版
- 好用的VPCEP_終端節(jié)點(diǎn)服務(wù)管理_VPC終端節(jié)點(diǎn)是什么