Zephyr是一个小型的实时操作系统[3],用于资源受限的嵌入式互联装置(主要是微控制器),支持多种架构,使用Apache许可证 2.0发行。它有一个BSD许可证的仿品出现在来自Intel的Arduino 101软件资源包中[4]

Quick Facts 开发者, 编程语言 ...
Zephyr
开发者Linux基金会
风河系统
编程语言C汇编语言
操作系统家族实时操作系统
运作状态Current
原始码模式开放原始码
首次发布2016年2月17日,​8年前​(2016-02-17[1]
当前版本
  • 3.7.0 (2024年7月26日;稳定版本)[2]
编辑维基数据链接
市场取向物联网
支持的语言英语
支持平台ARMCortex-M0Cortex-M3Cortex-M4),x86ARCRISC-VNios IIXtensa
内核类别单体内核
许可证Apache 2.0
前一代Wind River Rocket
官方网站www.zephyrproject.org
仓库 编辑维基数据链接
Close

历史

Zephyr最初是风河系统公司在2015年11月推出的为物联网(IoT)装置开发的“Rocket内核”[5][6][7],更早时称为“Microkernel Profile for VxWorks”,代码移植于2001年并购Eonic Systems得来的Virtuoso DSP RTOS[8]。在2016年2月,它成为Linux基金会的项目而改称现名[9][1]

简介

Zephyr内核是小型的并设计用于资源受限的系统,预期目标是用于从简单的嵌入式环境传感器LED可穿戴技术,到复杂的智慧手表IoT无线网关英语Wireless gateway。Zephyr的建造系统支持Zephyr SDK之外的第三方工具链[10]。Zephyr计划设立了专门机制来维护或改进安全性[11]

Zephyr计划的成员和支持者包括:IntelLinaroNXP半导体Nordic半导体 ,和Synopsysruntime.ioDeviceToneOticon等。[12]

特征

Zephyr内核提供了如下一些特征:内存保护,内核服务,高可配置性,编译时确定资源。[13]

内存保护

实现可配置的特定于架构的栈溢出保护,内核对象及装置驱动程式许可权追踪,和线程隔离,采用了在x86ARCARM架构上的线程级别内存保护用户空间和内存域。

对于没有MMU/MPU的平台和内存受限的装置,支持把特定应用的代码和一个定制内核组合起来建立一个单体映像,它被装载并执行于系统硬件之上。应用代码和内核代码二者都执行在一个共享的单地址空间英语Single address space operating system中。

内核服务

内核为应用开发提供了一些熟悉的服务,包括:

  1. 线程服务,兼具基于优先级的、非抢先式的协同线程和基于优先级的、抢先式线程,带有可选的轮流式时间片。包括POSIX pthread兼容API支持。
  2. 中断服务,兼具编译时运行时的中断处理器注册。
  3. 线程间同步服务,具有二值信号量、计数信号量互斥信号量。
  4. 线程间数据传递服务,具有基本消息队列、增强消息队列和字节流
  5. 内存分配服务,具有固定大小或可变大小内存块的动态分配和释放。
  6. 电能管理服务,具有比如无时标空闲和高级的空闲下部构造。

高可配置性

允许应用只合并入它需要的功能,并指定它们的数量和大小。

编译时确定资源

要求所有系统资源都在编译时确定,这缩减代码大小并增进性能。

参见

引用

外部链接

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.