Die Firma Google entwickelt die Umgebung MicroFuchsia, die eine abgespeckte Version des Betriebssystems Fuchsia umfasst, die für die Ausführung in virtuellen Maschinen auf der Android-Plattform optimiert ist. In die Codebasis von Android sind bereits Änderungen aufgenommen worden, um die Funktionsfähigkeit von MicroFuchsia sicherzustellen. Für den Betrieb von virtuellen Maschinen mit MicroFuchsia wird das in Android 13 hinzugefügte Framework AVF (Android Virtualization Framework) verwendet, das auf dem Hypervisor KVM und dem crosvm-Toolkit basiert.
Zuvor nutzte Google AVF zur Ausführung der Umgebung 'Microdroid', die zur Isolierung von Drittanbietersystemkomponenten in Android eingesetzt wurde, und experimentierte auch mit dem Start von Gastsystemen mit Chromium OS. Die Gründe für die Entwicklung von MicroFuchsia für Android sind bislang nicht bekannt, es wird jedoch vermutet, dass Google eine effizientere und minimalistischere Umgebung für die isolierte Ausführung von Diensten in Android entwickelt, die weniger Ressourcen benötigt als die auf Android-Systemkomponenten und dem Linux-Kernel basierende Microdroid-Umgebung.
Fuchsia basiert auf dem Mikrokernel Zircon, der auf den Ergebnissen des LK-Projekts basiert und für verschiedene Gerätekategorien, einschließlich Smartphones und PCs, erweitert wurde. Zircon erweitert LK um Unterstützung für Prozesse und gemeinsam genutzte Bibliotheken, eine Benutzerebene, ein Objekthandhabungssystem und ein Sicherheitsmodell auf Basis von Berechtigungen. Treiber werden als in Benutzerraum laufende dynamische Bibliotheken implementiert, die vom devhost-Prozess geladen und vom Geräte-Manager (devmg, Device Manager) verwaltet werden.
Während des Bootvorgangs wird ein Systemmanager verwendet, der appmgr zur Erstellung der anfänglichen Programmumgebung, sysmgr zur Bildung der Bootumgebung und basemgr zur Konfiguration der Benutzerumgebung und zur Organisation des Systemzugriffs umfasst. Zur Gewährleistung der Sicherheit wird ein fortschrittliches System zur Sandbox-Isolierung angeboten, bei dem neue Prozesse keinen Zugriff auf Kernelobjekte haben, keine Speicherzuweisungen durchführen können und keinen Code ausführen können. Der Zugriff auf Ressourcen erfolgt über ein Namensraum-System, das die verfügbaren Berechtigungen definiert. Die Plattform bietet ein Framework zur Erstellung von Komponenten, die Programme darstellen, die in ihrer eigenen Sandbox ausgeführt werden und über IPC mit anderen Komponenten interagieren können.
Quelle: opennet.ru
