05.17 Zephyr計劃推出Zephyr LTS,引入諸多前沿的新功能

物聯網設備數量龐大,種類繁多,帶給設計者的挑戰就是如何高效地進行產品開發?我們看到許多公司在為小型連接設備和嵌入式控制器付費,而且投資不同的實時操作系統解決方案,這就導致成本增加,耗時變長。如果有一款物聯網操作系統可以打通硬件和軟件的連接通道,代碼將可以重複利用,開發者的設計難度將大大降低,效率大大提高。

Zephyr计划推出Zephyr LTS,引入诸多前沿的新功能

Zephyr操作系統成員達到9家公司

Zephyr就是專門針對資源受限設備而推出的物聯網實時操作系統,具有小型化、高度可配置、高度模塊化的特性,其超微內核可以運行在小到2KB的代碼空間上。為了滿足物聯網設備的多樣性,自推出以來Zephyr不斷進行升級完善,如今已經更新到v1.11版本,所支持的硬件架構不斷增加,同時還配合芯片供應商支持數量龐大的開發板,這樣可以為開發者提供更多的選擇餘地,避免工程師為了進行產品開發重新學習新的平臺增加時間成本。最新版本所支持的架構達到7種,包括:包括x86架構、ARC架構、ARM架構、NIOS II 架構、RISC V架構、Xtensa架構和Native POSIX架構,幾乎囊括了市面上的所有主流硬件架構。新版本所支持的開發板數量已經達到90種,提供的驅動程序達到247 種,貢獻者人數達到95人。

Zephyr计划推出Zephyr LTS,引入诸多前沿的新功能

Zephyr支持的架構、開發版、驅動程序、貢獻者數量列表

在靈活性方面,Zephyr的模塊化內核能夠被剝離到各個組件,如果需要甚至可以只要超微內核。它的調度器在一定時間內按照優先級運行單一任務。如果兩個優先級相同的任務在等待,調度器運行等待時間最長的那個。Zephyr操作系統給開發者提供了為指定線程分配優先級的能力,並在某些情況下給更高優先級的線程設置優先級的能力。

在連接方面,Zephyr支持完整的藍牙5.0、藍牙控制器、BLE Mesh、Thread,以及所有本地網絡堆棧。另外,Zephyr已經將流行的OpenThread執行集成到Zephyr中,以便用戶使用熟悉的Zephyr網絡API無縫地與Thread網絡交互,並可重複使用現有的802.15.4驅動程序。

由此可見,Zephyr 操作系統使用模塊化和可配置的基礎架構,在廣泛的平臺和架構中處理大量嵌入式示例,為用戶打造了一套完整的解決方案,而不僅是其中的一個因素,這樣可以降低成本,提高設計效率。因此,Zephyr是設計者的不二選擇。

Zephyr 2018年發展路線圖

今年年初,Zephyr也制定了本年度的發展路線圖。首先要擴展應用示例和應用領域:包括工業、安全、安防,深入嵌入式應用,高級配置和使用示例涉及SMP和AMP(預計在1.12版本推出);其次在生態系統方面,Zephyr計劃改進對Mac和Windows系統的支持,進行IDE集成,第三方工具加上追蹤、分析、調試,以及LLVM、商業編譯器(1.12版本);另外引入並支持Zephyr作為E2E平臺,包括Bootloader、設備固件升級、雲連接等,增加開發工具;在安全和安防方面,Zephyr將考慮開發模塊和處理的安全性,保護並加強內核(1.12版本),符合MISRA-C 2012標準;標準API和可移植性包括POSIX Layer(PSE54),BSD socket(1.12版本)。

計劃推出Zephyr LTS

