云顶网—科技资讯门户网

设为首页 加入收藏

云顶网—科技资讯门户网

热门关键词:  物联网  大数据  智能家居  天猫  智能门窗  
http://www.iotccc.com > 物联网 >

小型开源操作系统种类繁多,Zephyr针对资源受限设备开发脱颖而出

智能家居、可穿戴产品等小型物联网设备在选择操作系统的时候,往往面临自身内存资源不足的困境,虽然已经有一些开源操作系统解决方案适用于这些资源受限的设备,但是要寻求最佳的选择还需要深入研究。尽管有少数类似BSD(Berkeley Software Distribution)这样的替代方案,但是Linux已经成为事实上的开源操作系统。针对最小内存的基于Linux的平台有各种选择,如:Ubuntu Core/Snappy 和Android Things。
 
很多商业开源解决方案也适用于资源受限设备领域,但是他们都需要虚拟内存管理单元硬件。虽然这种硬件能够在物联网设备中找到,但是很多都利用了缺乏这种支持的微控制器。这些更小型的设备需要更紧凑的操作系统,可以利用几KB的RAM和大约十几KB的闪存。
 
现在,大多数紧凑型商业化实时操作系统都支持物联网,也提供或者与云服务合作提供物联网组件。也有一大批开源解决方案适用于这一领域。然而,它们不像商业化替代方案通常会提供长期支持,这些开源方案的支持有所不同。所有这些方案都包括网络协议堆栈,及顶层物联网协议支持。例如,许多项目可以在类似GitHub这样的软件资料库上找到,包括:RIOT, TinyOS, 和Mantis OS。Nano RK专门针对包含MicaZ Motes的FireFly传感网络平台。
 
物联网操作系统的支持背景各有不同
很多其它操作系统都有一个公司作为项目的支持者,像Arm的Mbed是具有专有组件的开源/闭源混合方案;像Silicon Labs的Micrium µC/OS是开源的双授权方案,但是如果要在产品中使用该操作系统,需要得到商业授权。

还有一些开源解决方案则具有公司背景或者组织背景,包括亚马逊的 FreeRTOS、Zephyr OS、Apache Mynewt、Thingsquare Contiki和华为的LiteOS。这意味着这些操作系统会持续向前发展,然而获得支持的程度可能会有很大不同。有些公司能为这些平台提供支持,如:英特尔的风河为Zephyr OS提供专业服务,这个操作系统最初就是基于风河的RocketOS进行开发的。
 
大多数开源平台采用更自由的BSD、MIT或者Apache授权。这些不需要公开源代码,但是它们必须在使用的源代码中包含版权声明。
 
 
 
针对像ISO 26262, IEC 61508, ISO 62304, SIL3/SIL4 IEC 或者甚至DO-178B的需要认证的应用程序,对某些平台会产生一些问题。这就是为什么商业RTOS经常成为平台的选择,无论是选择这些,或者是一个开发者可以获得有偿支持的开源平台。这些支持将包括长期的软件维护,错误修复,以及问题出现后可以寻求帮助的地方。
 
有些公司在这些场景下选择特殊的平台。来自Winttenstein的FresRTOS,其可兼容替代方案—SafeRTOS和OpenRTOS,它们基于相同的代码库,以实现兼容性。SafeRTOS已经被重写并且满足IEC61508安全标准的需求。OpenRTOS分享FreeRTOS内核代码,两者都有商业授权,并附带保修。
 
开发者寻找操作系统解决方案的时候,也想查看内置支持操作系统的语言。像Java、Ada和SPARK等程序语言,它们具有内置的多任务和内存管理功能。它们通常能够利用开源系统优势去提供这些服务,或者开发者能使用包含这种支持的runtime。
 
Zephyr资源受限设备应用中脱颖而出
Linux的成功很可能被复制到更紧凑的、面向物联网的操作系统解决方案,它们具有企业赞助商,如Zephyr OS、FreeRTOS、Contiki和LiteOS。它们也更可能成为物联网云服务提供商的选择。这些供应商可能需要支持宽泛的平台,但是往往不切实际。针对一个或者两个往往足以创建一个稳定的开发社区。
 
以Zephyr为例,它由Linux基金会支持,专门针对资源受限的小型物联网设备而推出,自推出以来,以开源性、灵活性和安全性受到物联网设备开发工程师的关注。关于内核,其可以运行在内存8KB 到512KB的设备上,并且能够针对特殊设备启用或者禁用任何功能数量;关于代码,Zephyr实际上没有Linux的代码,而是基于英特尔收购的风河Rocket物联网OS技术进行构建的;关于架构,Zephyr操作系统尽可能支持更广泛的架构,目前可以支持6种:x86架构、ARC架构、ARM架构、NIOS II 架构、RISC V架构和Xtensa架构。出于安全考虑,Zephyr操作系统可以集成第三方库和嵌入式设备,这样可以满足设计者的定制化需求,系统更加灵活。
 
关于开源,Zephyr制定了代码提交规则,已经吸引了众多开发者一起贡献内容。基于社区生态系统的平台优势,Zephyr向开发者提供的是开源管理和授权模式。为了进行有序的管理,Zephyr设立了两个级别的会员:铂金会员和银牌会员。铂金会员有一个董事会席位,可以决定项目的总体方向,银牌会员的代表是经过投票决定的,目标是保持其轻量级和灵活性,并利用开源开发的成熟方法。早期的会员包括英特尔公司、恩智浦半导体公司(已被高通收购)和美国Synopsys公司,后来又吸引了Linaro、Runtime.io和Nordic半导体的加入。
 
现在Zephyr已经更新到v1.10版本,从新版本开始,Zephyr项目已经迁移到CMake,这对于那些需要不同平台和不同开发环境的开发人员开说,Zephyr的易用性更强。这一更改保持了Kconfig原样,并用相应的CMakeList.txt替代所有Makefile。Kbuild提供的类似于DSL的Make语言被一组CMake 扩展所替代,这些扩展提供了简单的一对一Kbuild的功能的翻译,或引入了新的概念替代Kbuild概念。
 
关于Zephyr
Zephyr 项目是一款小型且可扩展的操作系统,尤其适用于资源受限的硬件系统,可支持多种架构;该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该系统进行二次开发,以支持最新硬件、工具和设备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备。