我想知道如何在没有 MMU 支持的情况下保护内存。我尝试用谷歌搜索它,但没有看到任何有价值的论文或研究。那些处理它的人只处理错误,例如未初始化的指针,而不是由于软错误而导致的内存损坏,即由于硬件瞬态故障损坏了写入内存位置的指令。
我想知道这一点的原因是因为我正在一个没有任何内存保护的专有多核平台上工作。现在我的问题是,软件可以用来保护内存,特别是由于软错误(而不是程序员的错误)引起的狂野写入。对此的任何帮助将不胜感激。
如果您正在寻找运行时内存保护,唯一的选择是硬件支持。硬件是在不良内存访问造成损坏之前对其进行干预的唯一方法。任何软件解决方案都容易受到它试图防止的内存错误的影响。
通过软件,您可以实现验证/检测方案。您可以定期检查当前运行的程序不应访问的内存部分,并查看它们是否已更改(可能通过对这些区域进行 CRC 校验)。但是,当然,如果流氓程序损坏了保存校验和的区域,或者保存检查程序代码的区域,那么所有的赌注都会失败。
即使这个软件检查解决方案也更像是一个调试实用程序,而不是永久的运行时保护。没有 MMU 的设备很可能是小型嵌入式设备,它没有空闲周期来不断检查设备的内存。
通常,没有 MMU 的设备被设计为运行没有内核或其他任何东西的单个程序,因此没有什么可以保护的。如果您需要运行多个程序并感觉需要保护,您可能需要更先进的硬件来支持您正在寻找的功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)