Zephyr(物聯網作業系統)

Zephyr(物聯網作業系統)

本詞條是多義詞,共4個義項
更多義項 ▼ 收起列表 ▲

Zephyr™項目是一個採用Apache 2.0協定許可,Linux基金會託管的協作項目。為所有資源受限設備,構建了針對低功耗、小型記憶體微處理器設備而進行最佳化的物聯網嵌入式小型、可擴展的實時作業系統(RTOS),支持多種硬體架構及多種開發板,可以在小至8 kB記憶體的系統上運行。

採用深入的安全開發生命周期:安全驗證,模糊和滲透測試,頻繁的代碼審查,靜態代碼分析,威脅建模和審查,以防止代碼中的後門。

支持Bluetooth, Bluetooth Low Energy, Wi-Fi, 802.15.4,6Lowpan, CoAP, IPv4, IPv6, 和 NFC 等標準,通過社區驅動的發展來改進和增強功能。

基本介紹

  • 外文名:Zephyr
  • 類型實時作業系統
  • 特點:安全、開源、模組化、可連線
  • 協定許可Apache 2.0
  • 運行記憶體:小至8kB
  • 構建工具CMake
  • 最新LTS版本:Zephyr OS V1.14.0
系統簡介,系統目標,系統支持者,系統特色,硬體體系架構支持,功能子系統支持,核心版本,V1.6.0核心版本,V1.7.0核心版本,V1.8.0核心版本,V1.9.0核心版本,V1.10.0核心版本,V1.11.0核心版本,V1.12.0核心版本,V1.13.0核心版本,V1.14.0核心版本,

系統簡介

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

系統目標

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

系統支持者

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

系統特色

  1. 單個地址空間。將特定於應用程式的代碼與定製的核心組合在一起,以創建一個在系統硬體上載入並執行的單片圖像。應用程式代碼和核心代碼都在單個共享地址空間中執行。
  2. 高度可配置。允許應用程式只包含所需的功能,並指定它們的數量和大小。
  3. 編譯時資源定義。允許在編譯時定義系統資源,從而減少代碼大小並提高性能。
  4. 最小的錯誤檢查。提供最少的運行時錯誤檢查,以減少代碼大小並提高性能。提供了一個可選的錯誤檢查基礎結構來幫助在應用程式開發過程中進行調試。
  5. 廣泛的服務套件:Zephyr™作業系統為軟體開發提供了許多熟悉的服務,其中包含:
  • 多執行緒服務 – 可以用於以優先權為基礎非搶占式的纖程,以及以優先權為基礎搶占式,可選輪詢時間分片的任務;
  • 中斷服務 – 可以在編譯中和程式運行時處理中斷程式註冊;
  • 執行緒間的同步服務 – 提供二進制信號量(Semaphore)、計數信號量、互斥信號量;
  • 用於基本訊息佇列,增強訊息佇列和位元組流的執行緒間數據傳遞服務;
  • 執行緒間的數據傳遞服務 - 提供基本訊息佇列、增強的訊息佇列和位元組流;
  • 電源管理服務 – 不需計數的閒置狀態和先進的閒置基礎架構。

硬體體系架構支持

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

功能子系統支持

1. 藍牙子系統
  • Bluetooth5.0 compliant (ESR10)
  • 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(系統記錄)
  • Kernel Event Logging(核心時間記錄)
5. 網路子系統
  • Dual stack support(網路堆疊允許開發人員將系統配置為同時使用IPv6和IPv4)
  • BSD Sockets API
  • LWM2M
  • Network Management API
  • Multiple Network Technologies
  • Minimal Copy Network Buffer Management
  • IEEE 802.15.4
  • Virtual LAN support
  • Network traffic classification
6. 電池管理子系統
7. 感測器子系統
8. Shell子系統
9. 測試子系統
10. USB設備堆疊
11. 非易失性存儲子系統
社區將不斷添加更多網路及通信支持。

核心版本

V1.6.0核心版本

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

V1.7.0核心版本

2017年3月推出V1.7.0核心版本
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平台。

V1.8.0核心版本

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

V1.9.0核心版本

2017年9月Zephyr推出V1.9.0核心版本。
主要升級內容
  • 支持藍牙5.0(除了Advertising Extensions全部支持)
  • 藍牙認證合格的藍牙BLE控制器
  • 低功耗藍牙BLE Mesh
  • 支持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(續):在原有的基礎上進行執行緒隔離初始工作,開發者可在低許可權水平運行應用程式,以及只訪問自身的數據或明確共享的數據,敏感的應用程式數據可以受到保護。同時,系統的穩健性增強,編程錯誤難以被惡意利用

V1.10.0核心版本

2017年12月Zephyr推出1.10.0核心版本。
Zephyr V1.10.0核心版本的構建工具從原來的Kbuild遷移到跨平台的CMake,使應用程式開發人員讓Zephyr更容易用於需要不同開發環境的不同平台的開發。
主要升級內容
  • 針對用戶空間做了更的記憶體保護
  • 系統構建從原來的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放大器

V1.11.0核心版本

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

V1.12.0核心版本

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

V1.13.0核心版本

2018年9月Zephyr推出V1.13.0核心版本。
該版本主要增強的功能:
  • 可擴展和可插拔的跟蹤支持;
  • 分區套用記憶體組織;
  • 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提供基本的支持;

V1.14.0核心版本

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

相關詞條

熱門詞條

聯絡我們