CPU-Architektur
Achtung!
Dieser Artikel wird aktuell in Baustelle/CPU-Architektur überarbeitet. Daher kann es sein, dass diese Seite hier veraltete oder nicht (mehr) zutreffende Informationen enthält. Vergleiche beide Versionen und wende dich im Zweifelsfall mit deinem konkreten Anliegen an das Support-Forum. Änderungen am Artikel bitte nur in Baustelle/CPU-Architektur!
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Die Architektur einer CPU beschreibt, wie diese aufgebaut ist und wie diese mittels Assemblercode anzusprechen ist.
Es gibt verschiedene Architekturen, u.a. x86
, x86_64
, arm
, ia64
, sparc
und riscv64
.
All diese Architekturen sind unterschiedlich und - bis auf Ausnahmen - nicht zueinander kompatibel.
Software, welche aus Maschinencode für arm besteht, ist z.B. nicht auf einer x86-CPU lauffähig und umgekehrt. Dies trifft auch auf das Betriebssystem Ubuntu inklusive dem Linux-Kernel zu. Für jede Architektur muss daher eigener Binärcode erstellt werden. Des weiteren gibt es Befehlssatzerweiterungen wie SSE. Sollen diese genutzt werden, muss dies ebenfalls beim Kompilieren beachtet werden. Ubuntu macht hier jedoch keine Restriktionen bei x86_64-Prozessoren.
Dieser Artikel behandelt die Unterschiede zwischen den Architekturen x86, x86_64 und ia64 im Kontext von Ubuntu.
x86_64 (auch AMD64, Intel-64 und EM64T genannt) ist heute die am weitesten verbreitete Architektur bei CPUs in Servern, Desktop-PCs und Laptops, x86 (Sammelbegriff für i386, i486, i586 und i686) wurde praktisch komplett abgelöst. Dies hat zur Folge, dass Ubuntu mit Version 19.10 die Unterstützung für reine x86-CPUs eingestellt hat.
Beim Design der x86_64-Architektur wurde darauf geachtet, dass diese zu x86-Betriebssystemen kompatibel ist und diese problemlos auch auf neueren CPUs installiert werden können. Dies hat zur Folge, dass in manchen Fällen auf einer x86_64-CPU ein x86-System installiert wurde, meist aus Gewohnheit.
Architektur anzeigen¶
Um die Architektur des eigenen Betriebssystems (nicht der Hardware) anzuzeigen, kann man folgenden Befehl verwenden:
uname -a
Erscheint hier i386
oder i686
, so hat man ein 32-Bit-Betriebssystem installiert.
In solch einem Fall ist zu prüfen, ob die CPU 64-Bit unterstützt.
Dies kann mit
lscpu | grep -i Oper
und bei einem nicht lokalisiertem englischsprachigem Ubuntu mit
lscpu | grep -i op-mode
geprüft werden.
Fehlt hier 64-bit
, so ist die CPU nicht 64-Bit-fähig.
Hat man eine solche CPU, ist der Wechsel auf ein anderes Betriebssystem wie Debian oder Slackware notwendig, aktuelle Ubuntu-Versionen können nicht genutzt werden. Viele Softwareanbieter bieten ebenfalls keine Binärpakete für x86 mehr an.
Wechsel der Architektur des Betriebssystems¶
Ein Upgrade einer 32-Bit- auf eine 64-Bit-Installation wird nicht unterstützt. Ebenfalls wird kein Umstieg auf eine andere Architektur (z.B. amd64 auf arm) beim Wechsel der Hardware unterstützt. Es ist eine Neuinstallation notwendig.
Begrifflichkeiten und Geschichte¶
Die 32-Bit-x86-Architektur ist von Intel in Form der Reihen 386, 486, Pentium (586) und Pentium Pro (686) entwickelt worden und wird seit der Entwicklung der Intel-Itanium-Prozessoren von Intel als IA-32 bezeichnet. Sie ist 1985 mit dem Intel 80386 eingeführt worden und wird daher gelegentlich auch als i386 bezeichnet. Durch ihre große Verbreitung wird sie sehr häufig allgemein als x86 bezeichnet, obwohl diese Architekturfamilie ihren Ursprung bereits bei den 16-Bit-Prozessoren hat. Abweichende Bezeichnungen wie i686 (Intel Pentium Pro) beziehen sich dabei üblicherweise auf den kleinsten gemeinsamen Nenner einer Linux-Distribution: Älteren Prozessoren fehlen eventuell bestimmte Befehlssatz-Erweiterungen, die für die Ausführung der Software benötigt werden. Aus Kompatibilitätsgründen wird aber manchmal i386 genutzt, auch wenn erst i686 unterstützt wird.
Bereits 1989 ist klar gewesen, dass die 32-Bit-x86-Architektur ihre Grenzen hat und gerade für den Betrieb von leistungsfähigen Servern nicht ausreicht. Intel hat daher mit der Entwicklung der Itanium-Prozessoren auf 64-Bit-Basis begonnen, welche von Grund auf neu entworfen worden sind und einige sehr innovative Prinzipien umgesetzt haben. Diese haben die IA-64-Architektur. Die Prozessoren sind jedoch nur sehr begrenzt zu der bisherigen x86_32-Bit-Architektur kompatibel und bieten in diesem Betriebsmodus - x86-32 muss emuliert werden - nur wenig Leistung, die Abwärtskompatibilität ist schlichtweg in der Entwicklung nicht als wichtig erachtet worden. Der erwartete Erfolg der eigentlichen IA-64 Architektur ist daher ausgeblieben, Intel hat den Verkauf der Itanium-CPUs mittlerweile eingestellt, Ubuntu unterstützt ia64 ebenfalls nicht.
Als 1999 die Itanium-Prozessoren der Öffentlichkeit vorgestellt worden sind, hat AMD stattdessen eine 64-Bit-Erweiterung der bestehenden 32-Bit-x86-Architektur angekündigt, welche 2003 erstmals als AMD64 in Prozessoren verkauft worden ist. Diese Prozessoren sind uneingeschränkt zu alter 32-Bit-x86-Software kompatibel. Sie waren für normale Rechner wie auch Server erhältlich und haben sich daher durchgesetzt. In einer früheren Entwicklungsphase ist diese erweiterte Architektur als x86-64 bezeichnet worden, aus technischen Gründen kommt auch x86_64 zum Einsatz. Microsoft hat hierfür mit x64 eine eigene Bezeichnung eingeführt. Intel hat im Rahmen eines Lizenzabkommens AMD64 übernommen und verkauft seit 2004 entsprechend kompatible Prozessoren. Die eigene Implementierung der AMD64-Erweiterung wird als Intel 64, EM64T oder IA-32e bezeichnet.
Ebenso existiert von IBM die PowerPC-Architektur in mehreren Varianten (ppc
, ppc64
, ppc64el
). Ubuntu Server unterstützt ppc64el
, die Derivate bieten hierfür keine Unterstützung, da sich solche CPUs meist in Großrechnern und Servern statt in Desktop-PCs/Laptops befinden. Die von Apple und IBM in Desktop-PCs und Laptops eingesetzten älteren PowerPC-Prozessoren (ppc
, nicht ppc64
oder ppc64el
) werden von Ubuntu nicht mehr unterstützt.
Mit System/390 existiert eine weitere Architektur für Großrechner, welche von Ubuntu Server unterstützt wird.
Mit der ARM-Familie existiert eine Architektur, sie sich vorn allem auf kleine und sparsame Rechner konzentriert. Ubuntu Server bietet hierfür Unterstützung.
Auch wenn es für die Derivate und Ubuntu-Desktop keine ISO-Images für andere Systeme als amd64 gibt, kann man die meisten Pakete inkl. Desktopumgebung dort installieren, da sie für die Architektur in den Paketquellen liegen.
Gründe für eine 32-Bit-Installation¶
Der einzige Grund für eine 32-Bit(i386/i686)-Installation heutzutage ist, dass die CPU kein 64-Bit unterstützt. Früher gab es viele Programme nicht für amd64, sodass angeraten wurde, kein amd64 zu installieren. Dies ist heute nicht mehr der Fall. Ebenso unterstützen viele Hersteller amd64 nicht und boten keine Treiber an. Dies ist heute ebenso anders - amd64 ist Standard - x86 wird immer weniger unterstützt und getestet.