我已经知道mprotect()系统调用在BSD中有4种保护模式,但我的问题是如何实现这种保护(硬件或软件实现)?
让我们说如果我们将特定页面的保护设置为PROT_NONE,它是否真的取决于我使用的硬件或者它的一些软件技巧,通过在指定的上设置一些标志页表中的页面。
似乎我们对MMU上的硬件保护有所不同,但我对此并不确定。
您可以在以下网址找到有关mprotect和分页的更多信息:
答案 0 :(得分:1)
页面保护在硬件中通过软件辅助实现。基本上,您希望实现以下目标:
mprotect
保证(这种情况发生在从第1页中触发的硬件陷阱处理程序调用的软件中)。是的,没有MMU p.1就行不通,所以在ucLinux(一个支持没有MMU的处理器的Linux版本)上没有实现mprotect
(因为它不可能调用来自第2页透明)。