Tun sie schon, jedoch wird der von ihnen belegte Adressraum oberhalb der 4GB Grenze wieder eingeblendet. 🙂realdarkman schrieb...und die "fehlenden" 800MB werden beim Standard-Kernel nicht genutzt? Wenn die aber für TV-Karte, Grafikkarte usw. benutzt werden, warum belegen diese Dinge dann im PAE-Kernel keinen Speicher???
Um der nächsten Frage vorab zu kommen, hole ich einfach mal weiter aus:
Zu Zeiten als man gemerkt hat, dass der Menschheit 640KB Speicher doch nicht genug sind und man den 32 Bit Adressraum einführte, waren 2^32 Byte = 4GB mehr Speicher als man sich jemals zu füllen gedacht hätte (diese Einschätzung war damals insbesondere auch aus Kosten-Nutzen technischer Sicht sehr gerechtfertigt). Also beschloss man dass Speicheradressen 32 Bit lang sind. Da es aber neben dem "klassischen" Arbeitsspeicher noch diverse andere Speicher anzusprechen gilt, musste man sich überlegen, wie man das mit 32 Bit anstellen kann. Für Erweiterungskarten, Grafikspeicher, etc. extra Adressleitungen zu definieren, wäre nicht nur schlicht zu teuer gewesen (jede Adressleitung muss ja irgendwie auf die Platine geätzt werden) sondern hätte wahrscheinlich auch zu unzählbaren weiteren Problemen wie Inkompatibilitäten usw. geführt. Also nutzt man die 32 Bit für jedes Gerät und jeden Speicher, den Du im System irgendwie ansprechen möchtest, bzw. jeder Speicher/jedes Gerät hat seinen eigenen Adressbereich.
Dabei hat man festgelegt, dass (vereinfacht) der Arbeitsspeicher von vorne beginnend und Erweiterungskarten, Grafikspeicher, etc. von hinten beginnend in die 32 Bit eingeblendet werden.
Vereinfachtes Beispiel:
Du hast 2GB RAM, 512MB Grafikspeicher und eine TV-Karte, die einen 256MB Adressbereich benötigt. Dann sind im 4GB Adressraum die ersten 2GB für den RAM belegt und die hinteren 768MB für Grafik- und TV-Karte. In der Mitte ist viel Adressraum ungenutzt.
Hast Du nun 4GB RAM, belegen natürlich weiter Grafik- und TV-Karte die hinteren 768MB Adressraum, die wiederum aber auch gleichzeitig vom RAM belegt werden. Da nur eines möglich ist (und man lieber auf etwas RAM als auf eine grafische Ausgabe verzichtet), können von den 4GB RAM nur 3,25GB benutzt werden. (das "Phänomen", welches man mit einem 32bit Kernel ohne PAE hat).
Mit Aufkommen der Zeit, wo 3GB nicht mehr mehr Speicher ist, als ein Mensch jemals braucht, hat man angefangen mehr Adressleitungen in die Prozessoren zu bauen (viele Prozessoren, auch welche, die noch keine 64Bit unterstützen, haben mehr als 32 Adressleitungen). Damit hat man nun endlich genug Adressleitungen um 4GB RAM _und_ den ganzen anderen Krams zu adressieren. Da jedoch alle Hardware, und 32bit-Betriebssysteme davon ausgehen, dass die Erweiterungskarten ja am oberen Ende des 32Bit Adressraumes liegen, kann man das nicht einfach so ändern. Also haben sich kluge Köpfe verschiedene Systeme wie PAE ausgedacht. Diese blenden den durch Erweiterungskarten verdeckten Teil des Arbeitsspeichers oberhalb der 4GB wieder ein (sprich: physikalisch hängt dein RAM nicht mehr zusammen, sondern hat ein Loch). Ein PAE-Kernel sorgt dann für die Umrechnung der Adressen, um Prozessen trotzdem einen zusammenhängenden logischen Adressraum zur Verfügung zu stellen.
Das funktioniert sogar alles erstaunlich gut. Meiner Meinung nach hat man aber heutzutage sowieso ein 64bit-System oder 3GB Speicher sind mehr als man jemals braucht.
so, viel Zeit viel Text, wehe mir ist jemand mit der Antwort zuvor gekommen... 😉