Details zu den internen Abläufen

Dies ist ein komplexer Vorgang, den wir neuen Linux-Nutzern nicht empfehlen.

ChromeOS unterstützt die Ausführung von beliebigem Code in VMs. Dies ist die Low-Level-Dokumentation zu dieser Unterstützung. Eine nutzerfreundlichere Ansicht finden Sie in den faq.

Vorbereitung

Laufzeitfunktionen

Die folgenden Funktionen sollten bei der Ausführung Ihres Linux-Containers funktionieren:

  • Ausgehende Netzwerkverbindungen (IPv4).
  • Nicht beschleunigte Grafiken.
  • Beschleunigte Grafiken (über OpenGL)
  • Wayland-Programme (bevorzugt; über Sommelier).
  • X-Programme (Kompatibilität über Sommelier und XWayland).
  • Audioausgabe in M74+ und experimentelle Aufnahme/Mikrofon in R79+-Images.

Fehlende Features

Wir arbeiten daran, viele einfache Dinge zu verbessern. Hier einige Beispiele:

Das ChromeOS-Team berücksichtigt zwar noch weitere Aspekte, geht aber bei der Einführung neuer Funktionen vorsichtig vor, um die allgemeine Systemsicherheit nicht zu gefährden. Weitere Informationen zu den meisten Themen rund um die Entwicklung unter Linux auf ChromeOS finden Sie in den Crostini-FAQs.

Sicherheit

Das Ausführen von beliebigem Code ist normalerweise ein Sicherheitsrisiko. Das ChromeOS-Team ist jedoch der Ansicht, dass das vom Linux-Container in ChromeOS verwendete Laufzeitmodell dieses Sicherheitsrisiko ausreichend mindert und eindämmt. Die virtuelle Maschine (VM) ist die Sicherheitsgrenze und alles, was sich darin befindet, wird als nicht vertrauenswürdig eingestuft. Auf dem aktuellen VM-Gast-Image wird auch ein benutzerdefinierter gehärteter Kernel ausgeführt, um die Sicherheit der Container weiter zu verbessern. Dies wird jedoch eher als nützliches Feature betrachtet und nicht als Grundlage für die allgemeine Systemsicherheit.

In diesem Modell sollte der Rest des ChromeOS-Systems vor beliebigem Code (böswillig oder versehentlich) geschützt bleiben, der in den Containern in der VM ausgeführt wird.

Der einzige Kontakt zur Außenwelt erfolgt über crosvm und jeder Channel kommuniziert mit einzelnen Prozessen, die jeweils stark in einer Sandbox ausgeführt werden.

Nutzerdaten im Container

Mit der Verlagerung zu Cloud-Diensten wird in der aktuellen Sicherheitsphilosophie hervorgehoben, dass das Erhalten von Kontoanmeldedaten (z.B. Ihre Google-/Facebook-Passwörter) ein lukrativerer Angriffsvektor ist als das Angreifen Ihres Desktop- oder Laptop-Computers. Sie sind nicht falsch. Die aktuelle ChromeOS-Lösung für VMs/Container verbessert dies derzeit nicht. Einfach gesagt: Alles, was in den Container eingegeben wird, liegt derzeit in der Verantwortung des Nutzers. Wenn Sie also einen unsicheren oder manipulierten Container ausführen und dann Ihre Passwörter in den Container eingeben, können diese gestohlen werden, auch wenn der Rest des ChromeOS-Systems sicher bleibt.

Prozesspersistenz

Prozesse in VMs und Containern werden beim Abmelden beendet, da sie im verschlüsselten Speicher des Nutzers gespeichert sind. Sie werden auch nicht automatisch bei der Anmeldung gestartet, um anhaltende Angriffe zu vermeiden. Außerdem können sie nicht automatisch beim Booten (ohne Anmeldesitzung) ausgeführt werden, da sie nicht zugänglich wären, da sie sich im verschlüsselten Speicher des Nutzers befinden.

Ausführbarer und beschreibbarer Code

Das Termina-VM-Laufwerk-Image wird wie andere Chrome-Komponenten in die beschreibbare zustandsbehaftete Partition heruntergeladen. Um sicherzustellen, dass die Inhalte nicht geändert werden, wird dm-verity verwendet. Das bedeutet auch, dass nur von Google signierte Bilder geladen werden dürfen und das Bild immer schreibgeschützt ist.

Hardwareangriffe

