核心程式碼量不到一萬行、GitHub star超5k,國產開源物聯網作業系統TencentOS Tiny的探索與實踐

核心程式碼量不到一萬行、GitHub star超5k,國產開源物聯網作業系統TencentOS Tiny的探索與實踐

嘉賓 | 王佳、汪禮超

作者 | 凌敏

國內物聯網作業系統浪潮是從 2015 年前後掀起來的。在此之前,人們更習慣稱其為嵌入式作業系統,這也是物聯網作業系統的前身。當前,很多物聯網作業系統仍是基於傳統的嵌入式作業系統核心,與若干物聯網相關軟體棧組成終端軟體平臺。

隨著物聯網在智慧家居、汽車、可穿戴裝置等多個行業得到廣泛應用,物聯網作業系統的市場需求日益增長,國內也湧現出了多款受開發者歡迎的本土物聯網作業系統。

2019 年 9 月,騰訊物聯網作業系統 TencentOS Tiny 正式開源;2020 年 10 月,TencentOS Tiny 捐贈給中國開放原子開源基金會。截至 2022 年 11 月,TencentOS Tiny 在 GitHub 上的 star 數達 5。7k,fork 數量 1。5k,開發者規模達 5000 人。目前,TencentOS tiny 可支撐智慧城市、智慧水錶、智慧家居、智慧穿戴、車聯網等多種物聯網行業應用,能為物聯網終端廠家和終端裝置提供一站式軟體解決方案。

近日,InfoQ 採訪了騰訊作業系統研發負責人王佳、騰訊 TencentOS Tiny 專案負責人汪禮超,以期進一步瞭解 TencentOS Tiny 的發展歷程與技術實踐。

GitHub 地址:

https://github。com/OpenAtomFoundation/TencentOS-tiny

1

TencentOS Tiny 的探索與實踐

對騰訊而言,做物聯網作業系統是一件自然而然的事情。

依託雲、安全、AI 等技術創新,騰訊雲與智慧產業事業群(CSIG)一直致力於打造智慧產業升級方案,並形成了一條物聯網生態鏈。針對雲場景,騰訊早在 2010 年就打造了伺服器作業系統 TencentOS Server。隨著騰訊雲邊緣計算業務快速發展,騰訊在 2019 年也啟動了邊緣作業系統 TencentOS Edge 的研發。

物聯網作業系統 TencentOS Tiny 的研發工作則啟動於 2018 年。作為物聯網生態鏈底層重要的一環,物聯網作業系統在一定程度上能夠促進整個物聯網的生態,乃至由騰訊主導的產業物聯網的發展。對下,物聯網作業系統能完善物聯網端到端解決方案,實現終端裝置的互聯互通;對上,能為雲上海量資料平臺引流,將雲端的邊緣計算、大資料分析等能力與業務場景相結合,從而使終端裝置更加智慧化。

對於這款作業系統的定位,騰訊在一開始就想得很清楚:針對 MCU 晶片,打造 B 端生態鏈的前端作業系統,低功耗,低資源佔用。“與其他物聯網作業系統相比,我們有自己的特點,比如我們對騰訊雲的支援,以及針對物聯網嵌入式應用的特性。我們沒有把這款物聯網作業系統做得大而全,而是選擇做極致精簡的核心。”汪禮超對 InfoQ 說道。

2019 年 9 月,TencentOS Tiny 正式在 GitHub 上開源,釋出不到 1 周便登上了 GitHub 全網開源專案熱榜第二的位置。從 2019 年開始,TencentOS Tiny 每年都會舉辦多場開發者活動,並陸續成立了核心、AI 等多個 SIG 組,其他物聯網相關 SIG 組也在籌備當中。2020 年 10 月,騰訊將 TencentOS Tiny 捐贈給中國開放原子開源基金會。目前,TencentOS Tiny 支援硬體平臺數量 80+,與 STM32、NXP、瑞薩半導體、華大半導體、沁恆微電子、Nordic、兆易半導體、國民技術、TI MSP、瑞興恆方、廣和通等多家 MCU 和模組廠家達成合作,共同推進物聯網終端產品落地商用。

產品架構及技術特性

核心程式碼量不到一萬行、GitHub star超5k,國產開源物聯網作業系統TencentOS Tiny的探索與實踐

TencentOS Tiny 的產品架構從下往上依次是主流 MCU 晶片 / 模組、核心基礎核心及物聯網所需要的聯網元件。

底層,MCU 晶片 / 模組包括 STM32 和主流的蜂窩通訊模組,提供了驅動框架和外設框架,相容不同硬體,方便適配不同硬體平臺。頂層,提供了物聯網常用的功能元件,如檔案系統、KV 儲存和高階語言引擎框架等等;提供了方便使用者呼叫的業務層 API,業務層上也會提供常用的案例供客戶和開發者參考。此外,還內建了安全框架,為終端裝置的裝置唯一標識、通訊鏈路加密、金鑰安全儲存提供了保障,防止物聯網裝置被攻擊。

整體而言,TencentOS Tiny 具備三個特性:

核心精簡,低資源佔用

