1961092

64 Bit vs 32 Bit - Welches Linux-System darf es sein?

16.07.2014 | 13:09 Uhr |

Die meisten Linux-Distributionen liegen als 32-Bit- und 64-Bit-Ausführung vor. Doch 64-Bit ist nicht automatisch besser. Wir verraten, welche Version zur Hardware und zum anvisierten Einsatzzweck passt.

32 Bit oder 64 Bit? Aus rein technischer Sicht stellt sich die Frage für Linux-Nutzer, die halbwegs aktuelle Hardware besitzen, kaum noch ernsthaft. Trotzdem reagieren viele zögerlich: Was bringt denn die 64-Bit-Architektur für Vorteile? Sind 32 Bit nicht genug für eine tägliche Arbeit, bei der es nicht um riesige Datenbanken, Laufwerke im Terabyte-Bereich und arithmetische Berechnungen geht, die in der Größenordnung zu einem Teilchenbeschleuniger passen?

Und für Besitzer wirklich alter Hardware geht es um technisch relevante Fragen, ob der Prozessor 64 Bit unterstützt und ob ein 64-Bit-System auch mit der begrenzten Speichermenge unter 4 GB effizient arbeitet.

Dieser Artikel stammt aus der LinuxWelt 4/2014

Das neue Ubuntu LTS, der große Desktop-Guide, Ihre Festplatte 20 x schneller, Linux statt Windows XP - das und mehr finden Sie in der neuen LinuxWelt 4/2014 .

Warum heute 64 Bit regieren

Alle großen Distributionen liefern heute Varianten für 32 Bit und 64 Bit in separaten Downloads aus. Den Linux- Kernel gibt es schon länger für 64 Bit: Offiziell hat Linus Torvalds die 64-Bit- Unterstützung für x86-Prozessoren seit Version 2.6 in den Kernel aufgenommen. Ursprünglich hat AMD die 64-Bit-Befehlssatzerweiterung für x86- CPUs entwickelt und kurz darauf auch an Intel lizenziert. Aus historischen Gründen weisen sich Linux-Distributionen wie Debian und Ubuntu für 64 Bit deshalb noch mit dem Zusatzkürzel „AMD64“ aus, obwohl es sich um den gleichen 64-Bit-Befehlssatz wie bei Intel handelt, der ganz allgemein die Bezeichnung „x86-64“ hat. Das erste 64-Bit-Linux ist übrigens bedeutend älter: 1995 hat Linus Torvalds noch an der Universität Helsinki dank der Überredungskunst von Jon „Maddog“ Hall den Linux-Kernel für den damals neuen DEC Alpha portiert.

Der Schritt von 32 Bit auf 64 Bit ist hinsichtlich Leistung und technischen Möglichkeiten nicht mehr der große Sprung früherer Architekturwechsel (8 zu 16, 16 auf 32). Dennoch bringen 64 Bit tiefgreifende Änderungen für das Betriebssystem und viele Programme. 64 Bit erlauben einen breiteren Adressraum von 52 Bit für den physikalischen Speicher, der Rest ist reserviert. Die somit adressierbaren „2 hoch 52 Byte“ sind mit ihren vier Petabyte (4.503.599.627.370.496) ungleich mehr als die maximal adressierbaren vier Gigabyte der 32-Bit-Plattform (4.294.967.296).

Fünf aktuelle Linux-Distributionen im Vergleich

Ausführungsgeschwindigkeit von 32- Bit- und 64-Bit-Benchmarks auf demselben Prozessor: Für 64 Bit optimierte Programme arbeiten schneller, während der 32-Bit-Kompatibilitätsmodus etwas langsamer läuft.
Vergrößern Ausführungsgeschwindigkeit von 32- Bit- und 64-Bit-Benchmarks auf demselben Prozessor: Für 64 Bit optimierte Programme arbeiten schneller, während der 32-Bit-Kompatibilitätsmodus etwas langsamer läuft.

Natürlich kann 32-Bit-Linux dank PAE-Kernel (PAE = Physical Address Extension) und passender CPU die 4-GB-Grenze überschreiten, also auch mehr Arbeitsspeicher nutzen. Jedoch besteht hier die 4-GB-Grenze in jedem Fall für den je einzelnen Prozess weiterhin. Ferner ist die Größe eines „Word“, also jener Menge an Bits, die eine CPU in einem Durchgang verarbeiten kann, beim 64-Bit-System ebenfalls deutlich größer, und die Zahl der Register hat sich verdoppelt. Bei entsprechend optimierter Software führt das auch bei eher wenig RAM zu höherer Ausführungsgeschwindigkeit. Auch sind Compiler wie GCC heutzutage auf 64 Bit hin optimiert und liefern hierfür besseren Maschinencode als für 32 Bit.

64-Bit-Mythen und die Wahrheit

Obwohl 64-Bit-CPUs und 64-Bit-Betriebssysteme längst keine neue Technologie mehr sind, sondern schon seit mindestens drei Jahren ihre 32-Bit- Pendants auch im Heimbereich mehr und mehr verdrängen, ranken sich immer noch Mythen und Halbwahrheiten um 64 Bit. Nicht alle sind ganz falsch, doch manche betreffen nur bestimmte Betriebssysteme, nicht aber Linux, um das es hier geht.

„Es gibt weniger Treiber für 64-Bit- Systeme.“ Diese Behauptung stimmt – zumindest für einige Betriebssysteme. Auf einem 64-Bit-System brauchen die Hardware-Komponenten passende 64-Bit-Treiber. Denn anders als bei 32-Bit-Anwendungs-Software gibt es für Treiber keine Kompatibilitätsschicht, weil diese direkt mit dem Kernel kommunizieren. Gerade für Windows ist es abhängig vom Gerätehersteller oft kein leichtes Unterfangen, für ältere Geräte 64-Bit-Treiber zu bekommen.

Beim Einsatz von Linux ist dies aber irrelevant, denn der 64-Bit-Kernel enthält bereits alle Kernel-Treibermodule in 64 Bit. Die wenigen proprietären Treiber, die man darüber hinaus benötigt, insbesondere Grafiktreiber von Nvidia und AMD, liegen längst in passenden Versionen vor. Treiberprobleme sind unter Linux nur mit exotischer Hardware zu erwarten.

„Niemand braucht 64 Bit bei weniger als 4 GB RAM.“ Einer der großen Vorteile von 64-Bit-Betriebssystemen und Programmen ist die Adressierung eines größeren Speicherbereichs ohne Umwege wie PAE. Aber auch ohne üppige Speicherausstattung, etwa bei 2 bis 3 GB RAM, ergeben sich bei 64 Bit noch genügend Vorteile. So umfassen die resultierenden CPU-Instruktionen bei einer Addition von 64-Bit-Integer- Zahlen beispielsweise nur 5 Byte, während auf einer 32-Bit-CPU 17 Byte nötig sind.

Trendsetter: AMD stellte den Athlon 64 mit 64-Bit-Unterstützung bereits 2003 vor. Das war der erste Prozessor der x86-Plattform mit einem 64-Bit-Befehlssatz und trug damals die Bezeichnung „AMD64“.
Vergrößern Trendsetter: AMD stellte den Athlon 64 mit 64-Bit-Unterstützung bereits 2003 vor. Das war der erste Prozessor der x86-Plattform mit einem 64-Bit-Befehlssatz und trug damals die Bezeichnung „AMD64“.

