【发布时间】:2013-06-22 03:44:42
【问题描述】:
我不明白是否有一些理由来映射 带有代码的 os 模块(例如在 win32 中,我没有 知道它在其他系统上的情况)在同一 作为正在运行的用户进程的逻辑空间。不会 更好/更清楚,不要映射所有模块 进入大空间但只是一些跳表 kernell 调用或类似的东西。有没有一些 将其全部映射到大区域的原因?
【问题讨论】:
标签: windows winapi operating-system kernel
我不明白是否有一些理由来映射 带有代码的 os 模块(例如在 win32 中,我没有 知道它在其他系统上的情况)在同一 作为正在运行的用户进程的逻辑空间。不会 更好/更清楚,不要映射所有模块 进入大空间但只是一些跳表 kernell 调用或类似的东西。有没有一些 将其全部映射到大区域的原因?
【问题讨论】:
标签: windows winapi operating-system kernel
例如,在 32 位 Linux 上,地址空间通常配置为使用户空间任务具有底部 3GB 的虚拟地址空间,而内核具有顶部 1GB。这里的优点是在进入系统调用时,不需要更改页表 - 因此不会刷新 TLB,并且内核可以对用户空间任务进行有效的内存访问(通过适当的指针验证)。
【讨论】: