UNAWAVE

Redcoon Promotion
Ich mag diese Seite

32 Bit Windows 7 mit vollen 4 GB oder 8 GB RAM

Geht nicht ! Werden viele sagen. Und es geht doch.

Vielfach geistert im Internet die Behauptung mit einem 32 Bit Betriebssystem können technisch nur maximal 4 GB RAM verwaltet werden. Das ist falsch und Microsoft belegt es sogar selbst, daß es mit der Spezial-Version von "Windows Server 2003 Datacenter Edition" geht:

http://technet.microsoft.com/en-us/library/cc758523(WS.10).aspx
64-GB RAM Maximum
... the 32-bit version of Windows Server 2003, Datacenter Edition supports up to 64 GB of RAM on x86-based computers. ...
http://www.microsoft.com/germany/windowsserver2003/editionen/datacenter/default.mspx
Die wichtigsten Funktionen
Windows Server 2003 R2 Datacenter Edition umfasst die Funktionen von Windows Server 2003 R2 Standard Edition und von Windows Server 2003 R2 Enterprise Edition. Die Datacenter Edition bietet jedoch die folgenden zusätzlichen Funktionen und Fähigkeiten:
• Erweiterter realer Speicher. Auf 32-Bit-Intel-Plattformen unterstützt Windows Server 2003 R2 Datacenter Edition PAE (Physical Address Extension - Erweiterung des physikalischen Adressraumes), wodurch die Größe des Systemspeichers auf 64 GB RAM erhöht werden kann.

Im Kernel der 32 Bit Version von Windows 7 ist lediglich eine Sperre eingebaut, die den Zugriff auf mehr Arbeitsspeicher verhindert. Noch drastischer sieht man die Sperre in der 32 Bit Version von Windows 7 Starter Edition: Dort ist die Sperre noch rigoroser und erlaubt nur den Zugriff auf 2 GB RAM:

In der 32 Bit Version von Windows 7 sind von 4 GB RAM normalerweise nur ca. 3,25 -3,5 GB nutzbar:

Im allgemeinen hält sich hartnäckig die Meinung, daß dieser nicht nutzbare RAM
durch den Grafikkarten-RAM verdeckt wird.

Die Computerzeitschrift c't hat allerdings mal einen Test
mit verschiedenen Grafikkarten gemacht (c't 23/2009, Seite 165):

Grafikkarten RAM Verfügbarer RAM von 4 GB
0 MB 3,5 GB
128 MB 3,5 GB
256 MB 3,25 GB
512 MB 3,25 GB
1024 MB 3,25 GB

Diese Ergebnisse sind völlig unverständlich. Warum wird schon ohne Grafikkarte (0 MB, Verbindung über Remotedesktop) 512 MB RAM blockiert ? Warum sind es bei einer Grafikkarte mit 128 MB auch 512 MB - und nicht 128 MB ? Und warum sind es bei einer Grafikkarte mit 1024 MB "nur" 750 MB ?

Die russische Programmierer-Gruppe "staforce" hat ein kleines Programm geschrieben, mit dem diese Sperre im Kernel der 32 Bit Version von Windows 7 entfernt wird ("gepatched" wird). "ICE Technologie" hat dieses Programm ins deutsche übersetzt. Das Programm macht selbständig eine Kopie der Kernel-Datei "ntkrnlpa.exe", entfernt in der Kopie die Sperre und bindet die gepatchte Kernel-Datei ("ntkrlICE.exe") als zusätzlichen Bootmenü-Eintrag in das Windows 7 Bootmenü ein. Man hat also anschließend die Möglichkeit Windows 7 entweder wie gewohnt mit der original Kernel-Datei oder mit der modifizierten Kernel-Datei "ntkrlICE.exe" zu starten.

Mit so einem gepatchtem (modifiziertem) Kernel kann die 32 Bit Version von Windows 7
auf einmal fast die gesamten 4 GB RAM nutzen:

Und selbst 8 GB RAM sind nun auch einmal kein Problem mehr.
Der Original-Kernel meldet noch, daß 4865 MB "Für Hardware reserviert" sind - für welche Hardware ?

Der gepatchte Kernel meldet dann korrekt, daß nur 1 MB "Für Hardware reserviert" ist:

Die RAM-Obergrenze der 32 Bit Version von Windows 7 ist damit 64 GB - so, wie es Microsoft bei der "Windows Server 2003 Datacenter Edition" beschreibt (siehe oben). Weitere ausführliche Details - noch aus Vista-Zeiten - siehe hier von Geoff Chappell.

Der Patch

Mit dem kleinen Programm "4GB-RamPatch.exe" läßt sich diese Sperre im Kernel der 32 Bit Version von Windows 7 entfernen ("patchen"):

Das Programm macht selbständig eine Kopie der Kernel-Datei "ntkrnlpa.exe", entfernt in der Kopie die Sperre und bindet die gepatchte Kernel-Datei ("ntkrlICE.exe") als zusätzlichen Bootmenü-Eintrag in das Windows 7 Bootmenü ein. Man hat also anschließend die Möglichkeit Windows 7 entweder wie gewohnt mit der original Kernel-Datei oder mit der modifizierten Kernel-Datei "ntkrlICE.exe" zu starten.

Das Patch-Programm braucht nicht installiert werden - es läuft als "stand-alone" Programm; z.B. auch direkt von einem USB-Stick. Es wird auch kein Hintergrund-Programm installiert.

Der Patch hat zwei kleine, aber behebbare Nebeneffekte:

  1. Da Windows 7 die Veränderungen bemerkt läßt sich der Kernel normalerweise nicht starten. Für die Microsoft-Programmierer, die häufiger mal mit gepatchten Kernels arbeiten, hat Microsoft in den Bootparametern einen zusätzlichen Schalter eingebaut ("testsigning=Yes"), damit sie ihre gepatchten Kernels testen können. Damit läßt sich dann der gepatchte Kernel problemlos starten.
  2. Dieser Schalter führt dann allerdings dazu, daß auf dem Desktop-Hintergrund unten rechts (also über der Uhr) ein Hinweis eingeblendet wird - ein "Wasserzeichen" ("Watermark"):

Zum entfernen dieses "Wasserzeichens" dient der Button "Entferne Wasserzeichen":

Anschließend sollte neu gebootet werden.

Um das Bootmenü zu verändern, kann man das Windows 7 Programm "msconfig" starten.


Auf der Registerkarte "Start" kann man festlegen:

  • Welcher Bootmenü-Eintrag standardmäßig gebootet werden soll (wenn der Benutzer keine Auswahl trifft)
  • Wie lange das Startmenü erscheinen soll
  • Und man kann den einen oder anderen Bootmenü-Eintrag löschen

Allerdings sollte man den Bootmenü-Eintrag für den Original-Kernel nicht entfernen. Denn es gibt einige sehr wenige Programme, die nicht mit soviel RAM klarkommen wie es der Kernel-Patch zur Verfügung stellt - dann kann man jederzeit mit dem Original-Kernel neu booten.

Zum entfernen des Patches braucht man lediglich mit "msconfig" den Startmenü-Eintrag entfernen (das Programm "msconfig" erreicht man, wenn man im Suchfeld des Startmenüs "msconfig" eingibt). Das Bootmenü erscheint dann gar nicht mehr, denn solange nur ein Menüeintrag vorhanden ist, erscheint kein Bootmenü. Die kopierte, gepatchte Kernel-Datei "ntkrlICE.exe" im Ordner "C:\Windows\system32" kann dann ebenfalls gefahrlos gelöscht werden.

In einer "Eingabeaufforderung" mit Admin-Rechten kann man sich den neuen Bootmenü-Eintrag
mit dem Befehl "bcdedit" im Detail ansehen:

Der Text, der im Bootmenü erscheint, ist unter "description" zu finden.
"testsigning = Yes" erlaubt den gepatchten Kernel trotz Modifizierung zu starten.
Der kopierte und modifizierte Kernel heißt "ntkrlICE.exe".
Mit "pae = ForceEnable" wird die Adress-Erweiterung für den RAM aktiviert.

Screenshots von verschiedenen Konstellationen (In Kürze):

32 Bit Version Windows 7 4 GB RAM 8 GB RAM
512 MB Grafikkarte, Windows 7 Ultimate ungepatched gepatched ungepatched gepatched
128 MB OnBoard Grafikkarte, Windows 7 Professional ungepatched gepatched ungepatched gepatched
32 MB OnBoard Grafikkarte, Windows 7 Starter ungepatched gepatched ungepatched gepatched
Windows 7 Home Premium Family PackWindows 7 Home PremiumWindows 7 ProfessionalWindows 7 Ultimate
congstar Mobilfunk