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