Die Sicherheitslücken Meltdown und Spectre haben Auswirkungen auf die sichere Verwendung von VMs. Wir haben Korrekturen und Gegenmaßnahmen angewendet, um sicherzustellen, dass VMs das Hostsystem oder andere VMs nicht angreifen können. Weitere Informationen finden Sie auf der Chromium OS-Wiki-Seite zum Status der Meltdown- und Spectre-Sicherheitslücken für ChromeOS-Geräte.

Lebenszyklen

Sobald Sie den Linux-Container aktiviert haben (wodurch alle anderen erforderlichen Komponenten wie Termina installiert werden), ist das System einsatzbereit.

Diese Komponenten werden zwar installiert, aber es wird nicht sofort etwas ausgeführt. Wenn Sie sich abmelden, wird alles heruntergefahren und beendet. Wenn Sie sich anmelden, wird nichts automatisch neu gestartet.

Wenn Sie die Terminal-App oder eine andere Linux-App ausführen, die den Container startet, und der zugehörige übergeordnete Container noch nicht ausgeführt wird, wird die Terminal-VM automatisch gestartet und der Standardcontainer für Linux auf ChromeOS (auch als Crostini bezeichnet) wird darin gestartet. So können Sie über SSH oder SFTP (über die Dateien App) eine Verbindung zum Container herstellen.

Wenn Sie alle sichtbaren Anwendungen schließen, werden die VM und die Container nicht heruntergefahren. Sie können sie auch manuell beenden und starten und mehr als nur den Standardcontainer erstellen.

Datenpersistenz

Alle erstellten VMs und Container sowie die Daten in diesen Containern bleiben über Nutzersitzungen hinweg (Abmeldung/Anmeldung) erhalten. Sie werden im selben verschlüsselten Speicher pro Nutzer wie die restlichen Browserdaten gespeichert.

Wenn eine VM oder ein Container nicht ordnungsgemäß beendet oder beendet wird (z.B. bei Stromausfall), können Daten verloren gehen und müssen wie alle anderen Daten im System wiederhergestellt werden.

Geräteunterstützung

Wir möchten, dass Linux auf ChromeOS auf allen Chromebooks funktioniert. Die erforderlichen Kernel- und Hardwarefunktionen schränken jedoch ein, wo es bereitgestellt werden kann. Das Team hat sich auf die Systemsicherheit und ‑stabilität konzentriert und Funktionen zurückportiert, wo es sinnvoll war. Wir arbeiten kontinuierlich daran, diese Funktion zu verbessern.

Jetzt unterstützt

Eine Liste der Geräte, die derzeit unterstützt werden, finden Sie unter ChromeOS-Systeme, die Linux unterstützen.

Hardwareanforderungen

Derzeit gibt es keine Mindestanforderungen für RAM, Speicher oder CPU-Geschwindigkeit für die Ausführung des Linux on ChromeOS-Containers. Je mehr Ressourcen Sie haben, desto besser ist die Leistung des Systems.

Sie benötigen jedoch eine CPU, die Hardwarevirtualisierung unterstützt. Auf x86-Plattformen hat dies viele Namen. Intel bezeichnet es als VT-x und VMX. AMD bezeichnet es als AMD-V und SVM.

BayTrail-Systeme

Chromebooks mit Intel BayTrail unterstützen VT-x nicht. Diese CPU enthält normalerweise VMX, die Variante in Chromebooks jedoch nicht. Daher wird sie leider nie unterstützt.

Ob ein Board unterstützt wird, können Sie in unserer öffentlichen Geräteliste nachsehen. Suchen Sie in der Spalte Platform nach BayTrail.

Alte Kernel

Es ist nicht geplant, Linux 3.14 oder ältere Versionen zu unterstützen. Dafür sind Backports neuer Funktionen erforderlich, die umfangreich und oft invasiv sind. Beispiel:

Ob ein Board unterstützt wird, können Sie in unserer öffentlichen Geräteliste nachsehen. Suchen Sie in der Spalte Kernel nach Versionsnummern unter 3.14.

32-Bit-ARM-CPUs

Die Verwendung von virtuellen Maschinen auf 32-Bit-ARM-CPUs ist schwierig, nicht standardisiert und erfordert eine Abstimmung mit der Firmware. Leider werden die Erweiterungen in der ChromeOS-Firmware in der Regel nicht konfiguriert. Daher werden diese Systeme nicht unterstützt.

Ob ein Board unterstützt wird, können Sie in unserer öffentlichen Geräteliste nachsehen. Suchen Sie in der Spalte Kernel ABI nach arm.