Zephyr-適用於設計開發可穿戴設備的操作系統

隨著一股運動熱潮被掀起,可穿戴設備受到關注,近年來佩戴智能手環、智能手錶等可穿戴設備逐漸被視作一種時尚。不過可穿戴設備只是物聯網的一個分支,醫療和健康領域的可穿戴設備逐漸呈主流趨勢。一系列不同形態的可穿戴設備為用戶提供各種信息,從生物參數測量,如:心率和出汗安全水平,到安全信息一應俱全。而且許多可穿戴設備配有顯示屏,可以獨立運行,並且大部分支持一些典型的無線通信方式。

在裸機上運行一款專用的應用程序是可能的。雖然很多緊湊型設備採用微控制器提供低功耗操作,但有操作系統會使編程更簡單。這有助於提升系統性能、安全性和保密性,因為相對於單一的應用,通過操作系統提供的服務已經在廣泛的應用環境裡經過了檢驗和優化。

Zephyr-適用於設計開發可穿戴設備的操作系統

1.可穿戴物聯網設備能夠從一個緊湊型的操作系統獲得便利,因為它們一般已經包含了一個無線協議。

這一領域的操作系統和實時操作系統種類繁多,它們竭力吸引開發者的目光,包括大量商業軟件和開源軟件,甚至物聯網被帶向二者的混合。近來用戶討論的不僅是連接性(如:無線協議),還包括作為超級子集的物聯網通信協議,類似安全和在線升級等功能需要和操作系統集成,那就是需要把很多軟件封裝在一個小的空間中。

可穿戴設備物聯網系統有時會使用Linux,但它也會使用一些更緊湊型的操作系統,如ARM nbed、FreeRTOS、NuttX、RIOT OS、TinyOS和Zephyr等。

今天筆者就帶大家仔細瞭解一下Zephyr項目,它是Wind River的超微內核OS的衍生品。Wind River為Zephyr提供許多開發人員所需要的專業的商業支持。實際上,這種類型的支持可以從其它操作系統的各種資源中獲得,這就是為什麼商業操作系統經常被作為物聯網應用的首選。

什麼是Zephyr?

Zephyr是一個開源項目,源代碼使用了Apache 2.0 授權。

Zephyr 1.6版本建立在統一的內核上,它的架構最初包含一個超微內核。超微內核版本為資源受限平臺而設計的,可以運行在小到2KB的代碼空間上。其它功能由微內核提供,最小需要50kB的空間。

Zephyr-適用於設計開發可穿戴設備的操作系統

Zephyr有類似緊湊型操作系統的許多功能,包括單一尋址空間和非動態實時支持。前者通常是硬件限制,後者是設計選擇,因為大多數設備解決一組固定的應用特徵。同樣,資源在編譯時或者建立時也是被固定和定義的,這能減少存儲空間並提升性能。系統通常有最小運行時間的錯誤查找,儘管Zephyr針對應用開發階段的系統調試有一個可選的錯誤查詢基礎設施。

統一內核的可擴展性部分是多線程服務,它可以處理基於優先級的非搶佔線程以及具有可選循環時間分片調度程序的搶佔線程。中斷服務支持使用中斷處理程序的編譯時註冊。

Zephyr-適用於設計開發可穿戴設備的操作系統

2.Zephyr的原始超微內核/微內核平臺已經被一個統一的內核取代,可以配置以解決超微內核所針對的資源受限環境。除此之外,它可以提供最初微內核中幾乎所有的功能。

Zephyr提供一般的操作系統服務,如:動態內存分配。跨線程同步服務支持二進制信號量,計數信號量和互斥信號量。跨線程數據傳輸服務採用基礎消息隊列以及增強消息隊列和字節流。電源管理服務支持無縫空閒。應用程序還能夠利用先進的空閒基礎設施,相應增加代碼大小。

目前為止,Zephyr看起來很像一個典型的緊湊型操作系統,恰好就是這樣的。 越往上層看事情變得越發有趣。

Zephyr支持包括像藍牙和WiFi這樣的無線協議,也支持三線和五線串口這樣的有線連接方式。Zephyr還支持像LoWPAN這樣的標準通信中間件,以及支持線程組的線程計劃也已經被Zephyr項目的技術指導委員會提上日程,順便說一下,Linux基金會支持Zephyr。加密和加密通信支持由TinyCrypt 2 和 mbed的 mbedTLS堆棧提供。Zephyr的標準中間件部分使得它在物聯網環境中更加有趣。

靜態查找開源項目

再來看看Zephyr的靜態分析,它在安全和保障方面很重要。像很多項目一樣,Zephyr用C語言編寫。C語言有很多優勢,但是它也會讓程序員意外的出現“搬起石頭砸自己的腳”的情況。靜態分析能夠發現很多C程序員無意中加入的錯誤代碼。不幸的是,傳統的C/C++編譯器不提供靜態分析工具,除了基礎檢查可能是個例外。

市場上有很多商業靜態分析工具。許多商業C/C++工具集還包含這些支持,如MISRA C/C++檢查。商業解決方案之一是來自新思公司旗下的Coverity。Coverity掃描是一種免費服務,由Coverity/Synopsys提供給開源項目。它能夠用於Java、C/C++、C#、JavaScript、Ruby,或者Python開源項目,並且包含有像Zephyr這樣的平臺中。Coverity掃描有一些限制,比如每週可操作的次數,但是它可與日常開發結合使用。當然,開發者可以購買Coverity的工具就沒有這種限制了。

對於需要在像可穿戴設備這樣的資源受限平臺上開發應用的物聯網開發者來說,Zephyr只是眾多選擇中的一個。

關於Zephyr

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

相關推薦

推薦中...