Zephyr OS 相关学习学习资料,请关注我的github:
https://github.com/tidyjiang8/
Zephyr 是一个用于物联网的开源操作系统,受到 Linux 基金会支持(参考 这里),在今年二月份刚发布 1.0 版本,目前开发到 1.4 版本。Zephyr 的目标非常远大,即一统物联网操作系统。
Zephyr 目前还处于初期阶段,项目开发非常活跃,代码托管在 Linux 基金会自己搭建的 Girret 服务器上,而不是在 Github 上。也正是由于它还是在初期阶段,所以我对它充满了期望。这是机遇呀!!
左手一个Contiki,右手一个 Zephyr,一直在想 Zephyr 相对于 Contiki 在哪些方面有优势,但这不是现在的我能说清楚的,因为对两个操作系统都不熟。不过发现一个有意思的地方:Zephyr 的 ip 协议栈是对 Contiki 协议栈的移植。除了 ip 协议栈外,Zephyr中还包括了低功耗 Bluetooth 协议栈。
Zephyr 的中文翻译是“和风;西风;轻薄织物”,由此可以看出 zephyr 是一个轻量级的操作系统。事实上,它提供了两种内核:微内核 microkernel 和超微内核 nanokernel,用户可以在编译时通过配置文件配置使用哪种内核:同时使用微内核和超微内核,或者只使用超微内核。
超微内核具有内核的一系列基础特征,是一个高性能、多线程的执行环境。超微内核适用于内存很少(最少为 2KB)的系统或者简单的多线程系统(比如只有一些列中断处理和单后台 task)。这样的系统主要包括:嵌入式传感器 hub、传感器、简单 LED 可穿戴设备以及商店库存的标签。
微内核比超微内核的功能更加丰富。超微内核适用于这样的系统:内存更多(50 ~ 900 KB)、多通信设备(比如WIFI、低功耗蓝牙)、多 task。这样的系统主要包括:可穿戴设备、智能手表、物联网无线网关。
Zephyr 内核是一个微型内核,被设计用于资源受限的系统:从简单的嵌入式传感器、可穿戴 LED,到复杂的智能手表、物联网无线网关。
Zephyr 支持多架构,包括:ARM Cortex-M、Intel x86 和 ARC。在 这里 可以查看 Zephyr 支持的所有平台。
与其它微型内核相比,Zephyr 内核有很多独特的优秀特性:
Zephyr 源码树的顶层目录如下所述,每个顶层目录都包括一级或多级子目录。
arch
架构相关的超微内核代码和平台代码。Zephyr 支持的每个架构都有一个子目录,且这些子目录还包括下面子目录:
boards
board 相关的代码和配置文件。
doc
Zephyr 文档相关的材料和工具。
drivers
设备驱动代码。
include
所有(不包括 lib
目录)公有 API 的头文件。
kernel
微内核代码,以及架构无关的超微内核代码。
lib
库代码,包括最小的 C 库。
misc
杂项代码。
net
网络相关的代码,包括蓝牙协议栈和网络协议栈。
samples
微内核、超微内核、蓝牙协议栈和网络协议栈的应用程序举例。
tests
内核各个特性的测试代码。
scripts
用于编译、测试 Zephyr 应用程序的程序和文件。
git clone https://gerrit.zephyrproject.org/r/zephyr
Zephyr OS 文档
最新版 1.4.0 英文文档:
zephyr project 文档 - 英文版
我计划将其翻译成中文,已托管到 github:
zephyr project 文档 - 中文版 - 源码
文档源码是.rst格式的,github解析得不好,所以我将其制作为html网页,放到了我的独立博客里了:
zephyr project 文档 - 中文版 - html 网页
PS: 如果有朋友愿意一起翻译就更好了(tidyjiang@163.com)