如果进程调用属于另一个进程的代码会发生什么?

时间:2017-09-13 04:05:23

标签: memory-management segment gdt

如果进程调用代码执行到属于另一个进程的远指针会发生什么?

在32位操作模式下,GDT非常简单,可以充分利用分割。

那么,如果请求的CS指针指向另一个进程的段,会发生什么?

我认为有时这是允许的。

但是,通常情况并非如此。

在64位模式下,分段已中途关闭。

所有段从0运行到处理器的线性空间顶部。

此外,GDT似乎很容易使用;例如,Linux将所有进程的所有用户代码抛出到一个段中。

系统代码相同。

因此,在64位模式下,你甚至不需要一个远程指针来调用另一个进程的代码。

也许我的问题可以归结为:

当进程试图调用另一个进程的代码时会发生什么?

1 个答案:

答案 0 :(得分:0)

你在运行什么操作系统?

通常,您的操作系统在受保护的内存中运行您的进程,这意味着无法访问您的进程不拥有的内存。尝试访问虚拟内存之外的内存会导致分段错误。要访问这样的内存,您需要成为内核的一部分。