2
操作系统如何检测内存访问冲突
操作系统(最好是Linux)如何知道您访问了不允许访问的内存位置? 这个问题的灵感来自那些该死的指针!我的看法是:计算机中的所有内容都涉及速度,安全性,完整性等方面的折衷。 我非常了解Linux中的内存映射,但是每次内核访问内核时,内核都会检查您尝试访问的位置是否位于有效范围内,这听起来有点荒谬。听起来这会浪费很多时间,而这可能会花费在做一些更有生产力的事情上(但是如果不做检查的话,安全性可能会降低!)。还是它会记住所有最近的访问并在每个硬件计时器滴答时检查它们?(但这听起来不安全,但又慢了。) 我很惊讶这个问题似乎在任何地方都没有答案。这是我一直想知道的事情。这让我认为有一部分硬件可以很好地,方便地抽象代表操作系统。但是,仍然可能需要在每个上下文切换上加载下一个进程的内存映射,这听起来还是很慢。 所以是的,无论如何,我要继续讲一点:操作系统如何检测到内存冲突? 谢谢