为什么内核使用高逻辑地址

Why kernels make use of the high logical address

对于 32 位 OS。 linux kernel占用高逻辑地址3~4GB(windows占用2~4GB)。 我想知道为什么设计者选择高地址,而不是0~1GB linux,因为内核实际上是在物理低地址,低逻辑地址的选择会导致更和谐logical/physical 关系。为什么不呢?

在PIC(Position-independent code)流行之前,有很多静态链接程序只能在指定地址加载,可能0x400000

为了兼容这些程序,内核一定不能获取地址space。所以内核位于高1G地址space.