RTOS的解药:开源的力量?

发表时间: 2023-12-27 09:51

上个月,有一个不起眼的新闻,却引发了嵌入式行业震动。微软宣布将Azure RTOS托管至Eclipse基金会,更名为Eclipse ThreadX,并过渡到开源模式。

彼时,嵌入式系统专家Jacob Beningo说:这是一个好消息,因为它将使嵌入式开发人员可以免费获得高质量的RTOS,令人兴奋,我认为这将改变游戏规则。”

要知道,Azure RTOS曾经,就是我们所熟知的ThreadX,微软也宣称,这会是全球首款开源的实时操作系统(RTOS)。

开源,会是RTOS未来的解药?

120亿台设备使用的RTOS开源了

Azure RTOS的故事要从2019年4月18日说起。

彼时ThreadX操作系统被微软看中,其所有者Express Logic被整体收购。从那时起,它的名字也被改为Azure RTOS。微软收购ThreadX或许是为了回应此前亚马逊云科技接掌FreeRTOS。在收购之后,ThreadX原开发者William Lamie选择离开并创办新公司,专门销售包含POSIX 兼容线程的“第五代”RTOS,名为PX5OS。

早在ThreadX时代,它就拥有超62亿部署量,是当时VDC Research调查中全球部署范围最广的RTOS之一。

目前,Azure RTOS已部署在全球超过120亿台设备上。除了作为RTOS内核的Azure RTOS ThreadX之外,Azure RTOS还提供了一组系统组件来加速构建嵌入式系统和物联网应用程序。

在基金会管理下,Eclipse ThreadX项目计划将于2024年第一季度在MIT协议下开源提供。ThreadX将成为世界上第一个开源实时操作系统

翻译翻译,就是120亿台设备使用的ThreadX操作系统正式开源。

ThreadX本身仍是一款久经考验、相当成熟的产品,其STM32版本等部件甚至通过了TÜV功能安全 (FuSa) 认证。这也使其在特定客群中建立起强大的吸引力。

除了项目本身,Eclipse基金会还成立了技术兴趣小组,专注于为ThreadX建立起由行业支持的可持续融资模式。目前,AMD、Cypherbridge、微软、恩智浦(NXP)、PX5、瑞萨电子(Renasas)、意法半导体(ST)、芯科(Silicon Labs)和Witekio(Avnet旗下公司)都积极参与进来。

早在ThreadX被收购之初,EEworld网友就曾发帖分析:(原帖地址:http://bbs.eeworld.com.cn/thread-1129762-1-1.html)

  • 因为是被微软收购的,很多人会对此深感担心。github被收购时,很多人就转到了gitlab。虽说目前还没有太多不好的变化,但以后的事情不好说,何况从历史看,多少开源技术和初创公司被苹果、谷歌、微软收购后就被人遗忘了;
  • 他原本是商业系统的,除开之前的付费客户,开源势必会拓展一些人群,而且是目前安全级别最高的RTOS,当学习资料丰富起来后,肯定会压缩其他RTOS的空间;
  • 肯定影响很大。微软要搞azure iot ,这个rtos是必然的,至少在这个方向下不会被废弃。Threadx太成熟,太强大,如果不是历史遗留的项目,可能会越来越多的成为选型工具箱里的常客。

对于这则新闻, 嵌入式系统专家之声是这样解读的:

  • 知名的嵌入式系统专家何小庆老师指出,ThreadX在国内影响力虽然不是很大,但会影响嵌入式系统生态链,尤其是海外芯片企业,国内RTOS要继续加高防护栏;
  • μC/OS作者JEAN LABROSSE表示,开源是大趋势,FreeRTOS并入Amazon,Micrium被Silicon Labs收购,ThreadX并入微软之后都开源了, 还有Zephyr也是开源软件。即使这样,商业项目最好购买商业RTOS,因为可以获得技术支持。

开源是RTOS创新的源泉

一次关于嵌入式的调查中,曾这样写道:目前开源操作系统的使用效率为42%,商业操作系统使用率为24%,比例持续下降。35%的在选择操作系统时看重完整的代码支持,31%的选择更好的技术支持,29%的选择软件、系统、工具支持最好的,29%倾向选择免费的,26%倾向选择即时性强的,26%倾向选择可供用户自由更改的,24%倾向选择开源的。

“开源是软件产业发展的重要源动力。”这是何小庆在论文《嵌入式实时操作系统的昨天、今天和明天》中这样写道。他在论文中,这样分析道:

以Linux为代表的开源操作系统在电子信息产业落地生根。然而,嵌入式实时操作系统领域没有一个可以与Linux相媲美的知名项目,历史上小有名气的 RTOS开源项目主要活跃在 90 年代、2000年和2010年以后这三个阶段。

RTEMS开源项目

实时多处理器系统(The Real-Time Executive for Multiprocessor Systems,RTEMS)是一个开源的实时嵌入操作系统。

90年代,美国开始将RTEMS用于国防系统,它早期的名称为“实时导弹系统”,后改名为“实时军用系统”。RTEMS是最早支持POSIX、TCP/IP 协议和多处理器架构的RTOS,支持许多经典的微处理器,比如PPC/68K/MIPS/Arm。

RTEMS项目的活跃度一直很高,现在由OAR公司负责维护。同期的开源RTOS,比如eCos 被 RedHat收购,后又被放弃,名气以及活跃度不如RTEMS。eCos最大的特点是内核可配置,并且用C++书写。

FreeRTOS开源项目

FreeRTOS是理查德·巴里(Richard Barry)在英国创建的开源项目。FreeRTOS开始于2000 年初,每一个版本在正式发布成压缩包之前,都经过完整的测试以确保产品的稳定。2017年 FreeRTOS成为亚马逊的开源项目,FreeRTOS v10.0以后使用 MIT开源协议。

FreeRTOS一开始专注于针对微控制器,代码量小、开源免费。借助物联网的蓬勃发展,FreeRTOS成为市场领先的小型实时操作系统。2017年,FreeRTOS每3分钟就被下载一次,成为世界上最受开发者欢迎的RTOS之一。

FreeRTOS还有商业版本OpenRTOS和安全版 SAFERTOS。SAFERTOS是面向微控制器的、经过安全认证的嵌入式实时操作系统。SAFERTOS及其工业设计保证包已通过TÜV SÜD的IEC 61508 SIL 3预认证。

Zephyr开源项目

Zephyr项目是由英特尔、新思科技(Synopsys)、恩智浦半导体(NXP)等公司在2016年发起的开源实时操作系统项目,现在由 Linux 基金会管理。该项目旨在联合整个行业的领导者,针对资源受限的小型设备构建可扩展的实时操作系统。

从Zephyr社区的角度看,Zephyr希望覆盖Linux无法支持的应用市场。Zephyr的历史比较短,但起点很高,这得益于发起公司的积累和项目团队多年的经验。Zephyr最初的代码来自风河,风河的VxWorks RTOS在工业和航空航天领域极有影响力。

与FreeRTOS和Contiki等开源RTOS相比,Zephyr体系架构完整,中间件丰富。在安全设计方面,Zephyr 有缜密的考量,遵循 MISRAC 规范标准 ;在功能安全认证上,Zephyr选择支持IEC61508,并考虑支持汽车安全标准ISO26262。

这些功能,其他开源RTOS项目还做不到。Zephyr有一个充满活力的国际开发社区,在物联网与人工智能新技术融合方面活跃度很高,比如支持机器学习TensorFlow Lite for Microcontrollers和安全架构Arm TrustZone,Zephyr 还集成了ArmTF-M安全固件。

Zephyr目前在中国的关注度比较低,但其技术上的产品发展思路很值得国产操作系统借鉴。近年来国产开源RTOS发展迅速,知名的产品有RT-Thread和OpenHarmony。RT-Thread是国内开发者非常熟悉的开源RTOS,在中国物联网市场有广泛的生态基础和市场占有率,最新开源了RT-Smart微内核操作系统。RT-Smart 专注于对安全、多核和高性能处理器的支持,开源RT-Smart对高端嵌入式市场的生态建设将起到积极作用。

哪些RTOS开源了?

两个月前,号称全球最大开源软件开发平台和仓库SourceForge网站有一份“2023年RTOS榜单”,其中,国产实时操作系统 RT-Thread 已经进入榜单,同时,国产RTOS华为LiteOS也进入了名单之中。具体名单如下:

VxWorks

RT-Thread

FreeRTOS

Mbed OS

embOS

INTEGRITY

LynxOS

SCIOPTA

Keil RTX

PikeOS

QNX Neutrino

Huawei LiteOS

OpenWrt

Azure RTOS

Zephyr

Apache NuttX

以下列举一些典型的开源RTOS操作系统:

1.国内操作系统介绍

1.1.华为-lite OS

2015年5月20日,在2015华为网络大会上,华为发布了敏捷网络3.0,主要包括轻量级的物联网操作系统LiteOS、敏捷物联网关、敏捷控制器三部分。华为战略Marketing总裁徐文伟介绍,LiteOS体积只有10KB级,而且实行开源,使智能硬件开发变得更加简单。

Huawei LiteOS是华为1+2+1物联网解决方案的组成部分,遵循BSD-3开源许可协议,自开源以来,已经和一些厂商、家电企业达成了合作,华为希望通过开源、开放将LiteOS打造成像安卓一样的物联网终端的物联网操作系统。

Huawei LiteOS其具备「零配置」、「自发现」和「自组网」能力,让使用 LiteOS 的物联终端能够自动接入支持的网络。Huawei LiteOS 将使得智能硬件的开发变得更加简单,从而加快实现万物的互联互通。

1.2.阿里- AliOS Things

AliOS Things是面向IoT领域的轻量级物联网嵌入式操作系统。致力于搭建云端一体化IoT基础设备。具备极致性能,极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、新出行等领域。

1.3.翼辉-SylixOs

翼辉信息是中国拥有大型实时操作系统完整自主知识产权的高科技企业,技术团队拥有十年以上嵌入式系统设计经验,专注为自主可控导向的领域提供专业解决方案。

公司主要产品为SylixOS自主实时操作系统,此系统于2006年开始研发,经过多年的持续开发与改进,SylixOS自主实时操作系统已经成为一个功能全面,稳定可靠,易于开发的实时系统平台。

目前,翼辉信息正成为国内高可靠性、高性能实时软件开发平台的引领者,翼辉信息的专家们在实时操作系统领域为客户提供专业的硬软件综合解决方案,保障客户产品实时可靠、信息安全,缩短客户产品开发周期,降低客户产品开发成本,并提高客户产品自主化率。翼辉信息的解决方案覆盖网络设备、国防安全、工业自动化、轨道交通、电力、医疗、航空航天、汽车电子等诸多领域。

1.4.赛睿德RT-Thread

RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread具备一个IoT OS平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。经过11年的累积发展,RT-Thread已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过2亿台,成为国人自主开发、国内最成熟稳定和装机量最大的开源RTOS。

RT-Thread拥有良好的软件生态,支持市面上所有主流的编译工具如GCC、Keil、IAR等,工具链完善、友好,支持各类标准接口,如POSIX、CMSIS、C++应用环境、Javascript执行环境等,方便开发者移植各类应用程序。商用支持所有主流MCU架构,如ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,几乎支持市场上所有主流的MCU和Wi-Fi芯片。

1.5.腾讯-TencentOS tiny

TencentOS tiny是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,安全可靠等特点,可有效提升物联网终端产品开发效率。

TencentOS tiny 提供精简的 RTOS 内核,内核组件可裁剪可配置,可快速移植到多种主流 MCU 及模组芯片上。而且,基于RTOS内核提供了丰富的物联网组件,内部集成主流物联网协议栈(如 CoAP/MQTT/TLS/DTLS/LoRaWAN/NB-IoT 等),可助力物联网终端设备及业务快速接入腾讯云物联网平台。

1.6.中国移动-OneOS

OneOS是中国移动针对物联网领域推出的轻量级操作系统,具有可裁剪、跨平台、低功耗、高安全等特点,兼容POSIX、CMSIS等标准接口,支持Micropython语言开发,并提供图形化开发工具。2021年10月,OneOS通过了IEC61508 SIL3功能安全认证。2022年1月,OneOS通过了CCRC EAL4+ 安全认证(EAL4+)。

2.国外操作系统介绍

2.1.FreeRTOS

FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。

该操作系统由于简单和易用,在轻量级的CPU上目前很多厂商都用这个国外系统。

2.2.mbed OS

开源嵌入式操作系统,ARM公司将mbed OS免费提供给所有厂商使用,mbed提供了一个相对更加系统和更加全面的智能硬件开发环境。

提供用于开发物联网设备的通用操作系统基础,以解决嵌入式设计的碎片化问题。支持所有重要的连接性与设备管理开放标准,以实现面向未来的设计。使安全可升级的边缘设备支持新增处理能力与功能。通过自动电源管理解决复杂的能耗问题。

mbed OS开发速度快,功能强大,安全性高,为了量产化而设计,可离线开发,也可以在网页上编辑。

2.3.UCOS-II

μC/OS一Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位,16位和32位单片机或数字信号处理器(dsp)。它是在原版本μC/OS的基础上做了重大改进与升级,并有了近十年的使用实践,有许多成功应用该实时内核的实例。它的主要特点如下:

1)公开源代码,容易就能把操作系统移植到各个不同的硬件平台上;

可移植性,绝大部分源代码是用C语言写的,便于移植到其他微处理器上;

2)可固化;

3)可裁剪性,有选择的使用需要的系统服务,以减少所需的存储空间;

4)占先式,完全是占先式的实时内核,即总是运行就绪条件下优先级最高的任务;

5)多任务,可管理64个任务,任务的优先级必须是不同的,不支持时间片轮转调度法;

6)可确定性,函数调用与服务的执行时间具有其可确定性,不依赖于任务的多少;

7)实用性和可靠性,成功应用该实时内核的实例,是其实用性和可靠性的最好证据。

由于μC/OS -- Ⅱ仅是一个实时内核,这就意味着它不像其他实时存在系统那样提供给用户的只是一些API函数接口,还有很多工作需要用户自己去完成。

2.4.Zephyr

Zephyr项目是发展最快的实时操作系统(RTOS)之一,在其章程中为连接和受限设备确立了雄心勃勃的目标(了解详情>>),但它不仅仅是一个实时操作系统。它是一个开源和开放管理的项目,拥有完整且不断增长的生态体系,包括驱动程序、通信堆栈、硬件抽象、低功耗操作系统服务、构建系统和应用组件,允许快速创建创新的应用。

Zephyr的发展归功于支持该项目的不断增长的大型社区。他们的合作通过拉取请求、测试、bug报告、分类和RFC来推进项目状态。该项目最近庆祝了第二个长期支持版本(LTS2)的诞生。在LTS2发布时,该项目有1384个不同的贡献人,支持400块板和12种不同的架构。Zephyr具有可扩展性和开源性。

2.5.NuttX

NuttX可拓展的实时操作系统,在2017年由Gregory Nutt发布, 并在2019年正式进入Apache基金会,成为Apache孵化项目。它具备两大特点:

高度可扩展性:Nuttx支持8位到64位多种CPU,其功能全部可进行裁剪和配置,可根据需要选择所需的组件。

合规性:Nuttx的系统API原生支持标准POSIX接口和完整的C标准库,这让一些Linux/Unix 的程序可以很方便的移植到Nuttx中使用,而不需要做太多更改。

2.6.eCos

eCos即嵌入式可配置操作系统,是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。

最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。

eCos操作系统的可配置性非常强大,用户可以自己加入所需的文件系统。eCos操作系统同样支持当前流行的大部分嵌入式CPU,eCos操作系统可以在16位、32位和64位等不同体系结构之间移植。

由于本身内核就很小,eCos经过裁剪后的代码最小可以为10 KB,所需的最小数据RAM空间为10 KB。在系统移植方面 eCos操作系统的可移植性很好,要比μC/OS-II和μClinux容易。

参考文献

[1] 嵌入式系统专家之声:Azure RTOS 开源了,商业RTOS的未来在哪里?.2023.11.29.https://mp.weixin.qq.com/s/PP6AoXDpgFwt0RyRaDLDzw

[2] InfoQ:全球首款开源实时操作系统!开发了 20 多年、部署在超 120 亿台设备上的 ThreadX 正式开源.2023.11.30.https://mp.weixin.qq.com/s/iRXqa4VMR8BUmZUgPp1G6g

[3] strongerHuang:2023年RTOS榜单:国产RT-Thread入围,μCOS落榜.2023.10.27.https://mp.weixin.qq.com/s/8Kc6XjUZgL3rIvAeQKVS-A

[4] 何小庆.嵌入式实时操作系统的昨天、今天和明天.中国计算机学会通讯[J].2023.2-19.2

[5] NXP客栈:开源RTOS,我们为什么要选择Zephyr?最硬核的答案来了~.2022.1.28.https://mp.weixin.qq.com/s/AW9bQ5VZYc58r0Jm5jLrBw

[6] 嵌入式情报局:14种主流嵌入式操作系统,你认识几种?.2022.4.16.https://mp.weixin.qq.com/s/IPU_zkgAOVOEKnfqe4J20g