打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
为什么要有内核虚拟地址?
       在32位系统中,内核地址空间从0xC0000000开始,前896M叫做内核逻辑地址,后128M叫做内核虚拟地址。内核逻辑地址与物理内存进行线性映射,而内核虚拟地址则进行动态映射。那为什么需要这128M的内核虚拟地址?
假设你的机器有2G的内存,如果不存在内核虚拟地址,内核地址空间全部采用线性映射的方式映射到物理内存的头1G,要知道物理内存是有可能被各个用户进程使用的,这就可能导致当内核想分配内存的时候,会发现物理内存的头1G已经没有空闲内存了,而后1G却有空闲空间,但是此时内核是无法触及后1G的物理内存的,因此这时候就需要内核虚拟地址,通过动态映射来使用全部的物理内存。
至于64位系统就不存在这样的问题了,因为内核地址空间远大于实际的物理内存。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
PAE真的能提升虚拟地址空间吗
Linux内核--内核地址空间分布和进程地址空间
LINUX内核内存管理kmalloc,vmalloc
linux环境内存分配原理
linux中的物理地址和虚拟地址 (转载)
Linux内存管理 下
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服