„64 Bit ist generell doppelt so schnell.“ Das stimmt generell sicher nicht, aber Ausnahmen sind möglich. 20 Jahre regierte 32 Bit, und die Programmierer hatten genügend Zeit, ihren Code für 32-Bit-Operationen zu optimieren. Zwar liefern Compiler auch eigene Flags für optimierten 64-Bit-Code, aber ein Geschwindigkeitsvorteil ergibt sich dabei nicht immer. Denn die Assembler-Teile einer Software müssen immer noch per Hand angepasst werden. Es hängt vom Programm ab, ob es schneller läuft. Der oft zu Benchmark-Zwecken eingesetzte Raytracer POV-Ray ist beispielsweise in der 64-Bit-Version deutlich flotter, während sich beispielsweise beim grafischen X-Window-System noch keine Geschwindigkeitsvorteile durch 64 Bit ergeben, da Teile des Codes einfach zu alt sind.

„64-Bit-Binaries sind deutlich größer.“ Das stimmt größtenteils. 64-Bit- Compiler produzieren beim gleichen Code größere Programmdateien, die dann auch mehr Arbeitsspeicher verbraten. Die Ausführungsgeschwindigkeit ist aber in der Regel trotzdem schneller als bei der 32-Bit-Version des gleichen Programms.

Dies liegt an der Compiler-Optimierung, die den resultierenden ausführbaren Code und numerische Konstanten an der Word-Größe der Prozessor-Plattform ausrichten. Auch Datenstrukturen werden vom Compiler mittels „Data Structure Padding“ auf die Word-Größen der CPU aufgefüllt, um die nötige Anzahl der Speicherzugriffe zu reduzieren.

Keinesfalls aber sind 64-Bit-Programme doppelt so groß wie ihre 32-Bit-Pendants: Typischerweise sind die 64-Bit-Binaries zwischen vier und 20 Prozent größer, je nachdem, für welche Plattform der Programmierer seinen Code geschrieben hat.

Nachzügler: Vor zehn Jahren hatte Intel mit dem stromhungrigen Pentium 4 eine schwierige, innovationsarme Phase und übernahm 2004 AMDs 64-Bit-Befehlssatz in Lizenz als „x86-64“.
Vergrößern Nachzügler: Vor zehn Jahren hatte Intel mit dem stromhungrigen Pentium 4 eine schwierige, innovationsarme Phase und übernahm 2004 AMDs 64-Bit-Befehlssatz in Lizenz als „x86-64“.

„Ein 64-Bit-System verlangt immer 64-Bit-Programme.“ Ganz falsch – 32-Bit-Anwendungen laufen tadellos unter 64-Bit-Betriebssystemen und zwar ohne Geschwindigkeitseinbußen. Sie verlangen aber die entsprechenden 32-Bit-Versionen ihrer System-Bibliotheken. Unter Linux-Distributionen muss man sich dabei bei der Installation über den jeweiligen Paketmanager keinen Kopf machen. Wird ein 32-Bit- Programm aus den Paketquellen installiert, so zieht das Paket auch ganz automatisch alle benötigten System- Bibliotheken als Abhängigkeiten auf das System. Der Software-Emulator „ia32-libs“ für 32-Bit-Programme wird auf den aktuellen Distributionen nicht mehr benötigt.

„64 Bit macht 32 Bit mittelfristig obsolet.“ Es ist nicht derzeit absehbar, ob und wenn ja, wann 32 Bit aussterben wird. Auch 8-Bit-Plattformen sind nicht völlig verschwunden, sondern spielen bei Mikro-Controllern immer noch eine große Rolle. Linux läuft im Embedded-Bereich auf enorm vielen 32-Bit-Systemen, die nicht auf 64 Bit wechseln werden. Folglich wird es weiterhin eine 32-Bit-Variante geben. Wahrscheinlich ist aber, dass kleinere Linux-Distributionen irgendwann 32 Bit fallen lassen, wenn die Nutzerzahlen zu gering ausfallen. So gibt es schon heute die Server-Version von Ubuntu 14.04 LTS nur noch als 64-Bit-Version („64-bit only“: www.ubuntu.com/ download/server).

