Petr Hosek, qui dirige chez Google l'équipe responsable des systèmes de construction, des compilateurs et des outils pour les développeurs, a présenté le premier appareil qui sera équipé du système d'exploitation Fuchsia. Le firmware basé sur Fuchsia commencera à être livré sur les cadres photo intelligents Nest Hub dans le cadre d'une mise à jour expérimentale pour les participants au programme Google Preview Program.
Si aucune issue imprévue ne survient pendant le déploiement du test, le firmware basé sur Fuchsia sera également appliqué aux autres utilisateurs de Nest Hub, qui ne remarqueraient aucune différence, car l'interface basée sur le framework Flutter restera la même, seules les composantes de bas niveau du système d'exploitation changeront. Auparavant, des appareils Google Nest Hub lancés depuis 2018, combinant des fonctions de cadre photo, de système multimédia et d'interface de contrôle domotique, utilisaient un firmware basé sur la couche Cast et le noyau Linux.
Rappelons qu'à travers le projet Fuchsia, Google développe depuis 2016 un système d'exploitation universel capable de fonctionner sur tous types d'appareils, allant des stations de travail et smartphones aux appareils intégrés et consommation. Le développement s'inspire de l'expérience acquise avec la plateforme Android et prend en compte les lacunes en matière de scalabilité et de sécurité.
Le système est basé sur le micro-noyau Zircon, dérivé des travaux du projet LK, étendu pour être utilisé sur diverses classes d'appareils, y compris les smartphones et les ordinateurs personnels. Zircon étend LK avec le support des processus et des bibliothèques partagées, le niveau utilisateur, un système de traitement d'objets et un modèle de sécurité basé sur les capabilities. Les pilotes sont réalisés sous forme de bibliothèques dynamiques fonctionnant dans l'espace utilisateur, chargées par le processus devhost et gérées par le gestionnaire d'appareils (devmg, Device Manager).
Une interface graphique dédiée a été développée pour Fuchsia, écrite en Dart en utilisant le framework Flutter. Le projet comprend également un framework pour la création d'interfaces utilisateur, Peridot, un gestionnaire de paquets, Fargo, une bibliothèque standard libc, un système de rendu, Escher, un pilote Vulkan, Magma, un gestionnaire de composites, Scenic, et des systèmes de fichiers MinFS, MemFS, ThinFS (FAT en Go) et Blobfs, ainsi qu'un gestionnaire de partitions, FVM. Pour le développement d'applications, les langages C/C++, Dart, et également Rust pour les composants système, Go pour la pile réseau, ainsi que Python pour le système de construction sont pris en charge.

Un gestionnaire système est utilisé au cours du démarrage, incluant appmgr pour créer l'environnement logiciel initial, sysmgr pour former l'environnement de démarrage et basemgr pour configurer l'environnement utilisateur et organiser la connexion au système. Pour assurer la sécurité, un système avancé d'isolation sandbox est proposé, dans lequel les nouveaux processus n'ont pas accès aux objets du noyau, ne peuvent pas allouer de mémoire et ne peuvent pas exécuter de code, et un système d'espaces de noms est utilisé pour définir les permissions d'accès. La plateforme fournit un cadre pour créer des composants sous forme de programmes, exécutés dans leur propre sandbox, qui peuvent interagir avec d'autres composants via IPC.
Source : opennet.ru
