思想库
电子设计21109操作系统514403369 0

Zephyr物联网OS获得内存保护

2018年3月13日,
紧凑的Zephyr物联网操作系统现在利用了MPU和MMU支持的优势。

本文是其中的一部分TechXchangeRTOS:西风项目

西风项目是一个开源项目——一个针对低端物联网(IoT)的操作系统。它可以在小型微控制器和高端微控制器上运行。它也适用于在某些应用程序中提供物联网功能的虚拟机或容器。该项目与Linux基金会并且被更宽松的Apache 2.0许可所覆盖。

Zephyr操作系统的1.11版本现在是;它让开发人员利用MPU和MMU支持的优势。英特尔的Andrew Boie对这个功能做了很好的介绍嵌入式Linux会议及OpenIoT峰会在波特兰,Oreg。会议的赞助商包括Zephyr项目和其他物联网操作系统平台Apache的myNewt在商业支持下运行时该公司将myNewt整合到其基于云的物联网平台中。这些平台加入了商业产品,如Express Logic的ThreadX和Micrium的紧凑的物联网应用操作系统µC/OS家族,以及诸如此类的开源操作系统亚马逊的FreeRTOS

Zephyr 1.11也引入了对线程组的线程协议和使用OpenThread实现。这利用了现有802.15.4驱动程序的优势。新的操作系统还包括对PS352(实时控制器产品标准)配置文件的IEEE POSIX支持。

西风做广泛的参数检查,以确保数据被正确引用。

此外,它还包括无线设备固件升级(OTA DFU)支持使用蓝牙低功耗(LE)。这种集成包括对MCUmgr的支持,以及通常的MCUboot引导加载程序,该加载程序允许Zephyr图像通过BLE连接发送和编程。管理层还支持对文件系统的远程访问和检索内核统计信息。

但是回到记忆保护。

最初的Zephyr OS不支持内存保护。应用程序链接到操作系统,这个静态包中的所有代码都可以访问所有内存和I/O。错误和恶意代码很容易导致崩溃,因为大多数代码都是用C编写的,而且系统没有提供额外的保护。

一些微控制器仍然缺乏内存保护支持。Zephyr可能会很好地使用这些功能,但大多数流行的微控制器平台和所有微处理器平台都有内存保护,如果不是更高级的虚拟内存支持的话。Zephyr 1.11可以利用这些特性,并为堆栈溢出等错误提供高级错误检测,以及内存隔离。

Boie指出,Zephyr实现的诀窍在于需要将内存保护改进到最初不支持它的api中。资源是由指针而不是句柄引用的,这一事实使问题更加复杂。缺乏间接性意味着系统需要额外的有效性检查,以防止对垃圾数据的意外操作。

内存保护支持设计用于处理内存保护单元(mpu),就像在Arm的Cortex-M家族中发现的那样。MPU通常有固定的区域,这些区域可以限制访问或读写操作。在Cortex-A和x86平台上发现的内存管理单元(MMU)提供了虚拟内存支持,比MPU更强大。Zephyr支持可以使用任何一个,但不会利用比MMU可以提供的更高级的功能。目前,1.11版本支持ARM、ARC和x86架构。

它的方法允许将环境分为系统管理器和用户应用程序。后者可以被隔离,也可以与其他用户应用程序共享内存。整个系统是为在嵌入式系统中常见的静态配置而设计的。它还最小化了启动时间,因为已经创建了MPU/MMU配置—只需在启动时将其复制到硬件中即可。这减少了第三方在系统运行后危害系统的可能性。

Zephyr采用分层的方法来保护内存。第1层是引导时的MMU/MPU硬件设置。它可以保护代码,处理无意义的地址,并捕获空指针引用。第2层提供监督模式堆栈溢出检测。它使用一个页面来捕获堆栈溢出引用。第3层处理用户模式线程。用户线程以非特权模式运行,需要系统调用。这就是神奇之处。第4层是面向未来的,将解决虚拟内存支持和更多动态内存管理的问题。

这种方法假设所有的管理器模式代码,包括内核和设备驱动程序,都有对系统的完全访问权。作为内核一部分的工具链头和源代码被认为是可信的。由于Zephyr没有像线程优先级老化这样的特性,因此系统不能防止由于线程CPU不足而导致的拒绝服务(DoS)问题。

Zephyr的神奇之处在于系统API调用处理(见图).在运行实现代码之前,系统调用要经过大量的检查。它将封送进出系统调用的数据,除非系统已经在管理器模式下运行,在这种情况下,所有这些都将被忽略。部分魔术是用C宏来处理系统调用和结构的。

这种构建支持通过用于构建系统的脚本进行扩展,允许创建系统配置,以便在引导时将其复制到硬件内存管理系统中。这种方法允许很容易地添加新的系统调用。

总的来说,内存管理增强是优雅和高效的。它增加了一个非常需要的特性,这个特性在其他从头开始设计来支持mpu的操作系统中也可以找到。这项工作仍在进行中。需要动态内存和资源创建和管理的应用程序需要等待未来的增强。

从我们的合作伙伴

协同处理器体系结构:一种用于快速成型的嵌入式系统体系结构

2021年7月6日
编者注:尽管它以数字处理性能和吞吐量而闻名,但协处理器体系结构提供了嵌入式系统…

欢迎来到边缘

照片/图像学分(按显示顺序)。pinkeyes - stock.adobe.com, Monopoly919 - stock.adobe.com, proindustrial2 - stock.adobe.com。加入我们吧…

内置电源开关保护您的电源路径

电源开关提供从电压源或地到负载的电气连接。我们多样化的投资组合包括几种拓扑,从si…

机柜式电气外壳,简化严酷的环境保护

机柜式电气外壳简化苛刻的环境保护这些外壳提高可达性,仍然保护免受mois…

适用于恶劣环境的外壳材料

适用于恶劣环境的外壳材料。金属外壳通常不适合高度恶劣的环境……

声音你的意见!

本网站要求您注册或登录后发表评论。
目前还没有任何评论。想开始对话吗?

从我们的合作伙伴

协同处理器体系结构:一种用于快速成型的嵌入式系统体系结构

编者注:尽管它以数字处理性能和吞吐量而闻名,但协处理器体系结构提供了嵌入式系统…

欢迎来到边缘

照片/图像学分(按显示顺序)。pinkeyes - stock.adobe.com, Monopoly919 - stock.adobe.com, proindustrial2 - stock.adobe.com。加入我们吧…

内置电源开关保护您的电源路径

电源开关提供从电压源或地到负载的电气连接。我们多样化的投资组合包括几种拓扑,从si…

机柜式电气外壳,简化严酷的环境保护

机柜式电气外壳简化苛刻的环境保护这些外壳提高可达性,仍然保护免受mois…
Baidu