文/王嘉宇
本文与之前的两篇侧重点稍有不同,前两篇文章着重介绍的是谷歌与微软的物联网操作系统的战略层面。到Zephyr这个新兴起的物联网操作系统,我想从一个不一样的角度来分析它。因此本文将着重分析一下Linux基金会主导的开源社区的组织构成及其开发者网站的建设思路。
Zephyr简介
Zephyr是一款Linux基金会主导研发的实时操作系统,针对KB级别智能硬件。以开放源码的形式提供给使用者和开发者,遵守Apache2.0协议。
发布时间 - 2016年2月
官网 - https://www.zephyrproject.org/
管理者 - Linux基金会
Zephyr官网指引
1、导航栏
Zephyr的官网类似Windows IoT的开发者官网,以导航栏的形式提供网站指引。导航栏显示的内容包括:
- 首页
- 关于
- 文档
- 下载
- 社区
- 新闻
2、首页内容
Zephyr在首页提到的有三方面的内容:
1)Zephyr的属性内容
- 安全性 - 强调了在物联网时代操作系统最重要的属性,这个排在第一位。
- 开源性 - 强调了Zephyr遵守的开源协议。也表达了欢迎从业人员参与该操作系统研发推进。
- 连接性 - 罗列了Zephyr支持的网络协议,包括了连接层和应用层网络协议。
- 模块性 - 强调了Zephyr的富特征性,包括在不同的应用环境和平台上,可以通过开启或者关闭相关模块来达到开发者的目的。
2)Zephyr的技术概要
整体模块
- nanokernel - 更小的内核,包括更细粒度的调用单元fiber和后台task,具体还包含mutex,timmer,event,pipes,stack和LIFO等组件。
- microkernel - 微内核,包含task以及fiber,这里只包含内存管理模块,pipes,event以及mailbox。
在这里,nanokernel可以用于单独开发云星宇资源受限更严格的设备之上的应用。 也可以和microkernel一起,在资源较丰富的设备上开发更复杂的应用。
主要的细分模块
- fiber - 更细粒度的调用单元,优先级高于task。fiber本身也有优先级,具体fiber的调度也根据自身优先级来进行。fiber通常用于设备驱动或者性能瓶颈任务。
- ISR - ISR可以中断fiber或者task。ISR模块默认打开。ISR可以标示fiber或task是否可运行。
- task - task只有fiber不运行的时候才开始运行。task是可抢占的。task根据自身优先级调度运行顺序。高优先级task优先运行。同等优先级采用时间片轮询调度。task主要用于数据处理。
3)Zephyr的社区简介
既然是开源项目,自然就会有所有开源项目具有的普遍特征。
具体的特征包括:
- bug跟踪系统,这里采用的是JIRA。
- 邮件列表,用于主要开发者和关注者沟通。
- 代码审查工具,这里采用的Gerrit。
- 联系工具,IRC。
- Jenkin持续集成工具。