如果我编写了一个尝试在每个可能的地址读取内存的程序,并且在“完整”的Unix上运行该程序,则它将无法访问所有物理RAM。但是操作系统如何阻止它呢?
我对小型CPU体系结构比较熟悉,在该体系结构中,任何汇编代码都可以访问所有内容。我不了解程序(内核)如何检测到此类恶意操作。
2
通常,MMU会确保您不能访问允许区域之外的内存。
—
ott--
好吧,MMU由程序集配置。因此,汇编代码可以更改MMU配置并访问其他内存页面,对吗?
—
nowox
仅当您以root身份运行代码时,这才是正确的。
—
ott--
您应该在其中了解页表和内核抽象。
—
Clarus
@ott:即使root也不能修改MMU(至少在Linux上不是)。只有内核可以。
—
Basile Starynkevitch 2015年