0

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

在 32 位操作模式下,GDT 的使用非常重要,分段可以充分使用。

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

有时这是允许的,我想。

但是,一般不是这样。

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

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

此外,GDT 似乎被简单地使用了。例如,Linux 将所有进程中的所有用户代码放入一个段中。

系统代码也一样。

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

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

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

4

1 回答 1

0

你在运行什么操作系统?

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

于 2017-09-13T04:12:59.690 回答