自發(fā)布以來,Zephyr項目已經(jīng)取得了實質的進展。有關我們采用Zephyr操作系統(tǒng)研發(fā)設備的新聞已經(jīng)有很多報道,想必很多開發(fā)者也已經(jīng)聽說過基于Zephyr操作系統(tǒng)開發(fā)的新生嬰兒監(jiān)護儀這個項目。最近,我們采用Zephyr操作系統(tǒng)和Arduino 101開發(fā)板開發(fā)了一系列各種各樣的基礎傳感器“食譜”項目。在本文中,我們將更深入挖掘一下操作系統(tǒng)和Zephyr項目自身,尤其是Zephyr操作系統(tǒng),以及這個項目對于物聯(lián)網(wǎng)設備的未來可能意味些什么。
分析操作系統(tǒng)和單線程多任務
開源Zephyr 項目OS不僅僅是一個操作系統(tǒng),它還是一個實時操作系統(tǒng),也稱為 RTOS。為了讓大家理解這是什么意思,讓我們先了解一下什么是一般來說的操作系統(tǒng)?
操作系統(tǒng)是一款軟件程序,它允許一個計算設備向運行在設備上的軟件和硬件提供服務,如顯示器、鼠標、網(wǎng)頁瀏覽器、應用程序、電子郵件客戶端等。大多數(shù)人熟悉并使用的操作系統(tǒng)包括Windows、Mac、Linux和Unix,所有這些操作系統(tǒng)是針對個人計算機的,也稱為多用戶或多任務操作系統(tǒng)。安卓和iOS是面向移動設備的操作系統(tǒng)。移動操作系統(tǒng)不像多用戶版本有那么多功能。移動和多用戶操作系統(tǒng)和所有操作系統(tǒng)至少有一個共同點,他們應用一個叫做調度器的功能來確定哪個任務在什么時候運行。
操作系統(tǒng)的調度器采用設備處理器的可用線程。每個線程是一組表示用戶或程序執(zhí)行什么的指令。在一個傳統(tǒng)的CPU中,計算機的處理器一次只執(zhí)行一組指令。為了實現(xiàn)多任務并執(zhí)行多組指令,現(xiàn)代處理器采用多個CPU、內核和線程的設計。采用這些處理器,操作系統(tǒng)可以通過多核或執(zhí)行多線程一次運行多組指令。沒有哪個線程優(yōu)先,而是順序執(zhí)行指令。實際上,多個事件不會同時發(fā)生;操作系統(tǒng)簡單地追蹤請求,并且以用戶難以察覺的速度按照接收順序執(zhí)行它們。
關于“實時操作”
RTOS也采用調度器。RTOS的調度器專門提供一致的執(zhí)行模式,從而確保數(shù)據(jù)進來時被處理。它允許優(yōu)先使用線程,或優(yōu)先處理那些應該立刻執(zhí)行的任務(實時)。與多用戶操作系統(tǒng)不同,絕對吞吐量不是RTOS的主要目的。相反,最主要的目標是在特定時間框架中執(zhí)行既定任務。這很重要,因為某些功能不能等待設備去響應,即便是一個無法察覺的時間量,
Zephyr項目是一個旨在協(xié)作研發(fā)實際RTOS本身的項目,項目由Linux基金會主持。Zephyr項目不是唯一的RTOS,3月11日的這篇維基百科文章(https://en.m.wikipedia.org/wiki/Comparison_of_real-time_operating_systems)里列出了181個不同的版本,多數(shù)都是開源的。
Zephyr項目操作系統(tǒng)的目標應用是簡單物聯(lián)網(wǎng)傳感器:LED、智能可穿戴設備和小型的物聯(lián)網(wǎng)無線網(wǎng)關。RTOS是可擴展的,而且它的內核目前支持多種架構,包括ARM-Cortex-Mx,英特爾X86,ARC,新思 Nios 2和RISC-V。除了支持MQTT,SSL和本地的、優(yōu)化的IPv4和IPv6雙堆棧外,Zephyr項目還支持一個完整的藍牙低能量控制器和一個基于TinyCrypt的加密庫。這意味著開發(fā)者按照原樣或者修改一下就可以用在自己的項目中。雖然它在2016年2月由Linux基金會“全新”推出,但是這個項目實際已經(jīng)有一段時間了。
Zephyr操作系統(tǒng)是可定制的且保證安全。它具有模塊化內核,能夠被剝離到各個組件,如果需要甚至可以只要超微內核。它的調度器在一定時間內按照優(yōu)先級運行單一任務。如果兩個優(yōu)先級相同的任務在等待,調度器運行等待時間最長的那個。Zephyr操作系統(tǒng)的特點是它給開發(fā)者提供了為指定線程分配優(yōu)先級的能力,并在某些情況下給更高優(yōu)先級的線程設置優(yōu)先級的能力。
Zephyr項目的未來
為什么Zephyr項目給物聯(lián)網(wǎng)帶來一場風暴?它的Linux基金會背景、可擴展性,和開源性是最大的驅動力。Zephyr的開源方式解放了開發(fā)者,它可以代替工程師圍繞操作系統(tǒng)工作,讓他們到其它領域進行創(chuàng)新,這有助于系統(tǒng)在競爭中出現(xiàn)差異化。目前,物聯(lián)網(wǎng)設備經(jīng)常缺乏互操作性,IT管理人員很頭疼。如果Zephyr項目變成事實上的物聯(lián)網(wǎng)設備的標準操作系統(tǒng),它將推進IoT進入互操作性的新時代,物聯(lián)網(wǎng)設備會廣泛使用。
關于Zephyr項目
項目是一款小型且可擴展的實時操作系統(tǒng),尤其適用于資源受限的系統(tǒng),可支持多種架構;該系統(tǒng)高度開源,對于開發(fā)人員社區(qū)完全開放,開發(fā)人員可根據(jù)需要對該系統(tǒng)進行二次開發(fā),以支持最新硬件、工具和設備驅動程序;該系統(tǒng)高度模塊化平臺,可輕松集成任何架構的第三方庫和嵌入式設備。