在三月份舉辦的Open IoT Summit上, 來自Intel公司的Anas Nashif, Zephyr項目技術委員會主席,與大家分享了Zephyr LTS的計劃。(演講ppt 請參考https://schd.ws/hosted_files/elciotna18/2d/openiot_zephyr_lts_what_and_why.pdf )

什麼是Zephyr LTS?回顧以往的基於功能的版本發佈,它們更關注與強化現有的功能,而不是引入新的功能,進行前沿引領。Zephyr LTS更專注於產品,兼容新硬件,Zephyr將在整個開發週期中不時發佈一些為新硬件提供功能支持的小的版本 (point releases);縮短開發窗口並延長Beta週期,以便於進行更多測試和錯誤代碼修復;它是可認證的,為用戶提供可審計分支的基礎。

提到審計代碼庫,我們也可以稍做解釋。

Zephyr计划推出Zephyr LTS,引入诸多前沿的新功能

審計代碼庫將從Zephyr OS功能子集中建立一個審計代碼庫,兩個代碼庫將從此保持同步,但是在新功能進入審計代碼庫之前,將執行更嚴格的流程(認證需要),初始的和後續的認證目標將由Zephyr項目委員會決定,實現選定認證的流程由安全工作組決定,並與TSC做協調;

Zephyr计划推出Zephyr LTS,引入诸多前沿的新功能

FuSA、安全預認證路線圖

FuSA、安全預認證路線圖具有限制範圍,它僅限於在官方支持和維護的代碼,而且從最低層開始往上層走;遵循編碼、風格指南、研發流程,符合MISRA-C(MISRA-C:2012);具有可移植性,支持POSIX API(PSE52、長字節 PSE54);具有定義良好且穩定的API;在穩健性和操作安全性方面,支持MMU和MPU,具有Thread 隔離和堆棧保護,增強和增加測試範圍。

Zephyr计划推出Zephyr LTS,引入诸多前沿的新功能

定義範圍:目前的狀態

Zephyr是一個託管在github上的one-tree項目,位於一個GIT庫上,鬆散地遵循Linux內核研發模型並使用Linux配置系統(Kconfig),所有項目功能和硬件支持都是Zephyr的一部分,通過使用配置選項(Kconfig)包含/排除一些功能及硬件支持來實現模塊化。Zephyr不提供源代碼級別的模塊化,對外部遠程委託模塊提供有限的支持,對out-of-tree的板和HAL(開發板、SoC、驅動等)提供有限的支持。Zephyr包括外部維護代碼,例如:供應商HAL、庫(加密、調試等)。

LTS:源碼級別的模塊化

按照需求,用戶應該僅能“下載”和“看到”他們需要的示例模塊,不用考慮XYZ HAL,如果用戶正在某個特定架構上進行構建,他們不需要處理所有其它架構的HAL;

而且僅限內核模式,模塊化直至內核和準系統,用戶應該能夠只使用內核和基礎功能,不包含Zephyr中的其它內容。

審計代碼的候選標準:

用於嵌入式系統的安全性、可移植性和可靠性的編碼,包括MISRA-C:2012,修訂版1,遵循MISRA C合規性:2016年指南。

針對安全性,包括IEC61508:2010(SIL 3,但可能是SIL 4),它最廣泛的用於機器人和自動駕駛汽車工程公司,作為機器人領域中其他標準的參考;來自IEC61508的取樣認證:醫療遵循IEC62304,自動化遵循ISO26262,軌道遵循EN50128。

在航空航天(FAA)領域,遵循DO-178C(DAL A是最高認證級別),它來自DO-178C的取樣認證:無線電遵循DO-330至333,安全遵循DO-254。在安防領域,遵循通用標準(EAL4但可能更高水平EAL5,6)。其它醫療遵循FDA 510(K),ISO 14971,IEC 60601,工業遵循UL 1998等。

Zephyr计划推出Zephyr LTS,引入诸多前沿的新功能

質量至關重要

質量是整個行業對軟件強制性的期望,假設對Zephyr項目成員強制實施軟件質量管理,且符合內部質量流程是預期的。軟件質量不是由功能安全標準引發的額外要求,功能安全將質量視為已有的先決條件。

Zephyr LTS 流程:

首先確定LTS必須具備的功能特性;

根據以上特性,確定時間表和發佈日期(建議1.12);

圍繞LTS構建流程;

LTS作為長期目標,以及針對產品和認證推薦的Zephyr版本;

季度發佈是短期的,可發佈的里程碑導致LTS:AKA 工程,預覽版

提供升級(錯誤代碼修復和LTS到LTS+1);

生命週期:最初為2年;

LTS功能和要求:

在ARC、ARM和X86上,MMU/MPU支持存儲保護和線程隔離,PSE52帶有文件系統支持的嵌入式POSIX 配置文件,BSD 插口 API,在Linux、Mac和Windows上提供一流的支持。在OS意識和調試支持方面,掛鉤用於追蹤內核對象,內存和電源功能分析掛鉤。

LTS要求必須具有藍牙5.0,包括供應商和mesh擴展,可以完成藍牙Mesh網絡,支持FOTA 升級/DFU,包括BLE和IP 網絡(LWM2M),支持LWM2M,支持引導加載程序(MCUBoot)。

其中內核隔離和堆棧的更底部分,用於審計和認證目標,對內核代碼(Mini HAZOP)進行審查;同時支持第三方調試工具,包括OpenOCD和Systemview;增強的系統日誌,支持不同後端;支持文件系統(除了FAT),支持多個文件系統、VFS。

LTS先決條件

網絡API及用於協議(HTTP,…)的一致的API,必須具有穩定的驅動API,這需為1.12定義範圍,比如:API版本控制和穩定 vs “實驗性”,API範圍測試。支持out-of-tree SoC和開發板,需要清除公共標題,需要實際樣本,最好能有的LTS的功能,但不是必須的。

除了必須具備的功能,還有一些雖然不是必須卻也是最好能有的, 比如:支持藍牙5.0的廣告延伸,抽象加密API;支持WIFI 卸載—插口級別,在插口級別或者更低級別的API(針對LTS需要更多討論和決定);針對LTE設備的AT命令庫;堆棧監測,監測/統計“服務”線程;文件系統支持(超越FAT),NFFS支持多閃存硬件/多閃存隊列;支持第三方調試工具,追蹤分析器—WIP/與percepio討論;最好能有IDE集成(Eclipse);最好能有Zephyr 到Zephyr以及Linux到Zephyr 的OpenAMP;同時最好能有多核+引導加載程序構建。

總的來說,功能安全和安全需求需要與項目開源性質共存;在項目層面驅動質量,需要公開展示我們的質量流程和測試計劃,通過質量管理發佈流程來推動採用; 管理開發者和貢獻者的期望;MISRA-C被認為是“邪惡的”,對於開源項目不夠靈活;我們要繼續在主樹上進行創新,同時凝固和穩定Zephyr LTS。

———————-

關於Zephyr

Zephyr 項目是一款小型且可擴展的操作系統,尤其適用於資源受限的硬件系統,可支持多種架構;該系統高度開源,對於開發人員社區完全開放,開發人員可根據需要對該系統進行二次開發,以支持最新硬件、工具和設備驅動程序;該系統高度模塊化平臺,可輕鬆集成任何架構的第三方庫和嵌入式設備。


分享到:


相關文章: