ArchLinux auf Smartphones


Schaut man sich in der Welt der Betriebssysteme um so stellt man fest, dass RollingRelease nicht weit verbreitet ist. Außer ArchLinux setzt es höchstens noch Gentoo ein, diese Distribution wird jedoch in praktischen Systemen nicht genutzt, sondern wird lediglich von Chrome OS als Distributionsbautkasten benötigt. Weitere Beispiele gibt es keine: sowohl Debian, Ubuntu und Fedora verwenden Stable-Releases. Parallel dazu wird von fachkundiger Seite immer wieder darauf hingewiesen, dass die Stable-Release Versionen von Debian nur Sicherheit suggerieren und in Wahrheit zurückgehaltene Webkit Librarys dafür verantwortlich sind, dass man lieber nicht mit einem Debian Webbrowser im Internet surfen sollte.

Um die Sachlage besser bewerten zu können richten wir unseren Blick auf die Smartphone Welt. Dort liefern große Hersteller wie Sony oder Samsung ihre Geräte mit dem Android Betriebssystem aus und zwar in einem Stable-Release Versionsssystem. Das heißt, es gibt alle 2 Monate ein neues Update und irgendwann gibt es gar keine Updates mehr, was dazu geführt hat, dass Android auf Smartphones als extrem unsicher gilt. Die Alternative dazu ist CyanogenMod. Dieses System wird jedoch nur auf geschätzt 1% aller Smartphones eingesetzt.

Was ArchLinux für die PC Welt ist, das ist CyanogenMod für die Smartphone Welt. Wie auch bei ArchLinux gibt es sogenannte Nightly Builds, damit sind tagesaktuelle Updates gemeint. Wenn der User streng nach Vorschrift vorgeht, müssen diese Updates im Umfang von 200 MB täglich auf das Gerät eingespielt werden, was einen hohen Datentraffic erzeugt. Inzwischen gibt es eine App namens DeltaCyan welche die Updates auf einen Umfang von 20 MB komprimiert aber auch diese Menge muss täglich in das Handy eingespielt werden. Mit ungewissem Ausgang: man weiß nie ob das Gerät danach noch bootet. Im Worst-Case muss man eine komplette Neuinstallation durchführen. Ein Verfahren, von dem auch ArchLinux User zu berichten wissen.

Wir haben auf der einen Seite das etablierte Konzept des StableRelease System was Debian, Ubuntu und Android Hersteller verwenden. Das führt dazu, dass Updates sehr verzögert weitergegeben werden (oder gar nicht) was aber garantiert, dass die Geräte immer booten. Und auf der anderen Seite haben wir Rollling-Release was von ArchLinux und CyanogenMod verwendet wird, dass dazu führt, dass man täglich Updates einspielen muss dafür jedoch immer ein 100% gepatchtes System besitzt. Was ist besser?

Sowohl der Massenmarkt als auch die Mehrheit der Programmierer sagt derzeit, dass Stable-Release Versionen die bessere Wahl sind. Sowohl Anwender als auch Distributions-Maintainer setzen darauf. Meiner Ansicht zu Unrecht. Das Konzept ist veraltet, und ist unfähig die Sicherheit der Geräte zu gewährleisten. Es führt dazu, dass einerseits im Upstream längst verbesserte Programmversionen existieren die aber nie Eingang finden in die konkreten Betriebssysteme. Natürlich hat die Alternative (Rolling Release) ebenfalls schwächen. Zum einen fällt täglich ein Download an im Umfang von mehreren Megabyte. Auch ArchLinux User müssen täglich rund 50 MB auf die Festplatte herunterladen und dabei werden anders als bei CyanogenMod nur die Pakete aktualisiert die sich verändert haben. Gleichzeitig besteht die Gefahr, dass danach das System kaputt geht, weil die Updates nicht oder nur oberflächlich getestet wurden. Aber ich glaube diese Probleme sind Detailprobleme die man akzeptieren muss und nicht etwa Rolling-Release als solches in Frage stellen darf.

