By Toradex胡珊逢
Torizon?是?Toradex?面向行業(yè)應(yīng)用推出的一款基于?Linux?的全新的開源操作系統(tǒng)。其旨在簡(jiǎn)化嵌入式系統(tǒng)開發(fā)的難度搜囱,同時(shí)引入現(xiàn)代軟件開發(fā)泡嘴、維護(hù)理念甫恩,提供更加可靠且易于使用的互聯(lián)、在線功能酌予。Torizon?為嵌入式設(shè)備實(shí)現(xiàn)了一套嶄新的開發(fā)和使用方法磺箕。本文接下來將介紹?Torizon?的特色功能,以及相比于傳統(tǒng)的?Linux?系統(tǒng)在使用上的差異抛虫。
Torizon?由?TorizonCore OS和?Torizon Platform兩大部分組成松靡。?TorizonCore OS?是安裝在?Toradex?計(jì)算機(jī)模塊上的操作系統(tǒng)。?Torizon Platform?是?Toradex?維護(hù)的在線平臺(tái)莱褒,其能夠于?TorizonCore OS?建立網(wǎng)絡(luò)連接击困,為運(yùn)行 ?TorizonCore OS?的計(jì)算機(jī)模塊提供諸多在線功能涎劈,例如?OTA?更新广凸、集群設(shè)備管理、遠(yuǎn)程監(jiān)控等蛛枚。
TorizonCore OS?底層采用了?Linux谅海,支持常用的?Linux?命令工具。該系統(tǒng)一個(gè)顯著特點(diǎn)是支持容器?docker蹦浦。如下圖所示扭吁,TorizonCore?包含了?Linux?內(nèi)核、容器運(yùn)行環(huán)境盲镶、以及?OTA?等其他服務(wù)侥袜。用戶的應(yīng)用運(yùn)行在容器之中,而非直接訪問?Linux?文件系統(tǒng)溉贿。多個(gè)容器可以獨(dú)立運(yùn)行枫吧。
容器是一種標(biāo)準(zhǔn)化的軟件單元。一個(gè)容器集合了用戶應(yīng)用本身宇色,以及該應(yīng)用運(yùn)行所依賴的軟件如第三方庫(kù)文件九杂,配置文件和數(shù)據(jù)文件等。容器中的軟件獨(dú)立于操作系統(tǒng)宣蠕,可以視為操作系統(tǒng)的虛擬化例隆。因此容器可以非常容易地遷移到其他硬件平臺(tái)上。
對(duì)?Docker?容器的支持抢蚀,使得用戶可以利用?Docker?Hub?上豐富的現(xiàn)成容器镀层,例如?Qt、Debian皿曲、Ubuntu唱逢、.Net?羡微、Python?等。從而不再需要進(jìn)行復(fù)雜的交叉編譯惶我。同時(shí)容器技術(shù)具有非常高效的版本管理功能妈倔,用戶應(yīng)用的升級(jí)和回滾都可以從中受益。例如在傳統(tǒng)Linux BSP?上從Qt 5.12?升級(jí)到Qt5.15绸贡,用戶需要重新編譯Qt?源碼或者使用Yocto?Project?重構(gòu)整個(gè)?BSP盯蝴。而在TorizonCore OS?上下載一個(gè)Qt5.15?的容器即可。也無需擔(dān)心操作系統(tǒng)其他軟件的版本是否兼容听怕。?
由于采用了容器的方式運(yùn)行用戶軟件捧挺,TorizonCore OS?本身一個(gè)非常精簡(jiǎn)的最小功能系統(tǒng)。用戶不在其上面直接安裝軟件或者部署編譯好的應(yīng)用尿瞭。除了系統(tǒng)配置目錄如/etc?闽烙,TorizonCore OS?的大部分文件系統(tǒng)都不允許用戶直接修改,如/usr?声搁、/lib ?等目錄下的文件黑竞。
用戶需要?jiǎng)?chuàng)建一個(gè)容器,在容器安裝所需的軟件以及編譯好的應(yīng)用程序疏旨。然后啟動(dòng)容器很魂,由容器中的應(yīng)用程序?qū)崿F(xiàn)相關(guān)業(yè)務(wù)功能。?TorizonCore OS?的文件系統(tǒng)由?OSTree?管理檐涝。這是一種類似?git?工作模式的文件管理系統(tǒng)遏匆,由其實(shí)現(xiàn)對(duì)每個(gè)系統(tǒng)文件的添加、刪除谁榜、恢復(fù)等功能幅聘。同時(shí)?OSTree?也是實(shí)現(xiàn)?OTA?更新的基礎(chǔ)。
傳統(tǒng)的嵌入式設(shè)備在第一批設(shè)備出廠后窃植,通常軟件和硬件都不再會(huì)發(fā)生變化帝蒿。而對(duì)于現(xiàn)代軟件開發(fā)來說,借助CI(持續(xù)集成)撕瞧、CD(持續(xù)開發(fā))等模式陵叽,即使在設(shè)備交付后,仍能夠提供軟件更新丛版,修復(fù)未知的問題或者增加新功能巩掺,從而提升用戶使用體驗(yàn)。位于云端的?Torizon Platform?則為TorizonCore OS?提供OTA?更新页畦、集群設(shè)備管理和遠(yuǎn)程監(jiān)控功能胖替,更多實(shí)用的功能也會(huì)即將上線。
OTA?更新允許嵌入式設(shè)備遠(yuǎn)程更新其軟件,無需直接接觸設(shè)備就通過更新軟件修復(fù)問題独令、部署新業(yè)務(wù)或者打補(bǔ)丁端朵。具有?OTA?功能的設(shè)備通常對(duì)該功能具有較高的要求。更新出錯(cuò)燃箭、網(wǎng)絡(luò)中斷或者更新期間意外斷電都可能導(dǎo)致設(shè)備無法正常工作冲呢。所以?OTA?需要能夠在更新出錯(cuò)時(shí)能夠自動(dòng)回滾到最后一個(gè)可正常運(yùn)行的軟件狀態(tài)。Torizon OTA?采用高可靠的?Aktualizr?客戶端招狸,默認(rèn)已經(jīng)集成在TorizonCore OS?敬拓。憑借OSTree?實(shí)現(xiàn)了軟件版本回滾功能。相對(duì)于A/B?分區(qū)整體更新方式裙戏,?Torizon OTA?采用的是差分更新乘凸,即只更新發(fā)生更改的文件。有效得提高了更新速度累榜,并減少數(shù)據(jù)下載量营勤。這對(duì)使用4G/5G?上網(wǎng)的設(shè)備顯得尤為重要。
用戶可以將自己的?BSP?上傳到?Torizon Platform?對(duì)特定的設(shè)備進(jìn)行更新壹罚,也可以使用?Toradex?發(fā)布的?BSP?令設(shè)備保持最新的軟件狀態(tài)葛作。同時(shí)也單獨(dú)可以對(duì)設(shè)備上的容器進(jìn)行更新,而非整個(gè)?BSP渔嚷。
Torizon Platform?的集群設(shè)備管理能夠更加高效地對(duì)大量設(shè)備進(jìn)行維護(hù)进鸠。實(shí)現(xiàn)批量設(shè)備的重啟、安裝特定的更新等形病。
遠(yuǎn)程監(jiān)控能夠遠(yuǎn)程查看設(shè)備的運(yùn)行狀態(tài),例如?CPU負(fù)荷霞幅、內(nèi)存占用漠吻、網(wǎng)絡(luò)使用、正在運(yùn)行進(jìn)程和重要的異常日志等司恳。這些信息可以被發(fā)送到?Torizon Platform途乃,給用戶提供可視化監(jiān)控?cái)?shù)據(jù)。遠(yuǎn)程監(jiān)控基于?Fluent Bit?實(shí)現(xiàn)扔傅。這是一個(gè)開源的日志處理和轉(zhuǎn)發(fā)器耍共。用戶可以使用豐富的插件來采集更多的數(shù)據(jù),包括溫度猎塞、內(nèi)核日志等试读。除了監(jiān)控設(shè)備運(yùn)行狀態(tài)外,這些數(shù)據(jù)也有助于修復(fù)現(xiàn)場(chǎng)遇到的問題荠耽。
遠(yuǎn)程訪問是即將上線的另一個(gè)功能钩骇。這可以令您接管設(shè)備,簡(jiǎn)化客戶支持或者問題排查。
對(duì)于開發(fā)人員倘屹,Toradex?提供相應(yīng)的插件支持使用?Visual Studio/Visual Studio Code?開發(fā)?Torizon银亲。用戶可以自由選擇?Windows、Linux?或者?Mac?作為開發(fā)主機(jī)纽匙。Torizon?擴(kuò)展插件提供對(duì)?Visual Studio Code?完善的支持务蝠。擴(kuò)展插件可以便捷地管理容器和在設(shè)備上在線調(diào)試,使您可以通過很少的幾次點(diǎn)擊就完成從Visual Studio Code?完成應(yīng)用部署烛缔。甚至直接將開發(fā)好的容器上傳到Torizon Platform?進(jìn)行遠(yuǎn)程部署请梢。
Visual Studio/Visual Studio Code?中我們也提供包括?C/C++、Python力穗、.NET Core?甚至是Qt?開發(fā)的工程模板毅弧。?令用戶在嵌入式設(shè)備上方便地使用主流開發(fā)語言。
上面是對(duì)Torizon?系統(tǒng)從設(shè)備端TorizonCore?OS当窗,到云端的Torizon?Platform?以及開發(fā)工具的簡(jiǎn)要介紹够坐。如果您像更全面而深入的了解?Torizon?,請(qǐng)閱讀這里崖面。