Chrome OS Crostini angesehen: Dieses Nerd-Unix läuft wie geschnitten Brot

Seit mittlerweile fast drei Jahren versucht Microsoft mit dem Windows Subsystem für Linux ( WSL im Test ), Entwickler auf seiner Plattform zu halten oder gar von OS X und Linux zurückzugewinnen. Einen ähnlichen Weg geht Google seit rund einem Jahr auch mit seinem Chrome OS, das eigentlich nie für die Entwicklung vorgesehen war, sondern vielmehr für leichte Office-Arbeiten oder zum schlichten Konsum. Die Linux-App-Unterstützung in Chrome OS mit dem Codename Crostini zeigt, dass Chrome OS tatsächlich Potenzial für viel breitere Einsatzzwecke hat, als es bisher ermöglichen konnte. Noch fehlen dazu aber einige Details.
Der Name Crostini ist nicht viel mehr als eine witzig gemeinte Anspielung auf das Crouton-Projekt. Mit Hilfe von Letzterem ist es seit einigen Jahren ebenfalls möglich, Linux-Distributionen und deren Pakete unter Chrome OS zu verwenden, allerdings nur im sogenannten Entwicklungsmodus. Bei diesem stehen unter anderem die Sicherheitsfunktionen von Chrome OS nicht zur Verfügung. Crostini soll Chrome-OS-Nutzern eine ähnliche Umgebung bereitstellen wie Crouton, dabei aber offiziell in den stabilen Codezweig von Chrome OS integriert sein.
Echtes Linux fast im Handumdrehen
Durch Crostini bekommen die Chromebook-Nutzer Zugriff auf eine Vielzahl von Desktop-Anwendungen, die ebenso wie die Android-Unterstützung die gesamte Softwareauswahl sprunghaft vergrößern. Darüber hinaus ist die Linux-Unterstützung auch aus technischer Sicht für Google wohl vergleichsweise einfach umzusetzen.




Während für das WSL noch Verrenkungen nötig waren, kann Google für Crostini einfach den Linux-Unterbau von Chrome OS wiederverwenden. Ebenso hat die Android-Integration schon einige Vorarbeiten übernommen. Letztlich fasst das Team für Crostini viele moderne und für Linux typische Techniken zu einem sehr gut durchdachten Gesamtpaket zusammen, das den Entwicklern, die das System nutzen sollen, überraschend viele Möglichkeiten bietet.
Eine Umgebung für Entwickler
In unserem Test des Chromebook Spin 13 von Acer sind wir nur kurz auf die Linux-Unterstützung eingegangen und das auch nur aus Sicht einfacher Nutzer, die schnell eine typische Desktop-Anwendung installieren und verwenden wollen. Aus Sicht eines Windows-Nutzers war das aber nicht besonders erfolgreich und gelungen umgesetzt.
Crostini ist jedoch vor allem für Entwickler gedacht und gefällt dem Linux-Redakteur und -Nutzer aus dieser Perspektive schon ganz gut, auch wenn einige wichtige Funktionen noch fehlen. Wer auf der Kommandozeile zu Hause ist, wird sich in Crostini schnell zurechtfinden und, wie wir auch, wohl direkt die Arbeit damit beginnen können. Die neuen, bereits angekündigten Funktionen wollen wir außerdem möglichst schnell als Update haben.
Das Linux im Linux
Aus der Sicht üblicher Linux-Distributionen wie dem von der Community gepflegten Debian oder dem von Unternehmen unterstützen Fedora, Ubuntu oder Opensuse war Chrome OS immer ein Sonderling. Genau genommen ist Chrome OS eine Art Gentoo-Derivat, nutzt relativ viele Grundlagen von Gentoo und die Entwickler sind sehr fokussiert darauf, möglichst alle eigenen Änderungen am Code in den Hauptzweig ihrer jeweiligen Upstream-Projekte einzupflegen - ganz im Gegensatz zu Android, das damit immer noch reichlich Probleme hat.
Die bisherigen Nutzer von Chrome OS sollten davon aber nichts mitbekommen. Für sie war das Betriebssystem nicht viel mehr als ein ausgefeilter Browser. Und für die experimentierfreudigen Nutzer gab es ja immer noch Crouton, mit dem eine echte Linux-Umgebung samt Wahlfreiheit und Entwicklerwerkzeugen auf Chromebooks bereitstand. Crostini soll das wie erwähnt nun eben regulär bieten.
Die Installation ist sehr einfach. In den Einstellungen wird die entsprechende Option ausgewählt und ein kurzer Dialog gibt darüber Bescheid, dass die Linux-Umgebung nun installiert wird. Danach steht in der Anwendungsübersicht ein Terminal bereit, das uns direkt auf eine Shell-Umgebung des aktuellen Debian Stretch wirft. Hier können wir direkt wie gewohnt per Apt Pakete installieren, mit Systemd Dienste verwalten und auch eine Entwicklungsumgebung aus Compilern, Werkzeugen und Servern einrichten.
Gut durchdachter Unterbau
Damit das alles so einfach ist, hat das Entwicklerteam von Google viele vorhandene Linux-Techniken kombiniert und auch den eigenen Bedürfnissen angepasst. Herzstück der ganzen Architektur ist das in Rust geschriebene Werkzeug Crosvm. Dabei handelt es sich um einen Virtual-Machine-Monitor, also einen Hypervisor auf Basis von KVM, der als leichtgewichtiger Ersatz von Werkzeugen wie etwa Qemu dienen soll.
Crosvm nutzt zur Kommunikation zwischen Gast und Hostsystem ausschließlich die VirtIO-Schnittstellen des Linux-Kernels. Darüber hinaus wird aus Sicherheitserwägungen jedes virtualisierte Gerät mit Minijail(öffnet im neuen Fenster) außerdem in eine Art Sandbox aus Namensräumen und der Seccomp-Technik gesperrt.
Als bisher einziges Gastsystem wird darüber die Termina-VM gestartet, die, wie das Team in der Dokumentation selber schreibt, leider unglücklich benannt ist. Dabei handelt es sich um eine auf das Nötigste abgespeckte Version von Chrome OS selbst, die nur möglichst schnell starten soll. Hierin läuft wiederum LXD, das für die Verwaltung von Containern genutzt werden kann und hier vor allem für den standardmäßig genutzten Debian-Container, der Penguin heißt.
Eine VM mit vielen Zusatzdiensten
Zugriff auf die bereits erwähnten Werkzeuge erhalten Nutzer zunächst über Crosh, die minimale Terminal-Umgebung von Chrome OS. Dort kann das Werkzeug Vmc genutzt werden, um auch manuell die Termina-VM zu starten oder zu beenden. Noch ist hier tatsächlich nur die Nutzung von Termina möglich, Google arbeitet derzeit aber an einer Technik für sogenannte Plugin-VMs , mit der auch andere Betriebssysteme genutzt werden können.
Der weitere Aufbau soll hier nur kurz erwähnt werden und findet sich detailliert und gut beschrieben in der Dokumentation des Projekts(öffnet im neuen Fenster) . Die Kommunikation zwischen Host und Gast-VM geschieht per gRPC über Vsock. Die Verwaltung von VM und Container auf Hostseite übernimmt dabei der Daemon Concierge, auf Gastseite dann der Dienst Maitred, der auch aus Init-Dienst im Gast fungiert.
Dazu kommen weiter spezialisierte Dienste wie der Wrapper für LXD, Tremplin, der Daemon Cicerone für den laufenden Betrieb und Seneschal, das für die Dateisystemkommunikation über einem 9P-Server und das gleichnamige Dateisystemprotokoll sorgt.
In dem von der VM gehosteten Container genutzt werden dann außerdem der Dienst Garcon, der sich mit Cicerone auf dem Host verknüpft, und Sommelier als Proxy-Compositor für Wayland, der Inhalte und Events an das Hostsystem weiterreicht, wo diese schließlich gerendert werden. Sommelier kann außerdem einen XWayland-Server starten und die Umgebung somit auch X11-Anwendungen darstellen.
Unix auf Steroiden
Schon bei der ersten öffentlichen Bekanntmachung des Systems durch die Freigabe von Code hat uns der Aufbau an Ideen wie Systemd-Nspawn erinnert , mit dem sich auf üblichen Linux-Distributionen schnell und leicht andere Linux-Systeme starten lassen. Die Systemd-Entwickler bezeichnen dies als "Chroot auf Steroiden" .
In diesem Sinne ist die Crostini-Architektur ein Unix auf Steroiden. Immerhin hat das Team gemäß der Unix-Philosophie(öffnet im neuen Fenster) , Programme so zu schreiben, dass sie "nur eine Aufgabe erledigen und diese gut machen" , verschieden Daemons umgesetzt, die diesem Anspruch folgen. Der Hypervisor Crosvm ist darüber hinaus auch nur dazu gedacht, einen Linux-Gast auf einem Linux-Host möglichst schnell und sicher zu starten.
Die Programme arbeiten zwar nicht mehr wie vor fast 40 Jahren angedacht über Textdateien miteinander, dafür aber über eine Interprozesskommunikation per RPC sowie über die simplen VirtIO-Schnittstellen, die der Kernel bereitstellt. Mit der Nutzung von 9P für die Dateisystemkommunikation nutzt Crostini letztlich gar direkt Ideen aus dem ideellen Unix-Nachfolger Plan 9. Auch die Nutzung von Containern und den Jails als Prozess-Sandboxes sind typische Unix-Konzepte, die teils seit Jahrzehnten genutzt werden.
Auch Google nutzt Teile dieser Technik wie die Container oder Wayland bereits seit einigen Jahren für seine Android-Integration. Wenig überraschend ist der für die Android-Integration zuständige Entwickler Dylan Reid nun auch führend an der Linux-App-Unterstützung beteiligt.
Eigene Container zum Basteln
Zusätzlich zu diesem für Unix-Liebhaber sehr interessanten Aufbau gibt Google Entwicklern aber noch mehr als nur die hauseigenen Werkzeuge in die Hand. Zwar lässt sich mit dem Debian-Container namens Penguin schon einiges anstellen, wirklich spannend wird aber erst die Nutzung eigener Container, was Dank LXD problemlos möglich ist.
Dank des Aufbaus mit der Termina-VM, die die Hardware zusätzlich von den Containern isoliert, ist es für die Sicherheit von Chrome OS nicht von Nachteil, weiter Container zuzulassen. Die Nutzer verlieren dabei zwar die besonders enge Integration in das Hostsystem, das ist im Zweifel aber vielleicht nicht allzu wichtig.
So können über die Kommandozeilenwerkzeuge von LXD einfach weiter Container mit anderen Distributionen wie Alpine oder Ubuntu installiert werden. Dort lassen sich dann jeweils eigene Anwendungen, Server und Datenbanken starten. Die Portweiterleitung ist hier zudem weitgehend aktiviert, so dass sich auch Entwicklungen mit einem komplexeren Aufbau und mehreren Bestandteilen gut testen und erstellen lassen.
Crostini ist zu Höherem berufen
Wir haben schnell Spaß und Gefallen an dem Konzept und der Ausführung von Crostini gefunden. Dafür, dass Chrome OS für uns bisher nicht viel mehr als eine Spielerei mit einem Browser war, hat uns Crostini doch sehr positiv überrascht. Vor allem diejenigen Nutzer, die auch bisher schon viel in Umgebungen wie dem erwähnten Systemd-Nspawn oder auch an und mit Container entwickeln, ohne dabei viel Wert auf die Basisdistribution zu legen, könnte Crostini tatsächlich einen Mehrwert bieten.
Die Unzulänglichkeiten von Crostini liegen derzeit noch in der fehlenden technischen Unterstützung einiger wichtiger Hardwaregeräte. Dazu gehören die Audioausgabe, die USB-Unterstützung und nicht zuletzt auch die 3D-Hardware-Beschleunigung über die GPU . Aber auch hieran arbeitet Google bereits und testet dies in ausgewählten Geräten.
Ähnliche Strategie wie Microsoft
Letztlich stellt sich eigentlich nur noch die Frage, warum Google überhaupt so viel Arbeit und Ressourcen in Crostini steckt. Immerhin bedient Chrome OS die bisherige Zielgruppe aus Schülern, Studenten und jenen, die nur eine kleine, billige Office-Kiste benötigen, eigentlich ganz gut. Zur Beantwortung der Frage drängt sich ein Vergleich von Crostini zu dem eingangs erwähnten WSL von Microsoft in Bezug auf die strategische Ausrichtung der Projekte geradezu auf, auch wenn der Vergleich aus technischer Sicht eher unfair erscheint.
Die Entwicklung und Nutzung moderner und derzeit stark wachsender Technologien vor allem im Web und beim Cloud Computing findet zu sehr großen Teilen auf klassischen Linux-Systemen statt. Microsoft kann hier trotz großer Anstrengungen wie etwa .Net Core oder gar dem Port von Docker- und Container-Technologien kaum mithalten. Das WSL ist hier zumindest der Versuch, die Entwickler und Nutzer der Technologie auf der eigenen Plattform zu halten und so vielleicht auch an eigene Dienste zu binden. Darüber hinaus ist dies ein Schritt von Microsoft in Richtung seiner großen Enterprise-Kunden, die oft das ganze Unternehmen mit Windows-Rechnern ausstatten. Hier können nun auch die Linux- und Cloud-Entwickler bedient werden.
Google befindet sich aus diesem Betrachtungswinkel heraus in einer ähnlichen Situation. Mit Android und Chrome OS vertreibt das Unternehmen zwar zwei erfolgreiche Betriebssysteme, die aber als Produktivsystem für Entwickler wenig geeignet sind. Große Entwicklungsabteilungen setzen hier im Zweifel eher auf MacOS oder eine der üblichen Linux-Distributionen. Ein gutes Beispiel hierfür ist Google selbst, das mit gLinux gar eine eigene Distribution auf Basis von Debian pflegt, statt sein eigenes Betriebssystemprodukt großflächig verwenden zu können.
Crostini in Chrome OS könnte hier vor allem zusammen mit dem auch an sehr großen Bildungseinrichtungen und in Unternehmen erprobten Enterprise- und Administrationsmodus(öffnet im neuen Fenster) sowie dem sehr strengen Sicherheitskonzept des Betriebssystems punkten. Darüber hinaus schafft der Fokus auf Entwickler und deren Bedürfnisse auch endlich einen echten Markt für höherpreisige und hochwertig verarbeitete Chromebooks, die bisher zum bloßen Surfen und für einfache Büroarbeiten völlig überdimensioniert waren.
Verfügbarkeit und Fazit
Google verteilt die Crostini-Funktion seit der Version 69 des Betriebssystems , die im vergangenen Herbst erstmals erschienen ist. Genutzt werden kann die Technik aber nicht auf allen Geräten, sondern nur auf jenen, die bestimmte Anforderungen an verfügbaren Arbeitsspeicher sowie CPU-Leistung erfüllen und eine Hardwarevirtualisierung unterstützen.
Das System ist aber nicht nur auf die x86-Architektur beschränkt. Crostini läuft auch auf einigen wenigen Arm64-Geräten. Das Alter der Chromebooks ist dabei tatsächlich eher weniger wichtig als die Hardwareausstattung. Eine vollständige Liste(öffnet im neuen Fenster) liefert das Chromium-Projekt in seiner Dokumentation. Leider finden sich dort nur die Codenamen der Geräte, die wiederum mit einer weiteren Liste aufgelöst(öffnet im neuen Fenster) werden können.
Fazit
Als Linux-Nutzer überzeugt uns das Konzept von Crostini vor allem wegen der eleganten Architektur. Das Team von Google nutzt mit den VMs und einem eigenen Hypervisor, den VirtIO-Geräten in Jails sowie LXD und Containern so ziemlich jede moderne und derzeit verfügbare Linux-Technik, um Systeme voneinander abzuschotten. Dabei wird aber trotzdem eine Entwicklungsumgebung mit möglichst vielen Freiheiten bereitgestellt.
Interessant wird die Nutzung langfristig für den zuvor kurz skizzierten Unternehmenseinsatz und für jene Entwickler, die ihrem Linux-Unterbau wenig Wert beimessen, statt sich mit Verve in endlosen Diskussionen über die beste Linux-Distribution zu verstricken.
Erfolg haben könnte Google mit Crostini vermutlich vor allem mit dem Fokus auf eben jene Web- und Cloud-Entwickler, die tatsächlich mehr oder weniger unabhängig von der genutzten Linux-Distribution agieren können. Darüber hinaus hat das System auch großes Potenzial für die Android-Entwicklung, denn statt wie bisher einen mehrere Gigabyte großen Emulator zu verwenden, kann Google auch einfach die Android-Container in die Entwicklungsumgebung von Crostini integrieren.
Bis es dazu kommen kann, muss Google noch einige wichtige Details wie etwa die 3D-Beschleunigung per GPU umsetzen, damit das System wirklich konkurrenzfähig wird. Der nun verfügbare Anfang der Arbeiten gefällt uns aber auf jeden Fall schon besser als die Anfangsphase des WSL von Microsoft. Das liegt zwar schlicht prinzipbedingt an dem Linux-Unterbau von Chrome OS, was aber eben auch ein klarer Vorteil für Google ist.



