Ein 32-Bit-Adressraum bedeutet, dass Sie Platz für 4 GB Adressen haben. Im Idealfall möchte der Kernel in der Lage sein, den gesamten physischen Speicher, den gesamten Speicher der aktuellen Aufgabe und den gesamten eigenen Speicher abzubilden. Wenn der physische Speicher allein alle verfügbaren 4 GB belegt, funktioniert dies nicht. Der physische Speicher ist also unterteilt in einen niedrigen Speicher, der ständig zugeordnet wird, und einen hohen Speicher, der bei Verwendung zugeordnet werden muss. Sofern Sie keinen gepatchten Kernel ausführen, sind in der ix86-Architektur 128 MB Adressraum für Kernelcode und Datenstrukturen und 896 MB für die Zuordnung des physischen Speichers (insgesamt 1 GB) vorgesehen.
Hintergrundinformationen zu den Komplexitäten der Speicherverwaltung, wenn Ihr Adressraum nicht wesentlich größer ist als Ihr Gesamtspeicher:
Auszüge aus Ihren Kernel-Protokollen:
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000cdce0000 (usable)
BIOS-e820: 00000000cdce0000 - 00000000cdce3000 (ACPI NVS)
BIOS-e820: 00000000cdce3000 - 00000000cdcf0000 (ACPI data)
BIOS-e820: 00000000cdcf0000 - 00000000cdd00000 (reserved)
BIOS-e820: 00000000d0000000 - 00000000e0000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000130000000 (usable)
2404MB HIGHMEM available.
887MB LOWMEM available.
Zone PFN ranges:
DMA 0x00000000 -> 0x00001000
Normal 0x00001000 -> 0x000377fe
HighMem 0x000377fe -> 0x000cdce0
Hier haben Sie 887 MB wenig Speicher: das theoretische Maximum von 896 MB minus einige MB DMA-Puffer (Speicherzonen für die Kommunikation mit Hardwaregeräten).
Von Ihrem physischen Speicher werden 3328 MB Adressen unter 4 GB und 768 MB Adressen über 4 GB zugeordnet (Bereich 0x100000000–0x130000000). Sie erhalten keinen Zugriff auf diese 768 MB, was erklärt, warum nur 3242 MB verfügbar sind (4096 MB RAM minus 768 MB unzugänglich minus 9 MB DMA-Puffer minus 75 MB, die vom Kernel selbst für Code und Daten verwendet werden). Ich weiß nicht, warum das BIOS RAM über der 4-GB-Marke abbildet, aber als Datenpunkt poste ich dies von einem PC mit 4 GB RAM, dessen RAM ebenfalls auf 0x100000000–0x130000000 abgebildet ist.
Für die Zuordnung des physischen Speichers über 4 GB muss PAE verwendet werden . PAE verursacht einen geringen Leistungsaufwand (insbesondere erfordert es größere Datenstrukturen im Speichermanager), sodass es nicht systematisch aktiviert wird. Der Standard-Ubuntu-Kernel wird ohne PAE-Unterstützung kompiliert. Holen Sie sich den -generic-pae
Kernel
, um auf bis zu 64 GB RAM zugreifen zu können.
TL, DR: Linux funktioniert wie erwartet. Die Firmware ist nicht so hilfreich. Holen Sie sich einen PAE-fähigen Kernel.