Bei einem 32-Bit-Kernel stehen Ihnen nur 4 GB Adressraum zur Verfügung . Ein Teil dieses Adressraums muss von der (virtuellen oder physischen) Hardware im System, wie z. B. Grafikkarten, NICs usw., für ihre eigenen Zwecke verwendet werden. Diese Nutzung liegt normalerweise zwischen 256 MB und 1 GB, je nachdem, wie viel Adressraum die jeweilige Hardware benötigt.
Da dieser Adressraum von der Hardware verwendet wird, ist der entsprechende RAM im Allgemeinen für ein 32-Bit-System nicht zugänglich.
Sie haben mehrere Möglichkeiten:
- Die bevorzugte Option ist die Ausführung eines 64-Bit-Betriebssystems. Dadurch wird der Adressraum dramatisch erweitert, sodass viel Platz für den gesamten Arbeitsspeicher und die Hardware vorhanden ist. Es durchbricht auch die 2 GB/3 GB 32-Bit-Grenze für Anwendungen, während die Fähigkeit zum Ausführen von 32-Bit-Programmen erhalten bleibt. Im Allgemeinen sollte jedes System mit 2 GB oder mehr RAM ein 64-Bit-Betriebssystem ausführen, um diese Probleme zu vermeiden.
- Eine andere Möglichkeit besteht darin, einen 32-Bit-Kernel mit aktiviertem PAE auszuführen. Dadurch wird der Arbeitsspeicher sichtbar, aber jeder Prozess ist weiterhin auf 2 GB/3 GB Adressraum beschränkt, abhängig von den Besonderheiten des Kernel-Builds. Da 64-Bit-Betriebssysteme 32-Bit-Anwendungen perfekt ausführen, hat dies keinen Vorteil und viele Nachteile (z. B. einen fehlenden Upgrade-Pfad).
Die Ausgabe von free
Der Befehl zählt den reservierten Kernelspeicher und einige andere kleine Bits nicht. Sie werden diese Diskrepanz sogar in einem 64-Bit-Kernel und sogar mit <2 GB RAM sehen.
Die kritische Zeile Ihrer physischen RAM-Karte ist diese:
BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
Diese Zeile zeigt, dass 1 GB (0x40000000 Bytes, hexadezimal) des physischen RAM Ihres Systems vom BIOS oberhalb der 4-GB-Grenze zugeordnet wird, sodass ein 32-Bit-System ohne PAE nicht darauf zugreifen kann.