嵌入式开源软件的十大弊端
俗话说得好,“得来全不费功夫”,免费当然是个好事情了。既然是免费的, 开源的实时操作系统(RTOS)看起来是个不错的选择。 但是对于嵌入式设备和物联网设备的开发者来说, 有时并不愿轻易涉足, 比如家居自动化和可穿戴设备, 医疗仪器和工业控制系统。 在决定之前, 需要了解使用开放源码的真正成本和弊端。
1.可靠性
如果 RTOS 失败或者行为出人意料, 会导致产品的异常。 即使一个 RTOS 故障可能不会导致异常或挂掉, 也可能会导致顾客不满, 销售不佳甚至产品召回。 一个安全认证的 RTOS 提供了信心, 由于经过彻底的审查, 测试和验证, 一般能够满足预期。
2.安全性
开放源码软件(OSS)是免费提供的, 这意味着任何人都可以设计出破坏它的方法。 如果被用于一个成功的商业产品, 黑客的动机可能会增强。 开放源码软件组件可能包含安全漏洞, 这些漏洞可能被别有用心的人加以利用。
3.独立性
一些 OSS 的RTOS可能被一个商业组织修改和"屏蔽"。 类似独立性的丧失在任何与管理组织不兼容的环境中可能是一下担忧。 例如, ARM Mbed OS 仅适用于 ARM 处理器, 是 ARM 的有效锁定。 这限制了未来在不同微处理器上使用的选项。
4.性能
服务的速度会影响产品的性能和可靠性。 规模也很重要,较小的代码大小可以使用成本较低的微处理器和较少的内存, 并为应用程序代码留下了更多的空间。 任何 RTOS 的性能都可以用"线程度量"基准套件来衡量和量化。
5.先进的功能
开源软件的 RTOS 执行基本的服务, 使嵌入式或物联网设备能够正常工作。 商业 RTOS通常提供额外的增值特性, 使应用程序运行更快, 并使开发和调试更容易。 这会导致一个更有效率、更高性能的嵌入式 / 物联网产品, 能够更快地进入市场, 并在其整个生命周期中更加成功。
6.中间件
商业 RTOS通常包括嵌入式文件系统、 tcp / ip 网络堆栈、 USB 主机 / 设备支持、图形界面框架和 IoT 云服务接口。 这些中间件组件可能可以与一个开源软件的 RTOS 一起使用, 但是通常不是由一个单一的组织集成或支持的。 最后, 产品开发人员需要弥合"集成差距", 可能导致增加项目时间、成本和错误风险。
7.技术支撑
开放源码软件支持社区可能会有所帮助ーー或者不能。 一个商业的 RTOS 包括对商业产品的可靠、响应性支持。 商业的 RTOS 提供商还保证 API 中的完全向后兼容, 许可条款以合同形式确定, 不能单方面改变,开放源码软件一般不是这样的。
8.法律考量
在商业产品中使用开放源码软件(OSS RTOS)的三个常见法律问题包括:
使用"不明来源软件" , 可能导致知识产权侵权
要求向开放社区披露与开放源码软件相结合或与开放源码软件链接的专有代码
产品开发的最佳实践并不等同于"我们使用它是因为它是免费的"
9.成本
开源软件的使用为内部培训、支持和整合带来了额外的成本。 其他成本涉及法律问题, 包括侵犯知识产权。 这些成本可能是巨大的, 忽视它,可能对一个商业企业来说是灾难性的。
10.商业活力
商业的 RTOS 开发商所面临的竞争压力为继续投资于确定和满足客户需求提供了动力。 这种基本的商业活力有利于 RTOS 用户, 保证他们能够从最好的公司获得最好的产品。
编译自:https://rtos.com/wp-content/uploads/2018/01/ELPitfallsofOpenSource_Software.pdf