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