複製鏈接
請複製以下鏈接發送給好友

Zephyr

(物聯網操作系統)

鎖定
Zephyr™項目是一個採用Apache 2.0協議許可,Linux基金會託管的協作項目。為所有資源受限設備,構建了針對低功耗、小型內存微處理器設備而進行優化的物聯網嵌入式小型、可擴展的實時操作系統(RTOS),支持多種硬件架構及多種開發板,可以在小至8 kB內存的系統上運行。
採用深入的安全開發生命週期:安全驗證,模糊和滲透測試,頻繁的代碼審查,靜態代碼分析,威脅建模和審查,以防止代碼中的後門 [1] 
支持Bluetooth, Bluetooth Low Energy, Wi-Fi, 802.15.4,6Lowpan, CoAP, IPv4, IPv6, 和 NFC 等標準,通過社區驅動的發展來改進和增強功能 [1] 
外文名
Zephyr
類    型
實時操作系統
特    點
安全、開源、模塊化、可連接
協議許可
Apache 2.0
運行內存
小至8kB
構建工具
CMake
最新LTS版本
Zephyr OS V1.14.0

Zephyr系統簡介

Zephyr項目是一個Linux基金會託管的協作項目 [2]  ,一個開源合作項目,聯合了業內領先企業,為所有資源受限設備構建了針對資源受限設備進行優化的最佳小型可擴展實時操作系統RTOS)。 [1] 
Zephyr內核源自Wind River VxWorks的商用VxWorks Microkernel Profile。 [1]  Microkernel Profile已經從稱為Virtuoso的DSP RTOS技術發展了20多年。RTOS已被用於多種商業應用,包括衞星、軍事指揮和控制通信、雷達、電信和圖像處理。該技術成功的最新例子就是裝載了WindRiver公司VxWorks實時操作系統的Rosetta comet probe(羅塞塔號彗星探測器)於2014年11月12日在67P/Churyumov-Gerasimenko(67P/楚留莫夫-格拉希門克彗星)成功着陸。 [3] 

Zephyr系統目標

Zephyr RTOS的目標是建立一箇中立項目,成為針對連接的資源受限設備進行最佳優化的小型RTOS,可擴展、跨多個架構,並且考慮到安全性。 [4] 

Zephyr系統支持者

支持者
Zephyr 項目的初創成員有:英特爾公司(包括收購的Altera Corporation 和 Wind River)、恩智浦半導體公司(包括最近併購的 Freescale)和Synopsys公司。 [5] 
2016年,Linaro加入Zephyr項目,與Intel,NXPSemiconductors和Synopsys初創成員都為白金會員。 [6] 
2017年2月,Runtime.io和Nordic半導體公司加入Zephyr項目,成為其白銀會員。oticon也為白銀會員。 [7] 
支持者對於項目的發言
“英特爾相信,Zephyr 項目將會在互聯、嵌入式設備市場產生重大影響。通過提供可擴展、可定製、安全且開源的操作系統,Zephyr 項目將滿足互聯設備開發不斷演變的需求。我們計劃與 Zephyr 社區合作開發安全高效的操作系統以推動創新。” [5] 
——Mark Skarpness,英特爾開源技術中心嵌入式操作系統工程副總裁兼軟件和服務集團總監
“我們堅信 Zephyr 將成為全球領先的易用物聯網平台之一,它專門針對互聯世界的安全性進行了設計。我們致力於為開發人員提供最好的工具和支持來開發創新解決方案。” [5] 
——Geoff Lees,恩智浦高級副總裁兼微控制器總經理
“Zephyr 項目能夠滿足行業對開源 RTOS 日益增長的需求,這種 RTOS 符合當今資源受限的安全物聯網設備的要求。我們很高興能夠參與到這個協作項目中,併為該項目盡一份力,包括為基於 Synopsys ARC 的物聯網 IP 項目提供支持。” [5] 
——John Koeter,新思科技 IP 和原型設計副總裁

Zephyr系統特色

  1. 單個地址空間。將特定於應用程序的代碼與定製的內核組合在一起,以創建一個在系統硬件上加載並執行的單片圖像。應用程序代碼和內核代碼都在單個共享地址空間中執行。 [5] 
  2. 高度可配置。允許應用程序只包含所需的功能,並指定它們的數量和大小。
  3. 編譯時資源定義。允許在編譯時定義系統資源,從而減少代碼大小並提高性能。
  4. 最小的錯誤檢查。提供最少的運行時錯誤檢查,以減少代碼大小並提高性能。提供了一個可選的錯誤檢查基礎結構來幫助在應用程序開發過程中進行調試。
  5. 廣泛的服務套件:Zephyr™操作系統為軟件開發提供了許多熟悉的服務,其中包含:

Zephyr硬件體系架構支持

  • ARM [8] 
  • x86(含x86_64體系)
  • ARC [8] 
  • NIOS II
  • Xtensa
  • Native POSIX
  • RISC V
  • Shields
