奇笛网 | 关注智能家居落地 奇笛网 | 关注智能家居落地

Zephyr计划推出Zephyr LTS,引入诸多前沿的新功能

发布于 2018/05/17-14:57 标签: / /

物联网设备数量庞大,种类繁多,带给设计者的挑战就是如何高效地进行产品开发?我们看到许多公司在为小型连接设备和嵌入式控制器付费,而且投资不同的实时操作系统解决方案,这就导致成本增加,耗时变长。如果有一款物联网操作系统可以打通硬件和软件的连接通道,代码将可以重复利用,开发者的设计难度将大大降低,效率大大提高。

Zephyr操作系统成员达到9家公司

Zephyr就是专门针对资源受限设备而推出的物联网实时操作系统,具有小型化、高度可配置、高度模块化的特性,其超微内核可以运行在小到2KB的代码空间上。为了满足物联网设备的多样性,自推出以来Zephyr不断进行升级完善,如今已经更新到v1.11版本,所支持的硬件架构不断增加,同时还配合芯片供应商支持数量庞大的开发板,这样可以为开发者提供更多的选择余地,避免工程师为了进行产品开发重新学习新的平台增加时间成本。最新版本所支持的架构达到7种,包括:包括x86架构、ARC架构、ARM架构、NIOS II 架构、RISC V架构、Xtensa架构和Native POSIX架构,几乎囊括了市面上的所有主流硬件架构。新版本所支持的开发板数量已经达到90种,提供的驱动程序达到247 种,贡献者人数达到95人。


Zephyr支持的架构、开发版、驱动程序、贡献者数量列表
在灵活性方面,Zephyr的模块化内核能够被剥离到各个组件,如果需要甚至可以只要超微内核。它的调度器在一定时间内按照优先级运行单一任务。如果两个优先级相同的任务在等待,调度器运行等待时间最长的那个。Zephyr操作系统给开发者提供了为指定线程分配优先级的能力,并在某些情况下给更高优先级的线程设置优先级的能力。
在连接方面,Zephyr支持完整的蓝牙5.0、蓝牙控制器、BLE Mesh、Thread,以及所有本地网络堆栈。另外,Zephyr已经将流行的OpenThread执行集成到Zephyr中,以便用户使用熟悉的Zephyr网络API无缝地与Thread网络交互,并可重复使用现有的802.15.4驱动程序。
由此可见,Zephyr 操作系统使用模块化和可配置的基础架构,在广泛的平台和架构中处理大量嵌入式示例,为用户打造了一套完整的解决方案,而不仅是其中的一个因素,这样可以降低成本,提高设计效率。因此,Zephyr是设计者的不二选择。
Zephyr 2018年发展路线图
今年年初,Zephyr也制定了本年度的发展路线图。首先要扩展应用示例和应用领域:包括工业、安全、安防,深入嵌入式应用,高级配置和使用示例涉及SMP和AMP(预计在1.12版本推出);其次在生态系统方面,Zephyr计划改进对Mac和Windows系统的支持,进行IDE集成,第三方工具加上追踪、分析、调试,以及LLVM、商业编译器(1.12版本);另外引入并支持Zephyr作为E2E平台,包括Bootloader、设备固件升级、云连接等,增加开发工具;在安全和安防方面,Zephyr将考虑开发模块和处理的安全性,保护并加强内核(1.12版本),符合MISRA-C 2012标准;标准API和可移植性包括POSIX Layer(PSE54),BSD socket(1.12版本)。
计划推出Zephyr LTS
在三月份举办的Open IoT Summit上, 来自Intel公司的Anas Nashif, Zephyr项目技术委员会主席,与大家分享了Zephyr LTS的计划。(演讲ppt 请参考https://schd.ws/hosted_files/elciotna18/2d/openiot_zephyr_lts_what_and_why.pdf )
什么是Zephyr LTS?回顾以往的基于功能的版本发布,它们更关注与强化现有的功能,而不是引入新的功能,进行前沿引领。Zephyr LTS更专注于产品,兼容新硬件,Zephyr将在整个开发周期中不时发布一些为新硬件提供功能支持的小的版本 (point releases);缩短开发窗口并延长Beta周期,以便于进行更多测试和错误代码修复;它是可认证的,为用户提供可审计分支的基础。
提到审计代码库,我们也可以稍做解释。

审计代码库将从Zephyr OS功能子集中建立一个审计代码库,两个代码库将从此保持同步,但是在新功能进入审计代码库之前,将执行更严格的流程(认证需要),初始的和后续的认证目标将由Zephyr项目委员会决定,实现选定认证的流程由安全工作组决定,并与TSC做协调;

578ba9e94c9e1ebe68bed306d343aa0d_173

FuSA、安全预认证路线图

FuSA、安全预认证路线图具有限制范围,它仅限于在官方支持和维护的代码,而且从最低层开始往上层走;遵循编码、风格指南、研发流程,符合MISRA-C(MISRA-C:2012);具有可移植性,支持POSIX API(PSE52、长字节 PSE54);具有定义良好且稳定的API;在稳健性和操作安全性方面,支持MMU和MPU,具有Thread 隔离和堆栈保护,增强和增加测试范围。

定义范围:目前的状态

Zephyr是一个托管在github上的one-tree项目,位于一个GIT库上,松散地遵循Linux内核研发模型并使用Linux配置系统(Kconfig),所有项目功能和硬件支持都是Zephyr的一部分,通过使用配置选项(Kconfig)包含/排除一些功能及硬件支持来实现模块化。Zephyr不提供源代码级别的模块化,对外部远程委托模块提供有限的支持,对out-of-tree的板和HAL(开发板、SoC、驱动等)提供有限的支持。Zephyr包括外部维护代码,例如:供应商HAL、库(加密、调试等)。

LTS:源码级别的模块化
按照需求,用户应该仅能“下载”和“看到”他们需要的示例模块,不用考虑XYZ HAL,如果用户正在某个特定架构上进行构建,他们不需要处理所有其它架构的HAL;
而且仅限内核模式,模块化直至内核和准系统,用户应该能够只使用内核和基础功能,不包含Zephyr中的其它内容。
审计代码的候选标准:
用于嵌入式系统的安全性、可移植性和可靠性的编码,包括MISRA-C:2012,修订版1,遵循MISRA C合规性:2016年指南。
针对安全性,包括IEC61508:2010(SIL 3,但可能是SIL 4),它最广泛的用于机器人和自动驾驶汽车工程公司,作为机器人领域中其他标准的参考;来自IEC61508的取样认证:医疗遵循IEC62304,自动化遵循ISO26262,轨道遵循EN50128。

在航空航天(FAA)领域,遵循DO-178C(DAL A是最高认证级别),它来自DO-178C的取样认证:无线电遵循DO-330至333,安全遵循DO-254。在安防领域,遵循通用标准(EAL4但可能更高水平EAL5,6)。其它医疗遵循FDA 510(K),ISO 14971,IEC 60601,工业遵循UL 1998等。

质量至关重要
质量是整个行业对软件强制性的期望,假设对Zephyr项目成员强制实施软件质量管理,且符合内部质量流程是预期的。软件质量不是由功能安全标准引发的额外要求,功能安全将质量视为已有的先决条件。
Zephyr LTS 流程:
首先确定LTS必须具备的功能特性;
根据以上特性,确定时间表和发布日期(建议1.12);
围绕LTS构建流程;
LTS作为长期目标,以及针对产品和认证推荐的Zephyr版本;
季度发布是短期的,可发布的里程碑导致LTS:AKA 工程,预览版
提供升级(错误代码修复和LTS到LTS+1);
生命周期:最初为2年;
LTS功能和要求:
在ARC、ARM和X86上,MMU/MPU支持存储保护和线程隔离,PSE52带有文件系统支持的嵌入式POSIX 配置文件,BSD 插口 API,在Linux、Mac和Windows上提供一流的支持。在OS意识和调试支持方面,挂钩用于追踪内核对象,内存和电源功能分析挂钩。
LTS要求必须具有蓝牙5.0,包括供应商和mesh扩展,可以完成蓝牙Mesh网络,支持FOTA 升级/DFU,包括BLE和IP 网络(LWM2M),支持LWM2M,支持引导加载程序(MCUBoot)。
其中内核隔离和堆栈的更底部分,用于审计和认证目标,对内核代码(Mini HAZOP)进行审查;同时支持第三方调试工具,包括OpenOCD和Systemview;增强的系统日志,支持不同后端;支持文件系统(除了FAT),支持多个文件系统、VFS。
LTS先决条件
网络API及用于协议(HTTP,…)的一致的API,必须具有稳定的驱动API,这需为1.12定义范围,比如:API版本控制和稳定 vs “实验性”,API范围测试。支持out-of-tree SoC和开发板,需要清除公共标题,需要实际样本,最好能有的LTS的功能,但不是必须的。
除了必须具备的功能,还有一些虽然不是必须却也是最好能有的, 比如:支持蓝牙5.0的广告延伸,抽象加密API;支持WIFI 卸载—插口级别,在插口级别或者更低级别的API(针对LTS需要更多讨论和决定);针对LTE设备的AT命令库;堆栈监测,监测/统计“服务”线程;文件系统支持(超越FAT),NFFS支持多闪存硬件/多闪存队列;支持第三方调试工具,追踪分析器—WIP/与percepio讨论;最好能有IDE集成(Eclipse);最好能有Zephyr 到Zephyr以及Linux到Zephyr 的OpenAMP;同时最好能有多核+引导加载程序构建。

总的来说,功能安全和安全需求需要与项目开源性质共存;在项目层面驱动质量,需要公开展示我们的质量流程和测试计划,通过质量管理发布流程来推动采用;
管理开发者和贡献者的期望;MISRA-C被认为是“邪恶的”,对于开源项目不够灵活;我们要继续在主树上进行创新,同时凝固和稳定Zephyr LTS。

———————-

关于Zephyr
Zephyr 项目是一款小型且可扩展的操作系统,尤其适用于资源受限的硬件系统,可支持多种架构;该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该系统进行二次开发,以支持最新硬件、工具和设备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备。
分享(

发表评论

奇笛网 | 关注智能家居落地

此文需注册才能阅读X

笛文共欣赏,疑义相与析

现在注册登录 或 使用社交帐户快速登入: QQ登录 新浪微博登录 腾讯微博登录

返回顶部 最酷视频
扫二维码
扫二维码

X

无须注册,直接使用社交帐号登录

忘记密码,找回

Loading 登录中...

没有帐号,注册

已有帐号,登录

Loading 注册中...

已有帐号,登录

发送中...