मैं डेबियन स्क्वीज़ (x64) चला रहा हूँ:
# uname -srvmo
Linux 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux
मेरे पास G31M-S मदरबोर्ड में DDR2 के 2 संगत 2 जीबी स्टिक्स हैं । यह 8GB तक का समर्थन करता है:
चूंकि यह एक सर्वर है, मैं वास्तव में ग्राफिक्स के बारे में परवाह नहीं करता हूं। इसलिए मैंने इसे सबसे कम पर सेट किया।
Internal Graphics Mode Select: Auto
Enabled, 1MB <--
Enabled, 8MB
DVMT Mode Select: Fixed Mode <--
Auto
DVMT/FIXED Memory: 128MB <--
256MB
हालाँकि, लिनक्स केवल 3.19GiB मेमोरी का पता लगा रहा है:
# cat /proc/meminfo
MemTotal: 3350712 kB
...
E820 के नक्शे को देखते हुए :
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000cfdb0000 (usable)
[ 0.000000] BIOS-e820: 00000000cfdb0000 - 00000000cfdc0000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000cfdc0000 - 00000000cfdf0000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000cfdf0000 - 00000000cfe00000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] BIOS-e820: 00000000ff380000 - 0000000100000000 (reserved)
[ 0.000000] DMI present.
[ 0.000000] AMI BIOS detected: BIOS may corrupt low RAM, working around it.
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
और थोड़ा गणित कर रहा है:
>>> ((0x9F800 - 0x10000) + (0xCF6B0000 - 0x100000)) / 1024.0 / 1024.0 / 1024.0
3.240476608276367
हमें बस एक ही जवाब मिलता है।
मैं क्या खो रहा हूँ?
मैं "PCI एड्रेस स्पेस" तर्क को पूरी तरह से नहीं खरीद रहा हूँ। दो 2GB में से एक को बाहर निकालकर, सेटअप स्क्रीन 2048MB दिखाता है।
# cat /proc/meminfo
MemTotal: 2058432 kB
वह 1.96GB की है।
E820 मानचित्र फिर से:
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000007fdb0000 (usable)
[ 0.000000] BIOS-e820: 000000007fdb0000 - 000000007fdc0000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007fdc0000 - 000000007fdf0000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007fdf0000 - 000000007fe00000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] BIOS-e820: 00000000ff380000 - 0000000100000000 (reserved)
[ 0.000000] DMI present.
[ 0.000000] AMI BIOS detected: BIOS may corrupt low RAM, working around it.
[ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
और गणित ...
>>> ((0x9F800 - 0x10000) + (0x7fdb0000 - 0x100000)) / 1024.0 / 1024.0 / 1024.0
1.9973125457763672
तो मुझे 2GB / 2GB मिला। /proc/cpuinfo
दिखाता है कि मेरा प्रोसेसर 36-बिट भौतिक पते का समर्थन करता है। 2 ^ 36 = 64GB, जिसे मैं पास भी नहीं हूं।
# ./smem -R 4G -w
Area Used Cache Noncache
firmware/hardware 843592 0 843592
kernel image 0 0 0
kernel dynamic memory 181116 134616 46500
userspace memory 287784 19736 268048
free memory 2881812 2881812 0