俗话说,免费是个好价钱,所以免费的开源实时操作系统(RTOS)似乎是个不错的交易。但对于物联网设备(如家庭自动化和可穿戴设备、医疗仪器和工业控制系统)和嵌入式开发者来说,它们通常不值得冒险。在决定之前,请确保了解使用开源而非商业RTOS的实际成本和陷阱。
1.可靠性
如果RTOS出现故障或行为异常,你的产品也会出现故障。即使RTOS故障可能不会导致人员受伤或死亡,也可能导致客户不满、销售不佳和产品召回。经过安全认证的RTOS让人相信它已经过彻底的审查、测试,并证明其性能符合预期。
2.安全
开源软件(OSS)是免费的,这意味着任何人都可以设计出一种颠覆它的方法。如果它被用于成功的商业产品,黑客的动机就会增强。OSS组件可能包含安全漏洞,可在使用这些组件的任何产品中利用。
3.独立
在嵌入式开发中,一些开放源码软件实时操作系统可以由商业组织修改和“指导”。这种独立性的丧失在任何与乘务组织不兼容的环境中都会引起担忧。例如,ARM Mbed OS仅适用于ARM处理器,因此它的使用是ARM的有效锁定。这限制了将来在不同微处理器上使用的选项。
4.性能
RTOS服务的速度会影响产品的性能和可靠性。尺寸也很重要。更小的代码大小可以使用成本更低的微处理器和更少的内存,并为应用程序代码留出更多空间。任何RTOS的性能都可以使用“线程度量”基准套件(此处描述)进行测量和量化。
5.缺少高级功能
OSS RTOS执行基本的RTOS服务,使嵌入式或物联网设备能够运行。商业RTOS通常提供额外的增值功能,以使应用程序运行更快,并使开发和调试更容易。其结果是一种更高效、更高性能的嵌入式/物联网产品,能够更快地进入市场,并在整个嵌入式开发生命周期内更加成功。
6.中间件
商业RTOS通常包括中间件,如嵌入式文件系统、TCP/IP网络堆栈、USB主机/设备支持、图形框架和IoT云服务接口。这些中间件组件可能可以与OSS RTOS一起使用,但通常不是由单个组织集成或支持的。然后,产品开发人员必须弥补“集成差距”,增加项目时间、成本和错误风险。
7.支持
OSS支持社区可能有帮助,也可能没有帮助。商业RTOS包括对商业产品的可靠、响应迅速的支持。商业RTOS提供商还保证API完全向后兼容,许可条款以合同形式固定,与OSS不同,不能单方面更改。
8.法律问题
在嵌入式开发中,与在商业产品中使用OSS RTOS相关的三个常见法律问题包括:
l 使用“未知血统软件”(SOUP),可能导致知识产权侵权
l 要求向开放社区披露与OSS结合或链接的专有代码
l 开发最佳实践通常不等同于“我们使用它是因为它是免费的”的产品责任
9.费用
其中许多陷阱会为内部培训、支持和集成带来额外成本。其他费用与法律问题有关,包括侵犯知识产权。这些成本可能是巨大的,忽视它们对商业企业来说可能是灾难性的。
10.没有商业压力使开源变得更好
最后,商业RTOS开发人员面临的竞争压力提供了继续投资于确定和满足客户需求的动力。这种基本的业务动态有利于RTOS用户,确保嵌入式开发人员能够从生存时间最长的最佳公司获得最佳产品。