Das bedeutet ganz konkret, dass Lösungen gesucht und gefunden werden müssen um die Nachteile von Rolling-Release abzumildern. Im ArchLinux Umfeld bedeutet es beispielsweise, dass sich der Anwender ein wenig mit seinem System beschäftigt und einen Rettungs-USB Stick erstellt mit dem er auch kaputte Systeme noch booten kann. Im Android Umfeld bedeutet es, dass man ähnlich wie CyanDelta es vormacht zunächst einmal die Update-Prozedur erleichtert und sich auch hier ein Rettungs-Image bereitlegt um im Worst-Case das Android Device noch booten zu können. Die Zielstellung als solche (auf dem Gerät ist immer tagesaktuelle Software) darf nicht in Frage gestellt werden.

Aus Sicht des Upstreams ist die Sachlage eindeutig. Sowohl für ArchLinux Systeme als auch für Android Geräte erscheinen täglich Verbesserungen. Man kann das sowohl anhand der Updates als auch über die Changelog-Files sehen. Der Grund ist dass ein Betriebssystem aus sehr vielen unterschiedlichen Programmen besteht woran unabhängig voneinander gearbeitet wird. Wenn man ein ganz normales ArchLinux installiert hat ohne irgendwelche Extras wird man bemerken, dass praktisch täglich kleine Veränderungen bereitstehen. Mal betrifft das Gnome, ein anderes mal den Linux-Kernel oder Anwenderprogramme. Zu glauben, es ist gut wenn man diese Änderungen zurückhält ist fatal. Sondern es ist so, dass jedes Update den Nutzer näher heranbringt an den gewünschten Stable-Zustand. Stable kann ein Betriebssytem nur in der Zukunft sein, wenn alle Updates eingespielt sind, niemals in der Vergangenheit.

Empfehlswert ist es, wenn man zunächst eine Entscheidung trifft was man möchte: will man StableRelease a la Samsung Smartphone und Debian oder will man Rolling-Release a la ArchLinux und CyanogenMod? Ausgehend von der Entscheidung RollingRelease muss man dann etwas überlegen was funktioniert. In der PC Welt ist derzeit Antergos die beste und leichteste Methode ein Rolling-Release zu nutzen. Es ist nicht nur einfach zu installieren sondern über eine Rettungs-ISO kann man auch defekte Systeme gut booten. In der Android Welt ist die Lage nicht so übersichtlich. Scheinbar ist CyanogenMod mit dem CyanDelta Updater die derzeit beste Wahl, aber wirklich ausgereift ist das ganze noch nicht. Hier besteht noch Verbesserungsbedarf.

Die grundsätzliche Frage ist warum es im Upstream überhaupt tagesaktuelle Updates gibt? Selbst wenn man Stable-Release verwendet aktualisiert der Upstream ja trotzdem täglich seine Repositorys. Der Unterschied ist nur, dass diese Veränderungen nicht ins Betriebssystem eingespielt werden, was die erwähnten Sicherheitsprobleme zur Folge hat.

Wenn man in ArchLinux den Befehl „pacman -Qi“ (-Q querry -i info) eingibt erhält man eine Liste aller installierten Pakete. Es sind eine ganze Menge. Mehrere hundert an der Zahl. Bei einem Android Betriebssystem ist die Anzahl nicht viel kleiner. Anders als zu Zeiten von C-64 und Amiga 500 besteht das Betriebssystem nicht länger aus 2-3 Kernel Routinen die irgendwo auf dem ROM gespeichert werden sondern der Umfang ist größer, und die Update-Häufigkeit höher. Insbesondere Internet-fähige Betriebssysteme die sehr unterschiedliche Dateiformate anzeigen können und sehr unterschiedliche Protokolle wie SSL beherschen werden im Sourcecode praktisch permanent verbessert und optimiert. Ist hier noch die alte Stable-Release Update-Politik das Mittel der Wahl? Leider nein. In dem Moment wo Betriebssysteme eingesetzt werden die aus hundert und mehr Packages bestehen die noch dazu vom Upstream regelmäßig verbessert werden, ist es nötig dass man auf Rolling-Release wechselt. Wenn es dabei zu Nachteilen oder Problemen kommt, müssen diese erkannt und gemindert werden. Das gilt insbesondere für OpenSource Betriebssysteme bei denen sehr unterschiedlicher Code zusammenarbeitet. Im Grunde ist das was Debian oder die Android Mainstream Welt versucht, einerseits ein Linux zu nutzen aber das als Stable-Release zu updaten, kompletter Unfug.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s