Petr Hosek , Leiter des Google-Teams für Build-Systeme, Compiler und Entwicklungswerkzeuge, hat kürzlich das erste Gerät mit dem Betriebssystem Fuchsia vorgestellt. Die auf Fuchsia basierende Firmware wird im Rahmen eines experimentellen Updates für Mitglieder des Google Preview-Programms für Nest Hub Smart-Fotorahmen ausgerollt.
Es wird darauf hingewiesen, dass die Fuchsia-basierte Firmware, sofern während der Testimplementierung keine unvorhergesehenen Probleme auftreten , auch auf den Geräten anderer Nest Hub-Nutzer zum Einsatz kommen wird . Diese werden keine Unterschiede bemerken, da die auf dem Flutter-Framework basierende Benutzeroberfläche unverändert bleibt. Lediglich die systemnahen Komponenten des Betriebssystems werden angepasst.
Zuvor verwendeten seit 2018 veröffentlichte Google Nest Hub-Geräte, die die Funktionen eines Bilderrahmens, eines Multimediasystems und einer Schnittstelle für die Smart-Home-Steuerung vereinen, Cast-Shell-basierte Firmware und den Linux-Kernel.
Zur Erinnerung: Im Rahmen des Projekts Fuchsia entwickelt Google seit 2016 ein universelles Betriebssystem, das auf allen Gerätetypen laufen kann – von Workstations und Smartphones bis hin zu eingebetteten Systemen und Endgeräten. Diese Entwicklung berücksichtigt die Erfahrungen aus der Entwicklung der Android-Plattform und behebt Schwächen in Bezug auf Skalierbarkeit und Sicherheit.
Das System basiert auf dem Zircon-Mikrokernel, der seinerseits auf Entwicklungen des LK-Projekts aufbaut und für den Einsatz auf verschiedenen Gerätetypen, darunter Smartphones und PCs, erweitert wurde. Zircon erweitert LK um die Unterstützung gemeinsam genutzter Prozesse und Bibliotheken, Benutzerverwaltung, Objektverarbeitung und ein fähigkeitsbasiertes Sicherheitsmodell. Treiber werden als dynamische Benutzerraumbibliotheken implementiert, die vom devhost-Prozess geladen und vom Gerätemanager (devmg) verwaltet werden.
Für Fuchsia wurde eine eigene grafische Benutzeroberfläche in Dart auf Basis des Flutter-Frameworks entwickelt. Das Projekt entwickelt außerdem das Peridot-UI-Framework, den Paketmanager Fargo, die libc-Standardbibliothek, das Escher-Rendering-System, den Magma-Vulkan-Treiber, den Scenic Composer sowie die Dateisysteme MinFS, MemFS, ThinFS (FAT in Go) und Blobfs und unterstützt die FVM-Partitionierung. Es ermöglicht zudem die Erstellung mobiler Anwendungen für iOS und Android. Das Rendering erfolgt über die Escher-Komponente, die mit der Vulkan-Grafik-API arbeitet.
Die Benutzerumgebung ist in zwei Komponenten unterteilt: Armadillo und Armadillo User Shell. Armadillo ist eine portable Anwendung, die auf jeder Flutter-kompatiblen Plattform, einschließlich Android und iOS, ausgeführt werden kann (für Android ist eine Demoversion als APK-Datei verfügbar, mit der Sie die Benutzeroberfläche testen können, ohne Fuchsia installieren zu müssen). Armadillo User Shell ist eine Erweiterung der Armadillo-Anwendung und bietet Werkzeuge zur Interaktion mit Fuchsia-Diensten über FIDL-Schnittstellen sowie zur Organisation der Benutzerumgebung auf Basis der Fuchsia OS-Systemkomponenten.
Für die Anwendungsentwicklung wird Unterstützung für C / C ++ bereitgestellt, Dart wird bereitgestellt, Rust ist auch in den Systemkomponenten, im Netzwerkstack: Ve und im Python-Sprachbausystem erlaubt.
Der Bootprozess verwendet den Systemmanager, der appmgr zum Erstellen der anfänglichen Softwareumgebung, sysmgr zum Erstellen der Bootumgebung und basemgr zum Konfigurieren der Benutzerumgebung und zum Organisieren der Anmeldung umfasst.
Um die Sicherheit zu gewährleisten, wird ein fortschrittliches Sandbox-Isolationssystem vorgeschlagen, in dem neue Prozesse keinen Zugriff auf Kernel-Objekte haben, keinen Speicher allokieren und keinen Code ausführen können. Ein Namensraumsystem regelt den Zugriff auf Ressourcen und die verfügbaren Berechtigungen. Die Plattform bietet ein Framework zur Erstellung von Komponenten – Programmen, die in ihrer Sandbox ausgeführt werden und über die Interprozesskommunikation (IPC) mit anderen Komponenten interagieren können.