感谢支持
我们一直在努力

在64位的Linux划分用户空间与内核空间大小

在/arch/x86/include/asm/page_64_types.h下有如下两行:


#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
#define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL)


这就是对空间大小的划分,在0xffffffff80000000之前的是给用户空间,在0xffffffff80000000之后的给内核空间,如果你现在手里有大约12G的内存想让内核态下可以使用大小10G的空间可以修改此值,将上面两句改为如下:


#define __START_KERNEL_map _AC(0xfffffffc00000000, UL)
#define KERNEL_IMAGE_START _AC(0xfffffffc00000000, UL)


然后,再将你的内核加载到连续的物理内存起始地址即可,这样内核就可以有16G寻址空间
物理地址分布情况可以查看e820的信息取得。

赞(0) 打赏
转载请注明出处:服务器评测 » 在64位的Linux划分用户空间与内核空间大小
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