本文是本文的一部分TechXchange:RTOS:西风项目
Linux已经成为事实上的开源操作系统(OS),尽管也有像BSD (Berkeley Software Distribution)这样的小众替代品。各种版本的目标是最小内存平台,如Ubuntu核心/时髦的和Android的事情.
在这个领域中也有许多商业开源解决方案,但它们都需要虚拟内存管理单元(MMU)硬件。虽然这种硬件可以在许多物联网(IoT)设备中找到,但许多设备使用的微控制器缺乏这种支持。这些更小的设备需要一个更紧凑的操作系统,它使用几千字节的RAM和大约十几字节的闪存。
这些天,最小型商业实时操作系统(RTOS)支持物联网,提供或与云服务合作提供互联网组件。在这个领域也有大量的开源解决方案。然而,它们的支持可能不同,不像通常提供长期支持的商业替代方案。所有这些都包括网络协议栈,最重要的是物联网协议支持。
例如,许多项目可以在软件存储库中找到,比如Github防暴,TinyOS,螳螂操作系统.纳米RK专门针对包括MicaZ尘粒在内的萤火虫传感器网络平台。
公司的支持
还有许多人拥有赞助或支持这些项目的公司。有些是混合的开源/闭源解决方案,比如Arm的Mbed,它拥有专有组件。双重授权解决方案,例如硅实验室”MicriumµC / OS也是开源的,但是它们需要商业许可证才能在产品中使用操作系统。
其他有公司或组织支持的开源解决方案包括亚马逊FreeRTOS,西风操作系统,Apache Mynewt,ThingsquareContiki,华为LiteOS.这意味着操作系统将继续进行开发。然而,可以获得的支持数量可能会有很大差异。一些公司可以为这些平台提供支持,比如英特尔的风河专业服务西风OS。操作系统最初是基于风河的RocketOS.
这些开源平台中的大多数使用了更自由的BSD、MIT或Apache许可。它们不需要发布源代码,但是它们必须在应用程序使用的源代码中包含版权声明。
针对需要ISO 26262、IEC 61508、ISO 62304、SIL3/SIL4 IEC甚至DO-178B等认证的应用程序,这些平台可能存在问题。这就是为什么商业RTOS通常是选择的平台,或者是开源平台,开发者可以获得付费支持。这种支持将包括软件的长期维护、bug修复以及出现问题时可以求助的地方。
一些公司在这些场景中选择特定的平台。FreeRTOS-compatible选择从威腾斯坦-SafeRTOS和openrtos -为了兼容性从相同的代码库重新构建。SafeRTOS经过重写,符合IEC 61508安全标准的要求。OpenRTOS共享FreeRTOS内核代码。两者都有商业许可证,并附带保修。
寻找操作系统解决方案的开发人员可能还希望研究具有内置操作系统支持的语言。Java、Ada和SPARK等编程语言都内置了多任务和内存管理功能。他们通常可以利用操作系统来提供这些服务,或者开发人员可以使用包含这种支持的运行时。
Linux的成功很可能会被企业赞助的更紧凑、面向物物的操作系统解决方案复制,比如Zephyr OS、FreeRTOS、continki和LiteOS。它们也是物联网云服务提供商更有可能的选择。对于这些提供商来说,支持广泛的平台可能是可取的,但这往往是不切实际的。要创建一个可持续发展社区,瞄准一个或两个目标通常就绰绰有余了。
物联网开发人员也应该考虑安全问题。这个问题有很多方面,从使用TLS协议栈的安全通信到初始引导过程。解决方案的可信计算组的设备标识符合成引擎(DICE)提供一种从安全基础开始的方法。DICE可以独立于操作系统,但如果将这种支持集成并公开给运行在操作系统上的应用程序,就更有意义了。