自1990年以来,Bill lamie亲自设计、开发和销售了三种成功的商业RTOS产品——Nucleus RTX、Nucleus PLUS和ThreadX,后两者在当今市场上仍然活跃。他的RTOS现在运行在超过25亿台嵌入式设备中,包括市场领先的消费品,如苹果iPhone和惠普的喷墨打印机。Bill还发明并实施了抢占门限,这是一种在管理关键资源时消除不必要的上下文切换的新方法, 最近Bill Lamie创建了PX5 RTOS ,开始新的创业创新旅程,以下是Bill 发表的社交网络上短文, 上一篇讨论了实时性、文档和处理器支持三个指标,本篇继续讨论工具、安全和网络能力三个指标。
像大多数严谨的开发人员一样,嵌入式开发工具每天对我的工作影响最大。这与Aspencore最近的嵌入式调查(2023年5月)研究一致,我个人最喜欢的开发工具是IAR的embedded workbench。PX5 RTOS的开发在很大程度上依赖于IAR bembedded workbench,特别是IDE、编译器、调试器、代码覆盖率和静态分析功能。所有这一切都集成在一个IDE,这真是太好了。更好的是,IAR工具套件的每个功能都是一流的。例如,我发现IAR调试器是最简单、功能齐全、最直观的使用(多年来,我已经使用了一百种不同的工具!)。我还发现IAR C编译器优化是最好的。IAR还提供功能安全和信息安全支持。大多数半导体供应商免费提供的Eclipse/GCC工具都很好。Arm开发工具也不错。然而,我的个人经验是,IAR工具非常优越,非常值得使用,许可证成本不高。
在运行时方面,我喜欢使用的另一个工具是Percepio的Tracealyzer。此工具可帮助您观察运行时发生的事情。我发现这在系统崩溃情况下特别有用——让您确切地看到崩溃前发生了什么,这极大地有帮助您找到原因。优化是另一个常见的案例,使用Tracealyzer查看代码关键区域的确切处理,将极大地帮助您了解如何改进代码。
调查显示,严谨的开发人员关心他们的工具,作为一名严谨的开发人员,我强烈建议您看看IAR Systems和Percepio!
安全仍然是嵌入式的热门话题之一,Aspencore最近的嵌入式调查(2023年5月)以第6名的排名证实了这一点。当然,在嵌入式中,总是存在安全真正意味着什么这样的问题。需要保护的内容价值在应用程序之间差异很大,基础硬件资源也是如此。正因为如此,将嵌入式安全性视为更多的细分的要求,而不是适用于所有设备和任何费用的最大要求,这通常是有帮助的。例如,银行所需的安全性与餐厅所需的安全性大不相同。
在嵌入式世界中,有各种各样的硬件资源可用于增强您的设备安全性——所有这些都需要对您的特定应用程序进行成本效益分析。以下是一些常用的功能:
· 防篡改
· 执行步骤锁定
· 故障阻力
· 仅从闪存执行
· 硬件堆栈限制保护
· 硬件看门狗定时器
· 真实随机数生成器(TRNG)
· 内存管理单元(MMU)
· 内存保护单元(MPU)
· 用于联网的安全元素(SE)或可信平台模块(TPM)
无论您拥有什么硬件功能,您都可以在软件中做一些事情来帮助提高安全性,包括以下内容:
· 确保安全的固件更新
· 硬化设备固件-所有代码都应该是100%的语句和分支决定测试
· 使用静态分析工具
· 使用更大的堆栈,直到验证它们可以更小
· 明确指定并检查所有缓冲区大小/边界
· 在使用之前验证所有C函数指针
· 切勿在I/O缓冲区中嵌入C函数指针
· 将堆栈放在重要数据区域(低内存地址)上方,因为它们通常溢出到低内存地址
· 在(高内存地址)重要数据区域后放置I/O缓冲区,因为它们通常溢出到高内存地址
· 在堆栈和缓冲区之间使用cookie来帮助检测损坏
利用您的硬件资源以及遵循软件中的一些最佳实践将有助于您提高设备安全性。还要记住,所有措施——在设备端和设备所在的网络层面——都是整体防御策略的一部分,唯一的目标是让对手越来越难以获得不必要的访问。
网络能力是Aspencore最近的嵌入式调查(2023年5月)中的一个问题。连接的设备数量不断增加。在20世纪90年代初,当我第一次编写并介绍Nucleus RTOS时,情况并非如此。当时,我们可能有10-20%的客户需要网络能力。与此形成鲜明对比的是,当今大多数基于RTOS的设计都需要连接。当然,网络连接也需要安全性——这是本次调查的前一个主题。RTOS提供基本的TCP/IP是不够的,它还必须具备所有必要的安全功能,包括软件加密库和TLS功能。此外,RTOS本身应该具有内置的功能安全和信息安全功能,以帮助检测和缓解内存损坏,这反过来又可以帮助阻止未经授权的访问。严谨的开发人员知道,安全性一定是任何网络连接解决方案不可分割的一部分!
原文链接:https://mp.weixin.qq.com/s/JCoUeqBdpNzSQtUlkbhmrA