Zephyr :物联网操作系统

更新时间:2024-09-21 14:31

Zephyr™项目是一个采用apache 2.0协议许可,Linux基金会托管的协作项目。为所有资源受限设备,构建了针对低功耗、小型内存微处理器设备而进行优化的物联网嵌入式小型、可扩展的实时操作系统(RTOS),支持多种硬件架构及多种开发板,可以在小至8 kB内存的系统上运行。

采用深入的安全开发生命周期:安全验证,模糊和渗透测试,频繁的代码审查,静态代码分析,威胁建模和审查,以防止代码中的后门。

支持Bluetooth, Bluetooth Low 能量, Wi-Fi, 802.15.4,6Lowpan, CoAP, IPv4, IPv6, 和 NFC 等标准,通过社区驱动的发展来改进和增强功能。

系统简介

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(丘留莫夫-格拉西缅科彗星)成功着陆。

系统目标

Zephyr RTOS的目标是成为针对连接的资源受限设备的最佳开源RTOS,并且考虑到安全性。

系统支持者

支持者

Zephyr 项目的初创成员有:英特尔(包括收购的阿尔特拉 Corporation 和 Wind River)、恩智浦半导体公司(包括最近并购的 飞思卡尔)和Synopsys公司。

2016年,Linaro加入Zephyr项目,与Intel,NXPSemiconductors和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.广泛的服务套件:

• 多线程服务 – 可以用于以优先级为基础非抢占式的纤程,以及以优先级为基础抢占式,可选轮询时间分片的任务;

• 中断服务 – 可以在编译中和程序运行时处理中断程序注册;

• 线程间的同步服务 – 提供二进制信号量(Semaphore)、计数信号量、互斥信号量;

• 用于基本消息队列,增强消息队列和字节流的线程间数据传递服务;

• 线程间的数据传递服务 - 提供基本消息队列、增强的消息队列和字节流;

• 电源管理服务 – 不需计数的闲置状态和先进的闲置基础架构。

架构支持

• ARM

• x86

• ARC

• NIOS II

• Xtensa

• Native POSIX

• RISC V

社区将不断添加新的架构支持。

子系统支持

1. 蓝牙子系统

• Bluetooth5.0 compliant (ESR10)

• Bluetooth Low 能量 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 人机交互 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. 网络子系统

• IPv6

• IPv4

• Dual stack support(网络堆栈允许开发人员将系统配置为同时使用IPv6和IPv4)

• UDP

• TCP

• BSD Sockets API

• HTTP

• MQTT

• CoAP

• LWM2M

• RPL

• DNS

• Network 管理学 API

• multiple Network Technologies

• Minimal Copy Network Buffer Management

• IEEE 802.15.4

• Virtual LAN support

• Network traffic classification

6. 电池管理子系统

7. 传感器子系统

8. 壳层子系统

9. 测试子系统

10. USB设备堆栈

11. 非易失性存储子系统

社区将不断添加更多网络及通信支持。

内核版本

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。

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平台。

2017年6月推出最新的V1.8.0内核版本

专为资源受限设备开发的Zephyr物联网操作系统宣布推出最新的1.8版本,对比上一版本,v1.8的主要更新包括以下几点:

• Tickless 内核

• BT 5.0功能

• 生态系统:支持通过第三方工具Tracing和Debugging

• 改进的Build和Debug

• 第三方编译器支持

• Xtensa GCC支持

• 改进的Build on 麦金塔 / Windows

• MMU / MPU:初步支持(WIP)

• 扩展设备支持

2017年9月Zephyr推出最新的V1.9.0内核版本

Zephyr V1.9.0内核版本专门为物联网应用做了优化,是一款小型化、可扩展、支持多架构、高安全性的RTOS。新版本所支持的开发板数量持续稳定增长,同时连接性和安全性也做了新的完善。

主要升级内容:

• 支持蓝牙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(续):在原有的基础上进行线程隔离初始工作,开发者可在低权限水平运行应用程序,以及只访问自身的数据或明确共享的数据,敏感的应用程序数据可以受到保护。同时,系统的稳健性增强,编程错误难以被恶意利用

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放大器

2018年3月Zephyr推出最新的V1.11.0内核版本

增加对原生的Microsoft Windows开发环境的支持

很多嵌入式开发者依赖并信任Microsoft Windows,将其作为自身的操作系统选择。Zephyr在过去的几个版本中开始建立对Windows的支持,该版本是第一个可以完全在微软平台上构建的版本。

通过cmake构建系统和Python脚本语言

为确保最佳性能以及与本地开发工具无缝交互,该版本通过CMake构建系统和Python脚本语言的强大力量,以交付一个可扩展的、面向未来的、完全跨平台的构建系统。

引入了一种新的连接技术—Thread协议

该版本将流行的OpenThread执行集成到Zephyr中,以便用户使用熟悉的Zephyr网络API无缝地与Thread网络交互,并可重复使用现有的802.15.4驱动程序。

使用蓝牙低功耗设备进行空中固件升级(OTA DFU)

该版本将一个新框架与一个熟悉的MCUboot加载程序集成来支持MCUmgr,以便Zephyr图像通过BLE连接发送和编程,并添加一个管理层,可以访问文件系统并远程检索内核统计信息。

支持架构更新

从该版本开始,对称多处理可用于Tensilica Xtensa构架,允许程序内核同时在多个CPU内核上运行。同时可以在Arm架构和ARC架构上支持线程水平内存保护,以前只能用于x86架构。

V1.12.0内核版本

2018年6月Zephyr推出最新的V1.12.0内核版本。

主要升级内容:

• 通过集成openmp的不对称多处理(AMP)

• 包括Mesh在内的Bluetooth Low 能量的持久存储支持

• 802.1Q - 以太网上的虚拟局域网(VLAN)流量

• 支持多个并发文件系统设备,partitions和FS types

• 以太网网络管理界面

• 基于每个连接的网络流量优先级

• 支持以太网统计计数器

• 在本地POSIX端口上支持TAP网络设备

• 命令行Zephyr工具“west”

• SPI从属支持

• 运行时非易失性配置数据存储系统(设置)

V1.13.0内核版本

2018年9月ZephyrV1.13.0内核版本

该版本主要增强的功能包括:

·可扩展和可插拔的跟踪支持;

·分区应用内存组织;

·Logging系统大修;

·引入BSD socket API的系统调用;

·支持IEEE 802.1AS-2011通用的精确时间协议generalized Precision 时间 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中,以及延迟日志处理。

参考资料

Zephyr项目统一内核 推出最新的V1.6.0内核版本.网易科技.2017-12-22

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: