Momentan läuft in den Mailinglisten von Ubuntu eine Diskussion, ob ab Ubuntu 12.04 nur noch ein Kernel mit aktivierter PAE-Unterstützung ausgeliefert werden soll bzw. dieses nur noch CPUs unterstützen soll, welche PAE anbieten.
Da momentan sehr viel Missverständnisse über die Diskussion existieren, hier mal eine kleine Zusammenfassung der Zusammenhänge:
Was ist PAE?
PAE steht für Physical Address Extension und ermöglicht es 32bit-Prozessoren (Oder 64bit-fähigen CPUs unter einem 32bit-Betriebssystem), welche dieses Feature unterstützen, 4GB oder mehr RAM zu adressieren bzw. zu benutzen. Näheres zu den technischen Details und der nutzbaren Menge an RAM siehe auch im dazugehörigen Wikipedia-Artikel.
Das Feature war früher vor allem für Server interessant, als es noch keine x86-kompatiblen 64bit-fähigen CPUs gab. In der heutigen Zeit ist es für diejenigen Leute interessant, welche exakt 4GB RAM verbaut haben und dieses vollständig oder nahezu vollständig (Hängt von der Hardware ab) unter einem 32bit-Betriebssystem nutzen wollen. Ohne PAE lassen sich in der Regel bei einem 32bit-Betriebssystem nur 3,25GB von den verbauten 4GB RAM benutzen. Mit PAE sind es dann meistens die vollen 4GB RAM.
Welche CPUs unterstützen PAE?
Hier wird es ein wenig schwierig. Laut dem englischen Wikipedia-Artikel zu PAE unterstützen alle CPUs seit dem Intel Pentium Pro (erschienen 1995) und dem AMD Athlon XP (erschienen 2001) PAE, mit Ausnahme einiger Modelle des Pentium M und des Celeron M mit 400 MHz Bustakt (Via und Cyrix habe ich mal außen vorgelassen, da sich deren Marktanteil unterhalb der 1%-Marke bewegen dürfte).
Die Diskussion dreht sich hierbei vor allem um die Pentium-M-CPUs, da sich diese, wegen ihrer sehr guten Stromsparfunktionen, sehr gut verkauften und die dazugehörigen Notebooks sehr häufig auch heute noch im Einsatz sind. Ältere AMD-CPUs scheinen weniger relevant zu sein, wahrscheinlich weil diese kaum noch im Einsatz sind.
Um die Sache noch etwas mehr einzugrenzen, habe ich versucht eine genaue Liste mit Nicht-PAE-fähigen Pentium-M-CPUs zu finden, was gar nicht so leicht ist, denn selbst Intel listet dieses Feature nicht explizit in ihren CPU-Tabellen auf bzw. schreibt bei allen Pentium-M-CPUs grundsätzlich “Physical Address Extensions / 32bit”, egal ob PAE jetzt unterstützt wird oder nicht.
Was aber ein guter Anhaltspunkt für die PAE-Fähigkeit von Pentium-M-CPUs ist, ist das sogenannte NX-Bit (Von Intel auch XD-Bit genannt). Unterstützt die Pentium-M-CPU das NX-Bit, dann unterstützt sie auch PAE. Fehlt die Unterstützung für das NX-Bit, dann unterstützt sie auch kein PAE.
Anhand des Artikels “Modellnummern von Intel-Prozessoren” und dem Artikel zum Pentium M, lässt sich relativ schnell herausfinden, welche Pentium-M-CPUs das XD-Bit unterstützen. Im Einzelnen sind das folgende Modellnummern:
- Fast alle Pentium M mit 533MHz FSB (Ausnahmen sind die LV und ULV-Modelle der CPUs; LV = Low Voltage, ULV = Ultra Low Voltage, beide Varianten finden sich nur in Subnotebooks).
- Die Modelle 735A und 745A mit Dothan-Kern, aber 400MHz FSB.
- Die LV-Modelle 758 und 778 und das ULV-Modell 713 (Ausnahmen von den Ausnahmen )
- Alle Celeron M mit 1MB Cache (Ab der Modellnummer 350).
Wie finde ich am einfachsten heraus welche Pentium-M-CPU verbaut wurde?
Das ist leider nicht so einfach möglich, da alle Tools, die ich kenne und getestet habe, nicht explizit die Modellnummer ausspucken, sondern nur die Model-ID. Man könnte natürlich direkt auf der CPU nachschauen, nur muss man dazu, in den meisten Fällen, das verwendete Notebook komplett zerlegen.
Am einfachsten ist es den verwendeten Chipsatz und die Größe des Cache-Speichers als Anhaltspunkt heranzunehmen:
lspci | grep "Host bridge"
und
grep "cache size" /proc/cpuinfo
Wurde ein Chipsatz der 800er Baureihe (Im Speziellen der berühmt-berüchtigte 855GM) verbaut und der Pentium-M besitzt 1MB Cache oder 512KB Cache bei einem Celeron-M, dann ist die Chance nahezu Null eine PAE-fähige CPU zu besitzen (Ausnahme sind die Modellnummern 735A und 745A). Besitzer eines 900er Chipsätzes und 1MB Cache bei einem Celeron-M und 2MB Cache bei einem Pentium-M können dagegen gelassen in die Zukunft sehen, denn diese unterstützen PAE (Ausnahmen die LV und ULV-CPUs).
Der folgende Befehl kann dann als letzte Gewissheit dienen:
grep "pae" /proc/cpuinfo
Spuckt der Befehl jetzt eine Liste mit “flags” aus (“pae” wird dabei rot markiert), dann unterstützt die CPU PAE und man ist aus dem Schneider. Kommt dagegen keine Ausgabe, kann man davon ausgehen, dass die CPU kein PAE unterstützt.
Bei neueren CPUs und bei manchen Desktop-Motherboards und Notebooks kann es sein, dass im BIOS das NX bzw. XD-Bit standardmäßig deaktiviert wurde und dadurch auch kein PAE aktiviert ist. Wenn man also z.B eine Core2Duo-CPU oder neuer besitzt und der letzte grep-Befehl nichts ausspuckt, sollte man seinem BIOS mal einen Besuch abstatten
Viel Blabla, aber was würde das jetzt konkret für Ubuntu 12.04 heißen?
In der Diskussion zu Ubuntu 12.04 war davon die Rede, einen Nicht-PAE-Kernel nur noch über die Universe-Paketquelle anzubieten. Das würde bedeuten, dass man Ubuntu nicht mehr direkt auf Nicht-PAE-fähiger Hardware installieren könnte, ein Upgrade aber immer noch möglich wäre, da man nach dem Upgrade und vor dem Reboot den Nicht-PAE-Kernel aus Universe installieren könnte. Auch würde sich bestimmt jemand finden, der eine angepasste Installations-CD mit einem Nicht-PAE-Kernel anbietet, wodurch auch eine direkte Installation möglich wäre.
Momentan ist das Ganze aber noch eine reine Diskussion und nichts davon ist spruchreif. So liegt z.B. der aktuelle Kernel der Entwicklungsversion von Ubuntu 12.04 immer noch als Nicht-PAE-Variante vor. Auch scheint die Diskussion auf der Mailingliste eingeschlafen zu sein.
Fazit
Meiner Meinung nach, sollte Canonical noch bis Version 14.04 auf eine solche Maßnahme verzichten. Da Ubuntu 12.04 bis April 2017 mit Updates versorgt wird, könnten Besitzer von Nicht-PAE-fähigen CPUs ihre Hardware zuverlässig bis zu diesem Zeitpunkt weiterbetreiben (Solange sich diese nicht ins Siliziumnirvana verabschiedet).
Da ein Nicht-PAE-Kernel sich nur durch eine Handvoll Kernel-Config-Optionen von einem PAE-Kernel unterscheidet, ist die Pflege von ersterem kein größeres Thema. Im Moment kommt diese Diskussion noch zu früh, da viele Centrino-Notebooks der ersten Generation noch zuverlässig ihren Dienst verrichten und für die meisten Alltagsaufgaben noch leistungsfähig genug sind.