首页 / LINUX / Linux 3/1虚拟地址拆分
Linux 3/1虚拟地址拆分
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux 3/1虚拟地址拆分,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1241字,纯文字阅读大概需要2分钟。
内容图文
在了解highmem需要超过1GB的RAM时,我遗漏了一些东西.有人能指出我哪里出错吗?谢谢!
我知道的:
> 1 GB的进程虚拟内存(高内存区域)保留用于内核操作.用户空间可以使用剩余的3 GB.这是3/1分裂.
> VM的虚拟内存功能将(连续)虚拟内存页面映射到物理页面(RAM).
我不知道的是:
>哪些操作使用内核虚拟内存?我想像内核空间中的kmalloc(…)这样的东西会使用内核虚拟内存.
>我认为在这个方案下可以使用4GB的RAM.我不明白为什么内核1 GB虚拟空间是解决物理空间时的限制因素.这是我理解失败的地方.请指教.
我一直在读这篇文章(http://kerneltrap.org/node/2450),这很棒.但它并不能完全解决我的问题.
解决方法:
内核虚拟空间是可用物理内存限制因素的原因是因为内核需要访问所有物理内存,而它访问物理内存的方式是通过内核虚拟地址.内核不使用允许直接访问物理内存位置的特殊指令 – 它必须为要与之通信的任何物理范围设置页表条目.
在“旧式”方案中,内核进行设置,以便每个进程的页表直接将0xC0000000到0xFFFFFFFF的虚拟地址映射到从0x00000000到0x3FFFFFFF的物理地址(这些页面被标记为只能在环0 – 内核中访问它们模式).这些是“内核虚拟地址”.在这种方案下,内核可以直接读写任何物理内存位置,而无需使用MMU来改变映射.
在HIGHMEM方案下,从内核虚拟地址到物理地址的映射不是固定的 – 物理内存的一部分被映射到内核虚拟地址空间内外,因为内核需要访问该内存.这允许使用更多的物理内存,但代价是必须不断地改变虚拟到物理映射,这是非常昂贵的操作.
内容总结
以上是互联网集市为您收集整理的Linux 3/1虚拟地址拆分全部内容,希望文章能够帮你解决Linux 3/1虚拟地址拆分所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。