利用物聯(lián)網(wǎng)操作系統(tǒng)Zephyr實現(xiàn)“連續(xù)集成”開源軟件的開發(fā)
物聯(lián)網(wǎng)操作系統(tǒng)是配置在物聯(lián)網(wǎng)硬件設(shè)備上的第一層軟件,是對物聯(lián)網(wǎng)硬件系統(tǒng)的首次擴充。
Zephyr作為一款專門為內(nèi)存受限的物聯(lián)網(wǎng)設(shè)備而推出的開源實時操作系統(tǒng),其一大特點就是具有高度開源性。Zephyr操作系統(tǒng)如何進(jìn)行“連續(xù)集成”軟件開發(fā)?不妨通過一個實例演示來看一看。
這個演示實例是Linaro和Zephyr操作系統(tǒng)基于單片機進(jìn)行的。它是一個高度開放、高度透明的開發(fā)過程,開發(fā)者在本地只需要運行一個git工具,其余的集成過程(包括代碼檢查,測試)完全在云端解決。我們接下來將進(jìn)行實例演示過程。
Zephyr 云工作流程和CI
如上圖所示,這個演示實例是基于Zephyr操作系統(tǒng)進(jìn)行的,它向用戶展示(軟件開發(fā)過程)在源代碼,工具使用及軟件配置方面所能達(dá)到的開放程度;并且展示軟件協(xié)作在深奧的嵌入式RTOS代碼工程中所能達(dá)到的透明程度。
這個實例從一些工業(yè)標(biāo)準(zhǔn)開源工具開始,它們可以幫助用戶實現(xiàn)協(xié)作處理。如下:
- Git 源代碼管理和協(xié)作處理;
- 基于標(biāo)準(zhǔn)C語言及Make工具的構(gòu)建設(shè)施;
- 將qemu作為虛擬測試平臺;
此外,還要添加一些Linaro已有的和新推出的內(nèi)容到社區(qū)中,如下:
- Linaro的開源測試基礎(chǔ)-LAVA;
- 連續(xù)集成工具,此前表現(xiàn)在Linux Kernelci基礎(chǔ)設(shè)施上;
- 基于物聯(lián)網(wǎng)Editon Cortex-M MCU的開發(fā)板;
- LITE團(tuán)隊在平臺與引導(dǎo)程序方面的創(chuàng)新支持;
基于以上因素,該實例演示了一個“連續(xù)集成”循環(huán)測試過程,測試過程既可使用遠(yuǎn)程虛擬目標(biāo)平臺,也可使用本地真實硬件平臺IoT-edition Cortex-M4開發(fā)板。
本次測試的目標(biāo)是要展示開源操作系統(tǒng)Zephyr,展示它如何通過最具有實踐性的開源開發(fā)工具執(zhí)行目標(biāo)工程,以此對“連續(xù)集成”環(huán)境加以推廣。
從上圖可以看到,在演示中,我們對Zephyr工程源代碼做了修改并提交至https://github.com/linaro/zephyr。在此過程中,我在本地只需用到git工具。首先,我對git本地代碼倉中的代碼進(jìn)行修改,然后推送這些修改(git push)。注意我是把修改推送至我們的連續(xù)集成Zephyr代碼倉。git push命令會開啟整個測試過程,包括遠(yuǎn)程構(gòu)建超過100個測試應(yīng)用程序,在虛擬設(shè)備Qemu上執(zhí)行這些程序,并實時給開發(fā)人員返回結(jié)果。
當(dāng)來自虛擬設(shè)備的測試結(jié)果被執(zhí)行后,關(guān)鍵目標(biāo)應(yīng)用隨后會被構(gòu)建并且通過云端部署到小型測試場地,程序會在多個真正的硬件平臺上實時進(jìn)行測試。
開發(fā)測試部署
另外,整個構(gòu)建和測試基礎(chǔ)設(shè)施在構(gòu)建過程中,出于可擴充性考慮,采用了容器與分發(fā)的設(shè)計模式。甚至,在ELC展示的本地測試現(xiàn)場,也在筆記本電腦上運行了一個負(fù)責(zé)測試分發(fā)的容器實例。整個測試過程是完全仿真的實時硬件測試。
關(guān)于Zephyr項目
Zephyr 項目是一款小型且可擴展的實時操作系統(tǒng),尤其適用于資源受限的系統(tǒng),可支持多種架構(gòu);該系統(tǒng)高度開源,對于開發(fā)人員社區(qū)完全開放,開發(fā)人員可根據(jù)需要對該 系統(tǒng)進(jìn)行二次開發(fā),以支持最新硬件、工具和設(shè)備驅(qū)動程序;該系統(tǒng)高度模塊化平臺,可輕松集成任何架構(gòu)的第三方庫和嵌入式設(shè)備。
關(guān)于Linaro
Linaro是一個由成員資助組建的非盈利組織,旨在整合并優(yōu)化ARM架構(gòu)的開放源Linux軟件和工具。該組織采用多家公司聯(lián)合投資一個軟件工程團(tuán)隊的商業(yè)模式,共同在透明的合作環(huán)境中開發(fā)核心開放源軟件。
Linaro是一個以團(tuán)隊為中心的組織,不僅采用開放源,還組織成員在無差異層面上展開有效協(xié)作、分享并進(jìn)行本質(zhì)創(chuàng)新,從而為行業(yè)同仁們提供差異化附加資源。Linaro成為對最新Linux核心程序3.0到3.7貢獻(xiàn)最大的公司之一,這說明Linaro的協(xié)作方法確實有效。