内存保护无MMU [英] Memory Protection without MMU

查看:226
本文介绍了内存保护无MMU的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何内存可以无MMU的支持保护。我试图谷歌,但还没有看到它的任何欢颜论文或研究。而那些对付它只处理它的错误,比如未初始化的指针,而不是内存损坏,由于软错误,那就是,由于硬件瞬时故障破坏写入到存储位置的指令。

I would like to know how memory can be protected without MMU support. I have tried to google it, but have not seen any worthwile papers or research on it. And those which deal with it only deals it for bugs, such as uninitialized pointers and not memory corruption due to a soft error, that is, due to a hardware transient fault corrupting an instruction that writes to a memory location.

我想知道这个的原因是因为我在一个专有的众核平台上工作,没有任何内存保护。现在的问题是,软件可以被用来保护记忆力,尤其对于野生写道,由于软误差修改(如由程序员不是错误)。任何帮助将是非常美联社preciated。

The reason I want to know this is because I am working on a proprietary manycore platform without any Memory Protection. Now my question is, can software be used to protect memory, especially for wild writes due to soft erros (as opposed to mistakes by a programmer). Any help on this would be really appreciated.

推荐答案

如果你正在寻找运行时内存保护理智的唯一的选择是硬件支持。硬件是不好的存储器存取介入它会造成损坏前的唯一途径。任何软件解决方案将是脆弱的,它试图以防范非常内存错误。

If you're looking for Runtime memory protection the sane only option is hardware support. Hardware is the only way to intervene in a bad memory access before it can cause damage. Any software solution would be vulnerable to the very memory errors it is trying to protect against.

通过软件你可能实行决策的论证/检测方案。你可以定期检查当前运行的程序不应该访问,看看他们是否已经改变(可能是CRCing这些领域)的内存部分。但当然,如果恶意程序破坏,其中校验举行的区域,或在检查程序的code举行,那么所有的赌注都关闭。

With software you could possibly implement a verification/detection scheme. You could periodically check portions of memory that the currently running program should not have access and see if they have changed (probably by CRCing these areas). But of course if the rogue program damages the area where the checksums are held, or where the checking program's code is held, then all bets are off.

即使这个软件解决方案,检查会更调试工具的不是永久保护运行。很可能没有MMU的设备是不会有多余的周期不断地检查设备内存中的小型嵌入式设备。

Even this software checking solution would be more of a debugging utility than a permanent runtime protection. It is likely that a device with no MMU is a small embedded device which won't have the spare cycles to be constantly checking the device's memory.

通常没有MMU的设备的设计,没有内核或其他任何运行单个程序,因此没有什么保护。如果您需要运行多个程序和感觉,你需要保护的,你可能需要一个更先进的硬件支持什么样的您正在寻找的功能。

Usually devices without MMUs are designed to run a single program with no kernel or anything else, and thus there is nothing to protect. If you need to run multiple programs and feel you need protection, you probably need a more advanced piece of hardware that supports the kind of features you're looking for.

这篇关于内存保护无MMU的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