如果进程调用代码执行到属于另一个进程的远指针会发生什么?
在32位操作模式下,GDT非常简单,可以充分利用分割。
那么,如果请求的CS指针指向另一个进程的段,会发生什么?
我认为有时这是允许的。
但是,通常情况并非如此。
在64位模式下,分段已中途关闭。
所有段从0运行到处理器的线性空间顶部。
此外,GDT似乎很容易使用;例如,Linux将所有进程的所有用户代码抛出到一个段中。
系统代码相同。
因此,在64位模式下,你甚至不需要一个远程指针来调用另一个进程的代码。
也许我的问题可以归结为:
当进程试图调用另一个进程的代码时会发生什么?
答案 0 :(得分:0)
你在运行什么操作系统?
通常,您的操作系统在受保护的内存中运行您的进程,这意味着无法访问您的进程不拥有的内存。尝试访问虚拟内存之外的内存会导致分段错误。要访问这样的内存,您需要成为内核的一部分。