免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6792 | 回复: 11

请教x86_64 linux系统的虚拟内存布局 [复制链接]

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2012-06-12 22:47 |显示全部楼层

RT. 32位系统的虚拟内存布局我很清楚, 所以不用回32位系统的情况了.

比较好奇64位系统那么大的虚拟地址空间, 其布局是什么样子的, 有没有人研究过?
另外, 64位系统的虚存布局和32位的相比较, 有哪些值得注意的地方或者区别. 求解答. 最好有图.

如果解答精彩, 求斑竹加精.

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2012-06-12 22:53 |显示全部楼层
先自顶一个. 点名要求牛人塑料袋给出精彩回复. 塑料袋, 塑料袋!

PS: 我现在手上木有linux x86_64系统, 不过 'cat /proc/process_pid/maps' 只能算是不离题的答案... 我想要的是根据cat出来的结果做个解释, 附图这样子.
拜之, 情切~

论坛徽章:
0
发表于 2012-06-12 23:47 |显示全部楼层
@塑料袋    {:2_172:}

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
发表于 2012-06-13 09:33 |显示全部楼层
我不知道,没接触过x86_64

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2012-06-13 13:13 |显示全部楼层
回复 4# 塑料袋


    ... 额. 好吧, 我查下资料. 你肯定是嫌太简单.

论坛徽章:
0
发表于 2012-06-13 13:28 |显示全部楼层
Documentation/x86/x86_64/mm.txt

QUOTE:


<previous description obsolete, deleted>

Virtual memory map with 4 level page tables:

0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm
hole caused by [48:63] sign extension
ffff800000000000 - ffff80ffffffffff (=40 bits) guard hole
ffff880000000000 - ffffc7ffffffffff (=64 TB) direct mapping of all phys. memory
ffffc80000000000 - ffffc8ffffffffff (=40 bits) hole
ffffc90000000000 - ffffe8ffffffffff (=45 bits) vmalloc/ioremap space
ffffe90000000000 - ffffe9ffffffffff (=40 bits) hole
ffffea0000000000 - ffffeaffffffffff (=40 bits) virtual memory map (1TB)
... unused hole ...
ffffffff80000000 - ffffffffa0000000 (=512 MB)  kernel text mapping, from phys 0
ffffffffa0000000 - fffffffffff00000 (=1536 MB) module mapping space

The direct mapping covers all memory in the system up to the highest
memory address (this means in some cases it can also include PCI memory
holes).

vmalloc space is lazily synchronized into the different PML4 pages of
the processes using the page fault handler, with init_level4_pgt as
reference.

Current X86-64 implementations only support 40 bits of address space,
but we support up to 46 bits. This expands into MBZ space in the page tables.

-Andi Kleen, Jul 2004

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2012-06-13 17:13 |显示全部楼层
回复 6# adam8157

so u ka. 虽然不太明白, 还是TKS.

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2012-06-13 17:15 |显示全部楼层
回复 6# adam8157


    Current X86-64 implementations only support 40 bits of address space,
but we support up to 46 bits. This expands into MBZ space in the page tables.


-----------------------------------------------------------------

不是48 bits而是40 bits吗? 还用了四级页表结构?

论坛徽章:
0
发表于 2012-06-14 11:30 |显示全部楼层

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-06-14 11:37 |显示全部楼层
captivated 发表于 2012-06-13 17:15
回复 6# adam8157

cat /proc/cpuinfo

物理地址和CPU有关, INTEL的
3xxx系列至强, 台式机和笔记本CPU
address sizes   : 36 bits physical, 48 bits virtual

5XXX系列至强:
address sizes   : 40 bits physical, 48 bits virtual

物理地址空间36bit或40bit
虚拟内存空间都是48bit
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP