Insgesamt verhält sich die Oberfläche sehr reaktionsfreudig. Obwohl das Betriebssystem sie von einer langsamen SD-Karte lädt, starten Programme relativ schnell. Rüsten Sie den RasPi mit einer NVMe-SSD auf [3], profitieren Sie von einer deutlichen Beschleunigung. Es ist auch problemlos möglich, den Rechner mehrere Dinge gleichzeitig erledigen zu lassen, denn er besitzt mit seinen vier CPU-Kernen genug Reserven.
Fortgeschrittenes
Zusätzliche Anwendungen installieren Sie wie gewohnt über das Anwendungszentrum, das bevorzugt Programme aus dem Snap-Store und nach Änderung der Voreinstellung auch Apt-Pakete anzeigt. Alternativ spielen Sie Debian-Pakete auf dem klassischen Weg mit Apt auf der Konsole ein. Im Test funktionierte zudem Flatpak, womit eine weitere Paketquelle zur Verfügung steht. Für alle drei Installationsvarianten gilt, dass zwar viele von x86-Ubuntu bekannte Anwendungen in identischen Versionen für die ARM-CPU zur Verfügung stehen und sich auch gleich verhalten, aber manche Programmpakete fehlen, weil sie bisher nicht portiert wurden.
Ubuntu 24.04 ist ein 64-Bit-System. Die RasPis verwenden seit dem Modell 3 64-Bit-Prozessoren und können damit sowohl 64-Bit- als auch 32-Bit-Anwendungen ausführen. Es gab, wie bei den PCs, zunächst einen Wechsel der Hardware von 32-Bit- zu 64-Bit-CPUs und – mit ein wenig Verzögerung – den Wechsel auf ein dazu passendes Betriebssystem. Auch beim RasPi ist das 64-Bit-Ubuntu in der Lage, ältere 32-Bit-Anwendungen auszuführen. Abbildung 5 zeigt ein Testprogramm, das mit dem nativen GCC und der Cross-Compiler-Version arm-linux-gnueabihf-gcc in 64- und 32-Bit-Versionen übersetzt und ausgeführt wurde. Die Ausgabe der Memory Maps zeigt, dass die 32-Bit-Anwendung in einem 32-Bit-Adressraum arbeitet, während der 64-Bit-Prozess breitere 48-Bit-Adressen verwendet.
Wenn Sie mit Linux-Containern arbeiten möchten, installieren Sie mit Apt das Paket docker.io und erhalten damit dieselbe Docker-Umgebung wie auf dem PC. Nach der Paketinstallation fügen Sie zunächst Ihr eigenes Benutzerkonto der Gruppe docker hinzu (Listing 1, erste Zeile). Dann schließen Sie alle Anwendungen, terminieren die Sitzung hart (zweite Zeile) und melden sich wieder an.
Listing 1
Docker einrichten
$ sudo usermod -a -G docker $USER $ sudo killall -u $USER [...] $ docker run --rm --privileged aptman/qus -s -- -p x86_64 $ docker run -it --rm --platform amd64 ubuntu
Ein einfaches Aus- und Einloggen hilft nicht weiter, weil dabei die neue Gruppenmitgliedschaft nicht greift – in der PC-Version hat Ubuntu dasselbe Problem. Nach dem erneuten Anmelden sollte in der Ausgabe von id auch die Gruppe docker erscheinen.
Docker verwendet in den Containern den Kernel des Host-Systems, es handelt sich also um ARM-Container (aarch64). Deswegen lassen sich Images, die für die x86-Plattform erstellt wurden, zunächst nicht verwenden. Docker kann aber andere Plattformen emulieren. Wollen Sie beispielsweise die gängigeren x86_64-Container verwenden, rüsten Sie den Support dafür mit dem Kommando aus der vierten Zeile von Listing 1 nach. Um einen x86_64-Ubuntu-Container zu starten, geben Sie dann den Befehl aus der letzten Zeile ein.
Das klappt genauso mit x86-Docker-Images anderer Linux-Distributionen, wie etwa Debian (Abbildung 6). Auf diesem Weg lässt sich auch Linux-Software nutzen, die nicht auf ARM portiert wurde.
x86-Emulation
Docker nutzt für den gerade beschriebenen Trick den Qemu User Space Emulator [4]. Diesen installieren Sie mit den Befehlen aus Listing 2. Danach führen Sie Binaries anderer Plattformen ohne weitere Umstände einfach aus.
Listing 2
Qemu User Space Emulator
$ sudo apt install qemu-user-static $ sudo systemctl daemon-reload
Linux erkennt, dass die Plattform nicht passt, und startet den Emulator, der das Programm Schritt für Schritt abarbeitet und die fremden Prozessorbefehle übersetzt. Will die Software ein Betriebssystem-Feature nutzen, löst das einen System Call aus, den Qemu mithilfe einer Übersetzungstabelle an das auf dem RasPi laufende Ubuntu weitergibt. Das klappt aber nur bei statisch gelinkten Binaries, die beim Start keine Bibliotheken dynamisch nachladen, oder auf Systemen, die alle benötigten Bibliotheken in Versionen für die fremde Plattform mitbringen. Letzteres ist bei Docker-Images der Fall, weswegen der Ansatz so gut funktioniert.
Abbildung 7 zeigt ein kleines Testprogramm, das auf dem Raspberry Pi und auf einem PC jeweils unter Ubuntu mit der GCC-Option --static in ein statisches Binary übersetzt wurde. Ubuntu konnte dank Qemu beide Versionen starten.
Box86 und Box64
Box86 und Box64 [5] erlauben es ebenfalls, 32- und 64-Bit-Linux-Programme auf dem RasPi auszuführen. Die miteinander verwandten Tools agieren noch cleverer als Qemu.









