Petr Hosek, der bei Google das Team leitet, das für Build-Systeme, Compiler und Entwickler-Tools verantwortlich ist, stellte das erste Gerät vor, das mit dem Betriebssystem Fuchsia ausgestattet sein wird. Die Fuchsia-basierte Firmware wird im Rahmen eines experimentellen Updates für Teilnehmer des Google Preview Program auf intelligente Bilderrahmen Nest Hub ausgeliefert.
Sollten während des Pilotprojekts keine unvorhergesehenen Probleme auftreten, wird die Fuchsia-basierte Firmware auch auf die Nest Hub-Geräte anderer Nutzer angewendet. Diese werden keine Änderungen bemerken, da die auf dem Flutter-Framework basierende Oberfläche unverändert bleibt; lediglich die Low-Level-Komponenten des Betriebssystems werden angepasst. In den seit 2018 veröffentlichten Google Nest Hub-Geräten, die die Funktionen eines Bilderrahmens, eines Mediensystems und einer Schnittstelle zur Steuerung des Smart Homes kombinieren, wurde eine Firmware auf Basis von Cast Shell und dem Linux-Kernel verwendet.
Erinnern wir uns daran, dass im Rahmen des Fuchsia-Projekts von Google seit 2016 ein universelles Betriebssystem entwickelt wird, das auf allen Arten von Geräten funktionieren kann, von Workstations und Smartphones bis hin zu Embedded- und Verbrauchergeräten. Bei der Entwicklung wird die Erfahrung aus der Erstellung der Android-Plattform berücksichtigt, um Herausforderungen in den Bereichen Skalierbarkeit und Sicherheit anzugehen.
Das System basiert auf dem Mikro-Kernel Zircon, der aus den Erkenntnissen des LK-Projekts entwickelt wurde und für verschiedene Gerätetypen, einschließlich Smartphones und Personal Computers, erweitert wurde. Zircon erweitert LK durch die Unterstützung von Prozessen und gemeinsamen Bibliotheken, Benutzerlevels, Objektverarbeitungssystemen sowie einem sicherheitsbasierenden Capability-Modell. Treiber werden als dynamische Bibliotheken implementiert, die im Benutzermodus ausgeführt werden, vom devhost-Prozess geladen und vom Geräte-Manager (devmg, Device Manager) verwaltet.
Für Fuchsia wurde eine eigene grafische Benutzeroberfläche entwickelt, die in Dart mit dem Flutter-Framework geschrieben ist. Das Projekt umfasst auch das Framework zur Erstellung von Benutzeroberflächen Peridot, den Paketmanager Fargo, die Standardbibliothek libc, das Rendering-System Escher, den Vulkan-Treiber Magma, den Compositor Scenic sowie die Dateisysteme MinFS, MemFS, ThinFS (FAT in Go) und Blobfs. Darüber hinaus gibt es einen Partitionierungsmanager FVM. Bei der Anwendungsentwicklung wird Unterstützung für die Sprachen C/C++ und Dart bereitgestellt, während in den Systemkomponenten auch Rust verwendet werden kann, im Netzwerk-Stack Go und im Build-System Python.

Beim Laden wird der Systemmanager verwendet, der den appmgr für die Erstellung der anfänglichen Programmumgebung, den sysmgr zur Bildung der Bootumgebung und den basemgr zur Einrichtung der Benutzerumgebung und zum Organisieren des Systemzugangs umfasst. Zur Gewährleistung der Sicherheit wird ein fortschrittliches Sandbox-Isolationssystem angeboten, welches neuen Prozessen keinen Zugang zu Kernelobjekten gewährt, das Zuweisen von Speicher verhindert und das Ausführen von Code unterbindet. Für den Zugriff auf Ressourcen wird ein Namensraum-System verwendet, 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
