【发布时间】:2012-01-30 20:39:20
【问题描述】:
在操作系统设计中,内核通常被映射到一个高位虚拟内存地址,从而获得对上层内存部分的控制。下面留下的空间用于在用户空间中运行的应用程序,如“Linux 3/1 virtual address split”中所述。
我想知道的是,为什么会做出这个设计决策,或者内核为什么不使用内存的下部?这对我来说不是很清楚,或者我可能监督了一些事情。
编辑:这个问题是关于虚拟地址而不是物理地址。
【问题讨论】:
-
只是一个猜测:一种约定,更容易记住应该保护哪些内存部分不受用户空间代码的影响
-
好的,但是内核的内存总是有限的,或者用户空间内存可能被浪费了。因此,当内核需要额外的内存(例如,用于加载模块)时,它可以分配和设置特定的权限来保护它(启用分页时)。