國產物聯網操作系統「大閱兵」!

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

國產物聯網操作系統「大閱兵」! 科技 第1張

國產物聯網操作系統「大閱兵」! 科技 第2張

作者 | 馬超

責編 | 胡巍巍

出品 | 程序人生(ID:coder_life)

最近大陸自研的操作系統接連開源,先是MiniGui(Github地址:https://github.com/VincentWei/minigui),可能現在提起MiniGui大家已經比較陌生了。

不過對於筆者-曾經的CSDN嵌入式論壇版主而言,MiniGui是個如雷貫耳的名字,在十幾年前MiniGui和WINCE是各個各種開發板的標配,當時論壇上也有各種關於MiniGui移植及開發的帖子。

但是由於當時的嵌入式系統多用來製作手持式PDA,車載導航儀等設備,所以安卓出現後迅速占領了上述市場,MiniGUI等嵌入式操作系統逐漸沒落。

但是我們整理互聯網發展的脈絡可以看到,內容的不斷豐富與終端的不斷擴展是兩條主線,隨著網上數據量的持續爆炸性增長,今後新增的流量肯定主要來自於對於萬物互聯的紅利。

而與傳統互聯網內容+用戶的模式不同,物聯網則是場景+用戶的模式,誰能整合場景誰能笑到最後。所以之後的嵌入式系統又迎來了生命中的第二個春天。

國產物聯網操作系統「大閱兵」! 科技 第3張

巨頭們的布局

騰訊在三天前正式發布了其物聯網終端的操作系統TinyOS(Github地址:https://github.com/Tencent/TencentOS-tiny),其系統架構圖如下:

國產物聯網操作系統「大閱兵」! 科技 第4張

目前看其內核部分已經開發完成,並已經完全開源。雖然從其從tinyos內核的代碼來看(詳見https://blog.csdn.net/BEYONDMA/article/details/101355221),還是為物聯終端做了一定優化與裁減的,不過從下面的場景圖來看,騰訊其實醉翁之意不在酒,以操作系統為契機入局物聯網的相關鏈條已經規劃完整。

國產物聯網操作系統「大閱兵」! 科技 第5張

而且從比操作系統發布還早幾天就掛在淘寶上的開發板來看,更是說明騰訊對於旗下雲平台能夠整合物聯場景的巨大野心。

AliOS Thing3.0發布

雲棲大會第三天,阿里不出意外的拿出了AliOS Things 3.0(Github地址https://github.com/alibaba/AliOS-Things/tree/rel_3.0.0),與TencentOS Tiny一樣這款OS也是與阿里雲平台無縫對接的,而且它的內核還直接支持了自家的AI晶片,提前布局AI+物聯網。

由於AliOS Things已經開源兩年有餘,所以其開發者體驗相對較好,他們的IDE是基於VSCODE的,筆者已經下單他們的開發板了,後續親測OS後再發體驗。

可見巨頭的邏輯就是要整合物聯網時代的場景,他們的OS都是免費的,而且技術支持也強,不過巨頭就是要做物聯時代的ANDROID,最終一統天下。

國產物聯網操作系統「大閱兵」! 科技 第6張

老牌嵌入式操作系統的選擇

MiniGui做為已經存在了20多年的嵌入式操作系統,其架構圖如下:

國產物聯網操作系統「大閱兵」! 科技 第7張

從底至上,MiniGUI 由如下幾個模塊組成:

圖形抽象層(Graphics Abstraction Layer,GAL)

圖形抽象層將來自不同操作系統或設備的圖形接口進行抽象,為 MiniGUI 上層提供統一的圖形接口。在圖形抽象層內,包含有針對 Linux FB 設備、eCos LCD 設備等的軟件組成部分。

這些軟件組成部分通過調用底層設備的接口來做到具體的圖形抽象層操作,如打開設備、設置分辨率及顯示模式、關閉設備等。

我們將這些用於適配圖形抽象層接口的軟件組成部分稱為「引擎(engine)」,其概念和操作系統中的設備驅動程序類似。

輸入抽象層(Input Abstraction Layer,IAL)

和 GAL 類似,輸入抽象層將 MiniGUI 涉及的所有輸入設備,如鍵盤(keyboard)、小鍵盤(keypad)、滑鼠(mouse)、觸摸屏(touch screen)等抽象了出來,為上層提供一致的接口。要支持不同的鍵盤、觸摸屏或者滑鼠接口,則通過為 IAL 編寫不同的輸入引擎做到。

MiniGUI 通過 IAL 及其輸入引擎,提供對 Linux 控制台(鍵盤及滑鼠)、觸摸屏、遙控器、小鍵盤等輸入設備的支持。

圖形設備接口(Graphics Device Interfaces,GDI)

該模塊基於圖形抽象層為上層應用程序提供圖形相關的接口,如繪制曲線、輸出文本、填充矩形等等。圖形設備接口中含包含其他比較獨立的子模塊,如字體字符集(font and charset)支持、圖像(image)支持等。

消息處理模塊(Messaging Module)

該模塊在輸入抽象層基礎上,做到了 MiniGUI 的消息處理機制,為上層提供了完備的消息管理接口。

眾所周知,幾乎所有的GUI 系統本質上都是事件驅動的,系統自身的運行,以及GUI 應用程序的運行,都依賴於消息處理模塊。

多窗口處理模塊(Windowing Module)和控件(Control 或 Widget)

基於圖形設備接口和消息處理模塊,MiniGUI 做到了多窗口處理模塊。該模塊為上層應用程序提供了創建主窗口和控件的基本接口,並負責維護控件類。

控件類是用來做到控件代碼重用的重要概念,利用控件類(control class),我們可以創建屬於某個控件類的多個控件實例(instance),從而讓這些控件實例使用同一個控件類的代碼,這樣,我們就做到了類似 C++ 那樣的類和實例概念,從而可以最大程度上重復利用已有代碼,並提高軟件的可維護性。

MiniGUI 的控件模塊做到了常見的 GUI 控件,如靜態框、按鈕、編輯框、列表框、下拉框等等。

外觀支持(Look and Feel):

這個模塊是 MiniGUI V3.0 提供給上層應用程序的接口,可用來定制 MiniGUI 窗口、控件的繪制。

在 MiniGUI V3.0 之前的版本中,對主窗口和控件的定制能力,還沒有被抽離出來形成獨立的模塊,但我們仍然可以通過配置選項讓 MiniGUI 的主窗口、控件具有三種顯示風格,分別是:類似 PC 的三維風格(PC3D)、平板風格(FLAT)、流行風格(FASHION)。

在 MiniGUI 3.0 中,主窗口和控件的外觀可完全由應用程序自行定制,在創建主窗口或者控件時,指定外觀渲染器(renderer)的名稱,就可以讓主窗口或者控件具有各自不同的外觀。

可以看到MiniGUI從創立伊始就放棄了對於RTOS內核的編寫,直接基於linux等內核來做封裝。簡單聊兩句基於MiniGUI的圖形應用開發。

typedefstruct_MSG{HWNDhwnd;intmessage;WPARAMwParam;LPARAMlParam;#ifdef_LITE_VERSIONunsignedinttime;#elsestructtimevaltime;#endifPOINTpt;#ifndef_LITE_VERSIONvoid*pAdd;#endif}MSG;typedefMSG*PMSG;

可以看到其對於消息的定義幾乎與WINDOWS一致,其建立窗體等操作也幾乎與WINDOWS一樣。所以MiniGUI的設計有很大程序是為降低嵌入式系統圖形界面開發難度而產生的。

國產實時操作系統內核的先驅RTthread

提到咱們國產的loT操作系統RTthread也是一個無論如何也繞不過去的標誌,如果RTthread在06年初就發布了第一版,而且經過了這十幾年的上億台設備裝機的技術沉淀,RTthread的社區也已經儼然發展成為國內最強的嵌入式社區了,筆者剛剛到他們的論壇上逛了一圈,真的是強手如雲,大咖雲集。

具體內核相關知識後續會再發文介紹這里也就不再贅述了。而且最新的消息顯示MiniGUI開始支持RTthread的內核了,可見傳統的嵌入式操作系統廠商的策略是要盡量保持生態的多元化,抱團取暖。

HybridOS的開源計劃

最近MiniGUI的飛漫軟件又官宣了他們的HybridOS開源計劃,而根據目前的材料看HybridOS最大的看點是要用HTML來統一UI的開發,這與之前使用WIN32的設計來統一UI開發的邏輯如出一轍。

我們知道由於物聯網終端真的是不一而足,與手機終端完全不同,其不同終端的碎片化需求太多太複雜,比如,有的智能燈泡要藍牙即可,而智能空調可能就要有Wi-Fi了。

而我們金融行業要做智能合約可能對於終端的算力又有一定的要求,這樣碎片化的場景,由於Android硬件設備的要求門檻較高,就不太適合了, 而直接用Linux裁減,這對於人才的要求又太高。

所以與騰訊等巨頭整合全場景的目標不同,MiniGUI的背後其是保持生態多樣性的邏輯,他的目標是降低開發門檻,避免初創公司必須選擇鴻蒙或者TinyOS這種大廠的操作系統。

讓場景的提供方可以通過較低成本驗證自身的想法,而避免從一開始就走上巨頭們早已畫好的圓圈。

在他們的官宣當中對於其後續要發布的HybridOS物聯網操作系統有如目標:

1. HybridOS 的設備端系統基於 Linux 內核,充分利用 Linux 內核生態,降低各種驅動程序的開發難度以及各種協議棧的支持難度,從而降低開發成本。

2. 和基於 RTOS(實時操作系統)技術發展而來的物聯網操作系統(如RT-Thread、LiteOS)相比,HybridOS 更傾向於運行在具有更高硬件配置的智能物聯網設備上,而不是小型的單功能物聯網設備上,後者的硬件配置往往有限。

3. HybridOS 不僅僅運行在智能物聯網設備中,它同時還提供了針對雲端以及客戶端的標準框架和編程接口,為開發者提供了從設備到雲再到客戶端的完整軟件棧和協議棧。在未來,HybridOS 還計劃統一客戶端和設備端上的 App 開發接口。

4. HybridOS 將基於區塊鏈技術為物與物之間的通訊提供一個全新的做到方法。在 HybridOS定義的做到方法下,所有的數據都帶有不可篡改的數字簽名以及時間戳,而所有數據的傳輸和存儲都可加密。這將從根本上提高物聯網的安全性。

國產物聯網操作系統「大閱兵」! 科技 第8張

後記

我們可以看到巨頭的邏輯是要讓其它公司免費使用其OS上車,然後接入其loT雲平台成者直接收購無縫整合,敗者自生自滅,從而將自己立於不敗之地,而傳統的嵌入式公司邏輯則是降低OS的使用開發門檻,讓物聯網生態鏈上的企業能有自主選擇。也讓我們拭目以待,物聯網時代能否產生新的巨頭。

聲明:本文為 CSDN 博主馬超(ID:beyondma)的原創文章,版權歸作者所有。

掃描下方二維碼,下載 CSDNApp,查看博主精彩分享

國產物聯網操作系統「大閱兵」! 科技 第9張

熱 文推 薦

☞工程師因接外包坐牢 456 天!兩萬字揭露心酸經歷

☞年薪 170 萬阿里 P8 工程師征婚上熱搜,工程師婚戀觀大曝光!

☞中台的末路

☞對話行癲:CTO 最重要的是判斷未來!| 人物志

☞雲棲大會|當數據中台遇上智能 看中台「鼻祖」阿里巴巴又有什麼新花樣?

☞對比C++和Python,談談指針與引用

☞肖仰華:知識圖譜構建的三要素、三原則和九大策略 | AI ProCon 2019

☞以太坊交易量第一合約FAIRWIN被爆漏洞, 竟是因為這個接口被濫用……

☞厲害!接班馬雲的為何是張勇?

點擊閱讀原文,即刻閱讀《工程師大本營》。

國產物聯網操作系統「大閱兵」! 科技 第11張

你點的每個「在看」,我都認真當成了喜歡

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!