在相同的逻辑空间中映射os代码的原因?

时间:2013-06-25 11:09:13

标签: windows winapi operating-system kernel

我不明白是否有某些理由要映射 带代码的os模块(例如在win32中,我没有 知道它是如何在其他系统上) 逻辑空间作为运行用户进程。难道不 它更好/更清晰,而不是映射所有模块 进入大空间,但只是一些跳桌 kernell打电话或类似的东西。有一些吗? 有理由将它全部映射到大面积区域?

1 个答案:

答案 0 :(得分:2)

例如,在32位Linux上,通常配置地址空间,以便用户空间任务具有最低3GB的虚拟地址空间,并且内核具有最高1GB。这里的优点是,在进入系统调用时,不需要更改页表 - 因此没有TLB刷新,并且内核可以对用户空间任务进行有效的内存访问(使用适当的指针验证)。