Linux-Apps auf Chrome OS

Dank Project Crostini werden Linux-Apps bald auf Chrome OS verfügbar sein, beginnend mit dem Google Pixelbook. Was ist Crostini und warum ist es so wichtig? Wir befassen uns mit der größten Änderung an Chrome OS seit der Integration der Android-App.

Hier finden Sie alles, was Sie über Googles jahrelange geheime Entwicklung der Linux-App-Funktionalität in Chrome OS, auch bekannt als Project Crostini, wissen müssen.

Kurz gesagt, es ist eine Möglichkeit, normale Linux-Anwendungen unter Chrome OS auszuführen, ohne die Sicherheit zu beeinträchtigen oder den Entwicklermodus zu aktivieren. Die (noch nicht verfügbare) offizielle Einstellungszustände dass es darum geht, „Linux-Tools, Editoren und IDEs auf Ihrem Chromebook auszuführen“.

Crostini ist das Ergebnis einer mehrjährigen Entwicklungsarbeit, die es ermöglicht hat, dass die Funktionalität sicher genug läuft, um die hohen Sicherheitsstandards von Chrome OS zu erfüllen. Um zu verstehen, warum es gerade erst auftaucht, ist es am besten, einen Blick auf das zu werfen, was davor war.

Crostini in den Kontext stellen – das dunkle Zeitalter von Chrome OS

Bevor Android-Apps auf den Markt kamen, gab es in Chrome OS kaum Offline-Funktionen, geschweige denn nützliche Produktivitäts-Apps. Warum sollte ein vernünftiger Mensch ein Chromebook kaufen? „Es ist nur ein Webbrowser“, war die Schlussbemerkung jeder Chromebook-Rezension. Der Chrome Web Store war so groß wie möglich, aber die Auswahl an Apps war ziemlich dürftig und wurde nur selten aktualisiert. Abenteuerlustige könnten versuchen, Android-Anwendungen mit einem Tool namens auszuführen Lichtbogenschweißgerät, aber das war ein Zufall und die Leistung war schlecht.

Um Offline-Einschränkungen zu umgehen, haben frustrierte Benutzer entweder Chrome OS gelöscht und Linux installiert oder das Open-Source-Tool verwendet Crouton um eine simultane Desktop-Umgebung [z. B. Ubuntu Unity] einzurichten, die auf dem Chrome OS-Kernel läuft.

Die Installation von Crouton, einem Open-Source-Toolkit, das früher de facto die Möglichkeit war, auf Linux-Apps unter Chrome OS zuzugreifen, wird bald veraltet sein

Das Ausführen einer Ersatz-GNU/Linux-Distribution oder von Crouton erforderte einiges an Know-how und war oft voller Fehler – und keine der Optionen war besonders benutzerfreundlich oder sicher. Wenn Sie die falsche Taste drücken, wird Ihr Gerät gelöscht oder blockiert. Wenn Sie Ihre Crouton-Umgebung unverschlüsselt lassen, könnte jeder Gastbenutzer darauf zugreifen.

Android-App-Integration, die einen Präzedenzfall schafft

Die Einführung von Android-Apps auf Chrome OS im Jahr 2016 bedeutete einen gewaltigen Sprung in der Offline-Funktionalität, aber die Aktivierung dieser Funktionalität war nicht nur Plug-and-Play. Die einzige Möglichkeit, dass es auf einem Betriebssystem funktionieren könnte, das Wert auf Sicherheit legt, wäre, wenn es effektiv in einer Sandbox untergebracht wäre.

Die neuartige Lösung, für die sich die Chrome OS-Entwickler entschieden haben, war Containerisierung, eine Möglichkeit, Anwendungen in eigenständigen ausführbaren Paketen zu bündeln. Mithilfe eines Containers und mehr als nur ein paar Optimierungen gelang es ihnen, die vollständige Android-Umgebung und alles zu erhalten seine Abhängigkeiten sollen in einem Container ausgeführt werden, der vom Rest von Chrome OS getrennt ist und dennoch auf demselben ausgeführt wird Kernel.

Aber Android-Apps werden normalerweise nicht für den Desktop-/Laptop-Formfaktor entwickelt. Fügen Sie noch ein schlechtes Touch-Erlebnis unter Chrome OS hinzu, und Sie werden eine frustrierende Produktivitätssitzung erleben, wenn Apps überhaupt funktionieren.

Probleme mit der Kompatibilität – Android-Apps auf Chrome OS

Während Android-Apps bisher dazu beigetragen haben, die Produktivitätslücke zu schließen, bestand immer noch die Sehnsucht nach der riesigen Bibliothek vollständiger Desktop-Apps. Wie beim anfänglichen Android-Problem reichte es aus, einfach die Möglichkeit zu eröffnen, Linux-Anwendungen auszuführen Erhöhen Sie die Angriffsfläche von Chrome OS, da bösartige Anwendungen Zugriff auf alles auf dem Gerät haben könnten Host-Betriebssystem. Deshalb haben die Entwickler dieses Mal die Linux-App-Funktionalität so isoliert wie möglich gestaltet, zusätzlich zu dem, was sie bereits mit Android gelernt haben.

Verteidigung in der Tiefe

Wie der Name schon sagt, ist Crostini wie Crouton, aber statt eines unsicheren Benutzerbereichs neben Chrome OS gibt es zwei Wände dazwischen. Die erste Wand ist Termina VM, eine Chrome OS KVM-Implementierung (Kernel-based Virtual Machine). Sobald diese VM gestartet ist, baut sie die zweite Wand – einen Container – auf, der dann die App enthält, die Sie tatsächlich ausführen möchten. Wenn Sie also Ihre vollwertige Klondike-Desktop-App ausführen möchten, läuft sie in einem Container innerhalb einer VM.

Die Entwickler haben die öffentlich zugängliche Dokumentation nicht aus nichttechnischer Sicht besonders verständlich gemacht, wohl aber aus meiner inoffiziellen Laienlesung der Software Die Architektur für Chrome OS sieht jetzt wahrscheinlich so aus [Hinweis: Alle funktionieren von mir, definitiv kein offizielles Dokument des Chrome OS-Teams, wahrscheinlich völlig unwahr, bitte nicht TU mir weh]:

Wie unserer Meinung nach Crostini-Architektur aussieht. Kein offizielles Dokument.

Kurz gesagt: Die VM-Komponente verfügt über einen separaten Benutzerbereich und virtuelle Geräte (vCPU, IP, MAC usw.), und der Container ist eine gepackte App, die diese Ressourcen nutzt. An dieser Stelle sollte ich einen Vorbehalt bezüglich der VM-Komponente hinzufügen emuliert eigentlich keine Hardware.

Nur reiche Leute... vorerst

Einige, wie die Community bei Reddit /r/Crostini, haben bereits begonnen, an Crostini herumzubasteln Google Pixelbooks. Leider ist das Das Pixelbook ist bisher das einzige Gerät, das über Crostini-Funktionalität verfügt, aber Anzeichen deuten darauf hin, dass andere Geräte, sogar solche mit ARM-System-on-Chips, in Zukunft Unterstützung erhalten. Aber vielleicht Noch nicht ganz für 32-Bit-Maschinen. Es gibt auch Hinweise darauf, dass einige Teile der VM-Funktionalität zum Ausführen von Crostini erforderlich sind wird für Geräte mit älteren Kernel-Versionen nicht verfügbar sein.

Wenn Sie so weit gekommen sind, fragen Sie sich wahrscheinlich: Was kann ich ausführen? Der Erfolg war begrenzt. Chrome-Entwickler haben angedeutet, dass sie Visual Studio ausführen. Reddit-Benutzer haben WINE und Android Studio zum Laufen gebracht, und ChromeUnboxed hat dabei geholfen Videodemo. Aber wir werden wahrscheinlich nicht alle Möglichkeiten – und Einschränkungen – kennen, bevor Google tatsächlich etwas vorstellt. Was wir wissen, ist das Apps sind dauerhaftDas bedeutet, dass Sie dort weitermachen können, wo Sie aufgehört haben, und dass die Entwickler daran arbeiten, sie in Ihrer Liste der zuletzt verwendeten Apps verfügbar zu machen.

Was als nächstes? Ein paar Punkte, die es zu beachten gilt

Wenn Sie sich im Entwicklerkanal auf einem anderen Chromebook als einem Pixelbook befinden, ist die Terminal-App möglicherweise auf Ihrem Chromebook angekommen. Möglicherweise wird die Fehlermeldung „Concierge konnte nicht gestartet werden“ angezeigt. Das liegt daran, dass die VM-Funktionalität auf anderen Geräten als dem Pixelbook noch nicht aktiviert wurde.

Wir wissen noch nicht, wie Ressourcen zugewiesen werden und welchen Overhead diese verschachtelten Apps verursachen. Die Idee, auf Linux-kompatiblen Steam-Spielen zu spielen, ist verlockend, aber wenn keine GPU-Beschleunigung verfügbar ist, ist das vorerst ein No-Go.

Wir wissen nicht, welche Einschränkungen der Luftspalt zwischen Host und Container mit sich bringt (falls vorhanden). Die Kommunikation zwischen dem Container und Chrome OS wird kontrolliert. Wird dies also zu Latenz führen oder sogar einige Peripheriegeräte deaktivieren?

Wir haben viele unbeantwortete Fragen und es ist nur eine Frage der Zeit, bis alles geklärt ist. Viele sind überzeugt Google I/O 2018 In ein paar Wochen wird es die große Enthüllung geben – es macht Sinn, da es sich um eine Entwicklerkonferenz handelt. Bleiben Sie in der Zwischenzeit auf dem Laufenden, während wir Crostini im Auge behalten.


Quellen:

Maksim Lin – Chrome OS-Container

Chromium Git - ARC-Container-Bundle, vm_tools, Projekttermina, crosvm