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



如果一个进程调用代码执行,会发生什么?

在32位操作模式下,GDT是非平整使用的,可以完全使用分割。

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

有时我认为这是允许的。

但是,通常不是。

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

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

另外,GDT似乎是微不足道的。例如,Linux将所有进程的所有用户代码投入一个细分市场。

系统代码相同。

因此,在64位模式下,您甚至不需要一个指针即可呼唤另一个过程的代码。

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

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

您正在运行什么操作系统?

通常,您的操作系统在受保护的内存中运行您的过程,这意味着无法访问您的过程不拥有的内存。试图在虚拟内存之外访问内存会导致分割故障。要访问此类内存,您需要成为内核的一部分。

相关内容

  • 没有找到相关文章

最新更新