免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3199 | 回复: 4
打印 上一主题 下一主题

BSD内核空间在虚拟内存的什么位置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-18 16:58 |只看该作者 |倒序浏览
看BSD设计与实现一书的时候说,是在虚拟内存的低端,有的地方又说是在3G-4G之间

看代码也没看出来在什么地方啊

论坛徽章:
0
2 [报告]
发表于 2007-07-18 17:29 |只看该作者
5.2节说 , FreeBSD把地址的前1G给内核使用
5.3节说 , FreeBSD把内核映射到地址空间的高端

到底什么意思

论坛徽章:
0
3 [报告]
发表于 2007-07-18 20:08 |只看该作者
看KERNBASE的定义,应该在 MACHINE/include/vmparam.h

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
4 [报告]
发表于 2007-07-19 14:03 |只看该作者
原帖由 japonensis 于 2007-7-18 16:58 发表
看BSD设计与实现一书的时候说,是在虚拟内存的低端,有的地方又说是在3G-4G之间

看代码也没看出来在什么地方啊


>>>是在虚拟内存的低端
在书上哪个位置?
我的认为是在物理内存的低端,虚拟内存的高端。虚拟内存在内核态主要使用mmu的存取访问保护。

论坛徽章:
0
5 [报告]
发表于 2007-07-20 16:00 |只看该作者
  FreeBSD使用KVM存放各种各样的内核结构体。在KVM中最大的单个实体是文件系统缓存。 那是与struct buf实体有关的映射。

  不像Linux,FreeBSD不将所有的物理内存映射到KVM中。 这意味着FreeBSD可以在32位平台上管理超过4GB的内存配置。事实上, 如果mmu(译者注:可能是指“内存管理单元”,“Memory Management Unit”) 有足够的能力,FreeBSD理论上可以在32位平台上管理最多8TB的内存配置。 然而,大多数32平台只能映射4GB内存,这只能是一个争论点。

  有几种机制可以管理KVM。管理KVM的主要机制是区域分配器 (zone allocator)。区域分配器管理着KVM的大块,再将大块切分为恒定大小的小块, 以便按照某一种类型的结构体分配。你可以使用命令vmstat -m 一览当前KVM分区使用情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP