这可能是一个愚蠢的问题,但它突然出现在我的脑海中。所有有关进程地址空间和虚拟内存布局的文本都提到进程地址空间
为内核保留的空间。例如在 32 位系统上,进程地址空间为 4GB,其中 1GB 为 Linux 中的内核保留(在其他操作系统上可能有所不同)。
我只是想知道当进程无法直接寻址内核时为什么说内核位于进程地址空间中。为什么我们不说内核具有与进程不同的地址空间,为什么我们不能为内核本身拥有一个与进程的页表分开的不同页表?
当进程进行系统调用时,我们不需要切换页表(从进程地址空间页表到内核地址空间页表)来为系统调用提供服务(这应该只在内核模式下完成)。这就是说内核是在进程上下文中运行的。
一些不在进程上下文中运行的内核事件将仅为内核加载页表。
Got it ?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)