誰かがメモリマッピングがどのように実行されるかを理解するのに役立ちますか?
これを経験した
Linuxに実際にインストールされているよりも多いか少ないメモリが表示されるのはなぜですか?
しかし、私はまだそれをよく理解していません。
2Gb DDR3 RAMと3.2.0-39-genericでUbuntu 12.04を使用する
free -k
total used free shared buffers cached
Mem: 2012040 1726616 285424 0 2612 245560
-/+ buffers/cache: 1478444 533596
Swap: 2057212 745152 1312060
2GB(KB):
2097152
2097152-2012040=85112
Memory used by kernel
dmesg|grep Memory
(6571k kernel code, 452k absent, 63360k reserved, 6632k data, 920k init)
6571+452+63360+6632=77015k
85112-77015=8097k
この8Mbの中古RAMはどこで見ることができますか?デバイスがDMA経由で使用されている場合は表示されますか?
また、予約とは、BIOS用に予約されたメモリを意味しますか?
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[ 0.000000] BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000007da08c00 (usable)
[ 0.000000] BIOS-e820: 000000007da08c00 - 000000007da5cc00 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007da5cc00 - 000000007da5ec00 (ACPI data)
[ 0.000000] BIOS-e820: 000000007da5ec00 - 0000000080000000 (reserved)
[ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fed00400 (reserved)
[ 0.000000] BIOS-e820: 00000000fed20000 - 00000000feda0000 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fef00000 (reserved)
[ 0.000000] BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] SMBIOS 2.5 present.
[ 0.000000] DMI: Dell Inc. OptiPlex 380 /0F0TGN, BIOS A05 02/24/2011
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[ 0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
dmesg|グレブメモリ
Memory: 1994460k/2058272k available (6571k kernel code, 452k absent, 63360k reserved, 6632k data, 920k init)
ベストアンサー1
一度見て、カーネルの仮想メモリシステムが初期化される前に、元のブートメモリアロケータを使用して仮想メモリを管理するために必要な構造のようなものを割り当て、ブートアロケータが消費するページはそうではないと結論付けたようです。正しく。