目前的位置: 首页 学术信息 正文

ZDS 2023技术报告分享第1篇:嵌入式开源巨星Zephyr的九年征程


前言:

2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。


作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。


湖南大学嵌入式计算湖南省重点实验室(以下简称“湖大嵌入式实验室”)是国内Zephyr RTOS开发的主要力量之一,在基于Zephyr RTOS的虚拟机开发、Zephyr RTOS对AI推理框架与嵌入式SoC芯片的支持等方面取得了关键技术创新,其中“基于Zephyr RTOS的虚拟机”在ZDS 2023上进行了分享。依托湖大嵌入式实验室的研发力量,湖南大学于2023年7月正式成为了Zephyr项目的Associate Member ,实验室将进一步发挥已有的Zephyr开发优势并促进Zephyr在国内的发展,也渴望与全球嵌入式开发者一起协作,为Zephyr的开发和完善贡献我们的力量。


ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。


今天分享第1篇技术报告,题目为:

“嵌入式开源巨星Zephyr的九年征程”




9A19

作者简介:

Anas Nashif是英特尔公司的首席软件工程师,承担了Zephyr项目中多个子系统和领域的上游维护工作,同时也是Zephyr技术指导委员会的主席。2015年至今,Anas一直参与着Zephyr项目的开发和维护。


这篇文章以Anas Nashif的演讲为主要依据,将揭示Zephyr背后的故事及其如何成为最活跃的开源项目之一。我们将深入探讨Zephyr的背景,发布过程,发展成果,解释其发展至今的原因,例如项目结构、许可证、架构和项目的一般运作。此外,本文将简单介绍Zephyr目前的进展,以及项目启动时设定目标的完成情况,并展望未来,探讨Zephyr的发展方向。




发展历程:

Zephyr项目由英特尔在2014年发起,并于2016年以Linux基金会项目的身份公开启动,得到了Synopsys、NXP和Wind River的大力支持。

8E06

21181

First commit


2015年11月,Wind River推出Zephyr商业版本,这是一款和Zephyr紧密联系的下游版本,负责与Wind River Helix App Cloud进行操作系统配置和硬件集成,为简化的开发体验提供支持。

144AB




发展成果:

时至今日,Zephyr社区贡献者高达1647人次,累积提交改进革新超过8万次,发布Architectures (ISA)13种,目标用户和适配平台超过500个,拥有两个长期版本支持,贡献代码超过1Mio行,开源项目和闭源项目分别达到376和11217之多。贡献者们的累计合并需求超过4万余次。


62A9



进展和发布面向开源化的工作:

到2016年发布版本(1.0.0)时,我们已经有大约7000次提交,此时Zephyr代码树中的第一次提交是2200次提交的总和(合并为一次单独的提交)。在这些提交之前,还需要进行总体清理,为开源做准备,构建系统彻底改进,Kconfig配置系统,Kbuile构建系统,设备模型,功能减少(删除不需要的功能),添加对发布硬件的支持,实现首批API和驱动程序等等工作。当然最后必不可少的,就是为我们的系统选择合适的名字。Zephyr由此诞生。


E8D




项目的重大转型及转变:

最初Zephyr构建系统时,采用的是基于Makefile的自定义方法;后来一段时间尝试了使用Kbuild进行构建;但最终,决定使用Cmake进行构建。网络部分则由Contiki堆栈转向本地实现,内核部分从Nano和Micros内核转向统一内核,代码审查系统也从Gerrit转向Github,乃至可持续集成平台也从Shippable转向了Github Actions。


内核模型的更改是Zephyr项目具有里程碑意义的事情。此前双内核模型存在的问题:nanokernel/microkernel 分离不直观,双重上下文切换影响内核性能(速度和占用空间),nanokernel和microkernel之间对象类型的重复,系统初始化在空闲任务中运行,在切换到统一内核之后得到了解决。nanokernel支持“可抢占线程”,将fibers和tasks统一为一种线程类型,去掉了Microkernel服务器,允许协作线程在所有类型的对象上运行,澄清了重复的对象类型,创建了一个新的、更加简化的API,且没有损失功能性。


20EAE



192B7

2016年2发行时的板级支持情况


52477

现在可以支持的板级情况


回顾Zephyr的发展历程,从最初的只能在Arduino101、FRDM-K64F、Arduino Due和Intel Galileo上面集成发展到有更多适配的板子和服务器平台,包括风车动力发电等等。Zephyr的发展历经艰辛却又充满活力。


一个不断发展和自我支持的开放生态系统是指一个开源项目所形成的生态系统,它具有持续发展和自我支持的能力。在这样的生态系统中,开源项目吸引了广泛的贡献者和用户,不断地吸收新的创意和技术,同时为社区成员提供了丰富的资源和机会,促进项目的长期稳定和持续发展。而这也是Zephyr能够实现蓬勃发展的动力源泉。


780C


文章的最后,作者指出:为了保持项目健康,扩大规模以支持不断增长的用户群、贡献者和成员,我们需要关注用户和开发者的体验感,简化版本迁移过程,维持稳定且丰富的API,不断追求项目的安全性和安全目标,鼓励和支持更多的用户和产品使用LTS版本,并提出将在2024年发布第三个LTS版本。我们将继续努力,为Zephyr项目的成功和持续发展贡献我们的力量,让Zephyr成为嵌入式领域的引领者和创新平台。




后记:

九年的时间里,Zephyr项目从最初的起步,逐步发展成为一个活跃且受欢迎的开源项目。项目从最初的BSD许可证转变为Apache 2.0许可证,并吸引了来自全球范围的合作伙伴和贡献者。通过持续的创新和努力,Zephyr逐渐成为了一个灵活、可扩展且功能丰富的嵌入式实时操作系统。项目已经在嵌入式领域取得了巨大的成就,吸引了广泛的用户和贡献者,拥有一个强大的全球社区。通过继续关注用户和开发者的体验感,简化版本迁移过程,维护稳定且丰富的API,以及持续加强项目的安全性和稳健性,Zephyr必将持续成长壮大。


Zephyr的未来发展还需要我们共同努力。我们将持续参与Zephyr项目,通过与全球开发者共同合作,为Zephyr的开发和完善贡献我们的力量,共同见证这个优秀开源项目的蓬勃发展。




上一条:ZDS 2023技术报告分享第2篇:Zephyr日志子系统概述 下一条:RK3568:人气爆款,炙手火热

关闭

嵌入式与网络计算湖南省重点实验室
版权所有 © 2023 湖南大学