„64-Bit-Varianten enthalten mehr Bugs.“ Dies war in den Anfangszeiten der Portierungen nach 64 Bit tatsächlich oft so, da es schlicht weniger Betatester und Anwender für die 64-Bit- Varianten gab. Inzwischen hat sich das Verhältnis jedoch umgekehrt, und die Entwicklergemeinde der populären Linux- Distributionen arbeitet und testet primär auf 64 Bit.

Hardware- und Systeminfos unter Linux ermitteln

Prozessor-Flags anzeigen: Dieser Befehl zeigt zu jedem CPU-Kern die Kürzel der Befehlserweiterungen an. Das unscheinbare „lm“ (hier rot) zeigt, dass der Prozessor die 64-Bit-Erweiterungen unterstützt.
Vergrößern Prozessor-Flags anzeigen: Dieser Befehl zeigt zu jedem CPU-Kern die Kürzel der Befehlserweiterungen an. Das unscheinbare „lm“ (hier rot) zeigt, dass der Prozessor die 64-Bit-Erweiterungen unterstützt.

Unterstützt die Hardware 64 Bit?

Vielen Nutzern älterer PCs ist gar nicht bewusst, dass sie einen 64-Bit-Rechner besitzen und folglich auch ein 64-Bit- Linux oder Windows installieren könnten. Welche Prozessorarchitektur Ihr Computer hat, finden Sie mit den Bordmitteln jeder Linux-Distribution oder jedes Live-Systems heraus. Ganz ohne nachgerüstete Zusatz-Tools aus den Paketquellen der Distribution verrät ein Blick in die Datei „/proc/cpuinfo“, welcher Prozessor im System arbeitet und welche Fähigkeiten dieser mitbringt. Die Dateien und Ordner unter „/proc“ sind keine echten Dateien und belegen auch keinen Speicherplatz, sondern bieten eine direkte Verbindung zum Kernel. Viele Informationen zu Hardware, System und laufenden Prozessen sind hier unkompliziert lesbar, da sich die Dateien hier wie normale Textdateien verhalten. Viele Programme, die Prozessinformationen und Hardware-Infos benötigen, verwerten ebenfalls die Daten aus dem „/proc“-Verzeichnis.

Um herauszufinden, ob Sie einen 64-Bit-Prozessor nutzen, öffnen Sie ein Terminal-Fenster und geben

grep " lm " /proc/cpuinfo  

ein. Dieses Kommando durchsucht „/proc/cpuinfo“ nach der CPU-Befehlserweiterung namens „ lm“. Diese unscheinbaren zwei Buchstaben stehen für „long mode“ und sind das Merkmal von 64-Bit-CPUs, egal ob von Intel oder AMD. Findet das Kommando diese Erweiterung, dann zeigt es im Terminal auf Ausgabe die Zeile der Befehlserweiterungen (flags). Auf einer 32-Bit-CPU bleibt die Ausgabe dagegen leer.

Empfehlung: Vorfahrt für 64 Bit

Wenn die CPU 64-Bit-fähig ist, was auf die meisten Prozessoren der letzten Jahre zutrifft, angefangen beim AMD Athlon 64 von 2003 und dem überarbeiteten Intel Pentium 4 „Prescott“ 630 von 2005, dann sollte besser ein Linux in seiner 64-Bit-Variante installiert werden. Denn die Vorteile dieser Plattform überwiegen heute, selbst wenn das System nur über vergleichsweise wenig Speicher ab 2 GB verfügt. Bei noch weniger RAM macht sich der höhere Speicherbedarf von 64-Bit- Software negativ bemerkbar, und dann ist die 32-Bit-Variante die bessere Wahl. Wer freilich ein System im Uefi- Modus installieren will oder muss, hat keine Wahl: Uefi-Unterstützung gibt es derzeit nur in den 64-Bit-Varianten, obwohl die Uefi-Spezifikation die 32-Bit-Plattform nicht ausschließt. Hardware-Hersteller und Software- Entwickler behandeln 32 Bit hier aber bereits als Auslaufmodell.

0 Kommentare zu diesem Artikel
1961092