。在產品定位上,TencentOS Tiny 更聚焦在網際網路領域,為其提供非常精簡的作業系統。據介紹,TencentOS Tiny 核心整體程式碼量不超過一萬行,所有元件也都是可裁減可配置的,能夠實現超低資源的佔用,降低物聯網軟體使用成本。IDLE 任務下,最小資源佔用僅為 0。6KB RAM、1。8KB ROM。

高效管理框架,功耗低

。智慧城市等領域對功耗非常敏感,這也是市場痛點之一。TencentOS Tiny 能動態調整系統功耗,完整包含 MCU 和外圍裝置功耗管理,使用者可以根據業務場景選擇可參考的低功耗方案,最小休眠功耗可以達到 uA 級別,有效降低裝置耗電,延長裝置壽命。

軟體架構簡潔,可移植性良好

。TencentOS tiny 提供多種編譯器快速移植指南和移植工具,目前已經支援主流晶片和通訊模組,降低開發者使用門檻,有效提升開發效率。

作為底層基礎設施,作業系統普遍難以創造直接收益,更多是透過為行業提供解決方案來實現商業化。因此,對物聯網作業系統來說,如何打造自身的差異化競爭力是一個需要長期思考的問題。

在汪禮超看來,物聯網作業系統需要根據不同的應用場景發揮自身優勢,比如在金融場景,安全與否是關鍵;在能源場景,功耗是首要考慮的問題。根據不同的應用場景,形成對應的解決方案或打造上層軟體應用包,這些都是實現商業化的途徑。

目前,TencentOS Tiny 的應用場景主要包括 MCU 晶片 / 物聯網模組、物聯網終端裝置廠家以及物聯網解決方案:

支援主流的 MCU 晶片,如 STM32 NXP 等,支援主流通訊模組,如 ESP8266 Wi-Fi、LoraWAN 模組、NB-IoT 模組等;

提供完整的終端軟體棧,簡單易用的端雲 SDK 縮短裝置廠家的開發週期,進而節省終端產品開發成本;

提供一站式軟體解決方案,方便各種物聯網裝置快速接入騰訊雲,可支撐智慧城市、智慧水錶、智慧家居、智慧農業、智慧穿戴、車聯網等多種行業應用。

2

物聯網“碎片化”特性明顯,如何做好生態建設?

物聯網浪潮的興起讓“萬物互聯”成了可能。根據 IoT Analytics 的統計及預測,2020 年,全球共有 117 億臺物聯網裝置,聯網裝置數量第一次超過了非聯網裝置;預計到 2025 年,全球物聯網裝置連線數將超過 300 億。

與 iOS、Android、Windows 等作業系統不同,物聯網作業系統的終端形態差異巨大,不同的行業有著不同的消費終端。隨著行業進入高速發展期,物聯網以及物聯網終端的形態更加複雜,需求呈現多樣化,“碎片化”特徵也更加明顯。

“現在物聯網領域最大的問題就是‘碎片化嚴重’,作業系統作為物聯網生態的其中一環,不足以解決整個‘碎片化’難題。不過,我們非常看好萬物互聯這個方向,也有比較全面的佈局。”據王佳介紹,不同於桌面、伺服器作業系統提供通用解決方案,物聯網作業系統更具針對性,專注的領域更加垂直。

正因如此,要想做好物聯網作業系統生態,需要行業形成統一標準,達成技術共識。“有了統一的行業標準後,生態鏈上的不同角色能夠更好地合作互通,降低軟硬體適配成本。否則,物聯網作業系統生態將一直處於割裂狀態。”汪禮超表示,目前在智慧家居行業,這一願景已初步實現——行業在醞釀新的智慧家居協議,以解決“碎片化”難題。也許在未來,針對某個行業,會出現行業級別的物聯網作業系統“一統江湖”,但歸根結底,還是要由市場需求來驅動。

物聯網作業系統要想進一步發展,汪禮超認為,行業需要找到共用的一套融合作業系統,或是共建一個融合性的社群,共同推動行業達成共識,一起把蛋糕做大。就像在伺服器作業系統領域,大家普遍基於 Linux 核心構建作業系統,在技術棧上能夠實現統一。在物聯網作業系統領域,也可以形成統一的技術標準,包括硬體介面標準、核心介面標準、物聯網協議標準、應用介面標準等。“展望未來,無論是針對細分領域還是針對整個行業,物聯網作業系統都需要建立一套標準。這套標準也一定是大家共同建立和維護的。”

在汪禮超看來,除了要形成統一的物聯網作業系統行業標準,讓不同裝置之間可以基於一套標準實現互聯互通,在未來,這些趨勢 / 方向同樣值得關注:

微核心

。微核心的核心優勢是核心精簡,可剪裁,能更方便地部署到不同的硬體上。

RISC-V 架構

。作為一種新興的精簡指令集架構,RISC-V 最大的特點是開源免費,降低物聯網終端成本,促進物聯網作業系統與硬體的結合,加快軟體體系發展。

車聯網

。未來新能源汽車有可能徹底取代傳統燃油車,並且新能源汽車的智慧化程度更高,對軟體系統的要求也會更高,在物聯網協議、安全、人機互動等方面都將提出更高的要求,這也是物聯網作業系統在未來比較大的業務方向之一。

炒股開戶享福利,入金抽188元紅包,100%中獎!

開啟App看更多精彩內容