“Zephyr”是微风的意思,但“Zephyr项目”却不像字面的意思这么简单。它是一款操作系统,特别要说的是,是一款实时操作系统,而它将在物联网领域掀起一场风暴。
自发布以来,Zephyr项目已经取得了实质的进展。有关我们采用Zephyr操作系统研发设备的新闻已经有很多报道,想必很多开发者也已经听说过基于Zephyr操作系统开发的新生婴儿监护仪这个项目。最近,我们采用Zephyr操作系统和Arduino 101开发板开发了一系列各种各样的基础传感器“食谱”项目。在本文中,我们将更深入挖掘一下操作系统和Zephyr项目自身,尤其是Zephyr操作系统,以及这个项目对于物联网设备的未来可能意味些什么。
分析操作系统和单线程多任务
开源Zephyr 项目OS不仅仅是一个操作系统,它还是一个实时操作系统,也称为 RTOS。为了让大家理解这是什么意思,让我们先了解一下什么是一般来说的操作系统?
操作系统是一款软件程序,它允许一个计算设备向运行在设备上的软件和硬件提供服务,如显示器、鼠标、网页浏览器、应用程序、电子邮件客户端等。大多数人熟悉并使用的操作系统包括Windows、Mac、Linux和Unix,所有这些操作系统是针对个人计算机的,也称为多用户或多任务操作系统。安卓和iOS是面向移动设备的操作系统。移动操作系统不像多用户版本有那么多功能。移动和多用户操作系统和所有操作系统至少有一个共同点,他们应用一个叫做调度器的功能来确定哪个任务在什么时候运行。
操作系统的调度器采用设备处理器的可用线程。每个线程是一组表示用户或程序执行什么的指令。在一个传统的CPU中,计算机的处理器一次只执行一组指令。为了实现多任务并执行多组指令,现代处理器采用多个CPU、内核和线程的设计。采用这些处理器,操作系统可以通过多核或执行多线程一次运行多组指令。没有哪个线程优先,而是顺序执行指令。实际上,多个事件不会同时发生;操作系统简单地追踪请求,并且以用户难以察觉的速度按照接收顺序执行它们。
关于“实时操作”
RTOS也采用调度器。RTOS的调度器专门提供一致的执行模式,从而确保数据进来时被处理。它允许优先使用线程,或优先处理那些应该立刻执行的任务(实时)。与多用户操作系统不同,绝对吞吐量不是RTOS的主要目的。相反,最主要的目标是在特定时间框架中执行既定任务。这很重要,因为某些功能不能等待设备去响应,即便是一个无法察觉的时间量,
Zephyr项目是一个旨在协作研发实际RTOS本身的项目,项目由Linux基金会主持。Zephyr项目不是唯一的RTOS,3月11日的这篇维基百科文章(https://en.m.wikipedia.org/wiki/Comparison_of_real-time_operating_systems)里列出了181个不同的版本,多数都是开源的。
Zephyr项目操作系统的目标应用是简单物联网传感器:LED、智能可穿戴设备和小型的物联网无线网关。RTOS是可扩展的,而且它的内核目前支持多种架构,包括ARM-Cortex-Mx,英特尔X86,ARC,新思 Nios 2和RISC-V。除了支持MQTT,SSL和本地的、优化的IPv4和IPv6双堆栈外,Zephyr项目还支持一个完整的蓝牙低能量控制器和一个基于TinyCrypt的加密库。这意味着开发者按照原样或者修改一下就可以用在自己的项目中。虽然它在2016年2月由Linux基金会“全新”推出,但是这个项目实际已经有一段时间了。
Zephyr操作系统是可定制的且保证安全。它具有模块化内核,能够被剥离到各个组件,如果需要甚至可以只要超微内核。它的调度器在一定时间内按照优先级运行单一任务。如果两个优先级相同的任务在等待,调度器运行等待时间最长的那个。Zephyr操作系统的特点是它给开发者提供了为指定线程分配优先级的能力,并在某些情况下给更高优先级的线程设置优先级的能力。
Zephyr项目的未来
为什么Zephyr项目给物联网带来一场风暴?它的Linux基金会背景、可扩展性,和开源性是最大的驱动力。Zephyr的开源方式解放了开发者,它可以代替工程师围绕操作系统工作,让他们到其它领域进行创新,这有助于系统在竞争中出现差异化。目前,物联网设备经常缺乏互操作性,IT管理人员很头疼。如果Zephyr项目变成事实上的物联网设备的标准操作系统,它将推进IoT进入互操作性的新时代,物联网设备会广泛使用。
关于Zephyr项目
Zephyr 项目是一款小型且可扩展的实时操作系统,尤其适用于资源受限的系统,可支持多种架构;该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该系统进行二次开发,以支持最新硬件、工具和设备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备。