Linux虚拟内存布局和物理内存

时间:2015-08-19 07:26:04

标签: linux linux-kernel linux-device-driver

我有一个基于linux的嵌入式设备。该设备具有2GiB的RAM。我想获得尽可能多的内存来在用户空间应用程序中进行memtest。

1)通过/ proc接口我只获得1.1GiB的内存。想了解剩余的0.9 GiB在哪里。它是由内核承担的吗?

2)当内核启动时,它会打印以下虚拟内存布局: < 5>虚拟内核内存布局: < 5个向量:0xffff0000 - 0xffff1000(4 kB)\

< 5个fixmap:0xfff00000 - 0xfffe0000(896 kB)\

< 5个vmalloc:0xd0800000 - 0xff000000(744 MB)\

< 5个lowmem:0xc0000000 - 0xd0000000(256 MB)\

< 5个pkmap:0xbfe00000 - 0xc0000000(2 MB)\

< 5个模块:0xbf000000 - 0xbfe00000(14 MB)\

< 5个.text:0xc0008000 - 0xc063ab68(6347 kB)\

< 5个.init:0xc063b000 - 0xc0677dc0(244 kB)\

< 5个.data:0xc0678000 - 0xc06bfc90(288 kB)\

< 5个.bss:0xc06bfc98 - 0xc071fa68(384 kB)\

如果我总结括号中的所有列出的记忆"()",它大致等于0.9GiB。在我的第一个问题中,我想知道0.9GiB的用途在哪里。我现在可以安全地假设它完全被内核占用了吗?

3)内核还打印以下行: < 4>内存:185308K / 2093056K可用(4774K内核代码,287K rwdata,1572K rodata,243K初始化,383K bss,保留60452K,1847296K cma-reserved,0K highmem)

185308k / 2093056K ==> (〜180MiB /〜2GiB)。无法得到这个。为什么内核打印出180MiB在2GiB中可用?它不符合上面的0.99GB布局?什么是cma-reserved?

非常感谢, 爱默生

0 个答案:

没有答案