社區將不斷添加新的架構支持。

Zephyr功能子系統支持

1. 藍牙子系統
  • Bluetooth5.0 compliant (ESR10) [8] 
  • Bluetooth Low Energy Controller support (LE Link Layer)
  • Generic Access Profile (GAP) with all possible LE roles
  • GATT (Generic Attribute Profile)
  • Pairing support, including the Secure Connections feature from Bluetooth 4.2
  • IPSP/6LoWPAN for IPv6 connectivity over Bluetooth LE
  • Basic Bluetooth BR/EDR (Classic) support
  • Clean HCI driver abstraction
  • Raw HCI interface to run Zephyr as a Controller instead of a full Host stack
  • Verified with multiple popular controllers
  • Highly configurable
2. 標準C庫
3. 設備固件升級
4. 記錄子系統
  • System Logging(系統記錄) [8] 
  • Kernel Event Logging(內核時間記錄)
5. 網絡子系統
  • Dual stack support(網絡堆棧允許開發人員將系統配置為同時使用IPv6和IPv4)
  • BSD Sockets API [8] 
  • LWM2M
  • Network Management API
  • Multiple Network Technologies
  • Minimal Copy Network Buffer Management
  • IEEE 802.15.4
  • Virtual LAN support
  • Network traffic classification
6. 電池管理子系統 [8] 
7. 傳感器子系統
8. Shell子系統
9. 測試子系統
10. USB設備堆棧
11. 非易失性存儲子系統
社區將不斷添加更多網絡及通信支持。

Zephyr內核版本

ZephyrV1.6.0內核版本

2017年1月推出V1.6.0內核版本 [9] 
Zephyr v1.6.0內核版本採用統一的內核代替了原來分離的超微內核和微內核,並且簡化了Zephyr整體架構和編程接口。其所支持的架構增加了ARM Cortex-M0/M0+系列,並且擴展了對Cortex-M板的支持。另外,新版本對文檔、基礎設施構建和測試做了很多改進。
主要的升級內容包括:
  • 引入統一內核,超微內核和微內核被廢除;
  • 依舊支持原有的API,但是已經棄用;
  • 將原有的測試和例程轉移到“tests/legacy”和“samples/legacy”中;
  • 添加統一內核文檔,刪除原有的超微內核/微內核文檔;
  • 增加支持ARM Cortex-M開發板;
  • 增加支持USB大容量存儲和訪問文件系統;
  • 增加對本地藍牙控制器的支持,支持nRF51和nRF52。

ZephyrV1.7.0內核版本

2017年3月推出V1.7.0內核版本 [10] 
Zephyr V1.7.0內核版本繼續對統一的內核進行細化,簡化整個的Zephyr架構和編程接口。新版本將繼續支持V1.5.0或更早版本發佈的超微內核和微內核遺留API,也將是最後一個支持該功能的版本。
主要升級內容
  • 引入了一個新的原生IP堆棧,用以替換原有的uIP堆棧,新IP協議棧的實現維持原有的功能,添加額外的功能,並便於未來改進;
  • 增加了對RISC V和Xtensa架構的支持,一共可以支持6種架構:X86架構、ARC架構、ARM架構、NIOS II 架構、RISC V架構和Xtensa架構;
  • 引進Device Tree機制配置各個平台特定的設備信息;
  • 基於ARM的平台最先使用Device Tree,記錄的信息包括flash/sram的基礎地址,UART設備;
  • 使用Device Tree的平台包括NXP Kinetis平台,ARM Beetle,TI CC3200 LaunchXL, 以及STML32L476平台。

ZephyrV1.8.0內核版本

2017年6月Zephyr推出V1.8.0內核版本。 [11] 
該版本主要升級內容:
  • Tickless 內核
  • BT 5.0功能
  • 生態系統:支持通過第三方工具Tracing和Debugging
  • 改進的Build和Debug
  • 第三方編譯器支持
  • Xtensa GCC支持
  • 改進的Build on Mac / Windows
  • MMU / MPU:初步支持(WIP)
  • 擴展設備支持

ZephyrV1.9.0內核版本

2017年9月Zephyr推出V1.9.0內核版本。 [12] 
主要升級內容
  • 支持藍牙5.0(除了Advertising Extensions全部支持)
  • 藍牙認證合格的藍牙BLE控制器
  • 低功耗藍牙BLE Mesh [13] 
  • 支持LwM2M
  • Pthreads兼容API
  • BSD插座兼容API, 允許使用眾所周知的跨平台API編寫/移植簡單的網絡應用程序
  • 設備樹支持擴展到更多架構
  • 改進測試套件,增加覆蓋面
  • 支持堆棧前哨Stack Sentinel
  • 增加了對安裝了SecureShield MPU的ARC EM Starter 套件的支持(具有MPU的ARC EM7D)
  • 支持更多開發板:Atmel 的SAM4S Xplained, Olimex STM32-E407 和 STM32-P405, STM32F412 Nucleo, STM32F429I-DISC1, TI 的SensorTag, VBLUno51 和 VBLUno52 開發板
  • MMU / MPU(續):在原有的基礎上進行線程隔離初始工作,開發者可在低權限水平運行應用程序,以及只訪問自身的數據或明確共享的數據,敏感的應用程序數據可以受到保護。同時,系統的穩健性增強,編程錯誤難以被惡意利用

ZephyrV1.10.0內核版本

2017年12月Zephyr推出1.10.0內核版本。
Zephyr V1.10.0內核版本的構建工具從原來的Kbuild遷移到跨平台的CMake,使應用程序開發人員讓Zephyr更容易用於需要不同開發環境的不同平台的開發。 [14] 
主要升級內容
  • 針對用户空間做了更的內存保護
  • 系統構建從原來的Kbuild切換到跨平台的CMake
  • 支持Newtron Flash文件系統(NFFS)
  • 與MCUBOOT引導加載程序集成
  • 增加測試程序的覆蓋範圍,並將大部分測試示例遷移到ztest目錄
  • 增加更多的SoC、開發板、和傳感器與驅動的程序支持
  • 改進了nrf52系列SOC的電源管理
  • 添加了LWM2M多分片網絡數據包支持
  • 新的CoAP庫實現,支持更長的網絡數據包
  • 添加了mDNS(組播DNS)支持
  • 改進IEEE 802.15.4、TCP,RPL,ARP,DNS,LWM2M等穩定性
  • 改進藍牙、藍牙Mesh穩定性
  • 支持BLE控制器中的PA / LNA放大器

ZephyrV1.11.0內核版本

2018年3月Zephyr推出V1.11.0內核版本。 [15] 
該版本主要增強的內容:
  • 增加對原生的Microsoft Windows開發環境的支持
  • 通過CMake構建系統和Python腳本語言
  • 引入了一種新的連接技術—Thread協議
  • 使用藍牙低功耗設備進行空中固件升級(OTA DFU)

ZephyrV1.12.0內核版本

2018年6月Zephyr推出V1.12.0內核版本。 [16] 
該版本主要升級內容:
  • 通過集成openmp的不對稱多處理(AMP)
  • 包括Mesh在內的Bluetooth Low Energy的持久存儲支持
  • 802.1Q - 以太網上的虛擬局域網(VLAN)流量
  • 支持多個併發文件系統設備,partitions和FS types
  • 以太網網絡管理界面
  • 基於每個連接的網絡流量優先級
  • 支持以太網統計計數器
  • 在本地POSIX端口上支持TAP網絡設備
  • 命令行Zephyr工具“west”
  • SPI從屬支持
  • 運行時非易失性配置數據存儲系統(設置)

ZephyrV1.13.0內核版本

2018年9月Zephyr推出V1.13.0內核版本。 [17] 
該版本主要增強的功能:
  • 可擴展和可插拔的跟蹤支持;
  • 分區應用內存組織;
  • Logging系統大修;
  • 引入BSD socket API的系統調用;
  • 支持IEEE 802.1AS-2011通用的精確時間協議generalized Precision Time Protocol(gPTP);
  • 支持鏈路層發現協議(LLDP)TX;
  • 使用BSD socket API支持TLS和DTLS;
  • 支持鏈路層組播名稱解析Link Layer Multicast Name Resolution(LLMNR);
  • 引入重新設計的ADC API和已經更新的Nordic、NXP、Atmel和Synopsys DesignWare驅動程序;
  • 支持OS驅動的電源管理框架;
  • 在Armv8-M中對Arm TrustZone提供基本的支持;

ZephyrV1.14.0內核版本

2019年4月Zephyr推出V1.14.0首個長期支持內核版本(LTS)。
該版本主要增強的內容: [18] 
  • 內核和核心組件應用了MISRA-C代碼指南;
  • 通過添加UART,USB和顯示驅動程序來增強本機POSIX端口;
  • 增加具有上層鏈路層和下層鏈路層的實驗性BLE分離軟件控制器,用於支持多個BLE無線電硬件架構;
  • 引入用於管理多個存儲庫的zephyr工具,並增強了對閃存和調試的支持;
  • 在ARMv8m中添加了對應用程序用户模式,應用程序內存分區和硬件堆棧保護的支持;
  • 定時子系統經過重新設計和重新實現,極大地簡化了生成的驅動程序。TICKLESS_KERNEL模式是該版本所有體系結構的默認模式;
  • 對稱多處理子系統中,增加了一個新的CPU affinity API,可以將線程“固定”到特定的核心或核心集;
  • 對網絡數據包net-pkt API進行大修,並將大多數組件和協議移至使用BSD套接字API;
  • 電源管理子系統大量修復,以支持設備空閒電源管理,並將大部分電源管理邏輯從應用程序移回BSP層;
  • 引入主要更新並對日誌記錄和shell子系統進行大修,支持多個後端,將日誌記錄集成到shell中,以及延遲日誌處理;
參考資料
展開全部 收起