Petr Hösek, chef d'équipe Google responsable des systèmes de compilation, des compilateurs et des outils de développement a récemment dévoilé le premier appareil à être livré avec le système d'exploitation Fuchsia. Le micrologiciel à base de fuchsia commencera à être expédié vers les cadres photo intelligents de Nest Hub dans le cadre d'une mise à jour expérimentale pour les membres du programme Google Preview.
Il est mentionné que si lors de la mise en œuvre du test il n'y a pas de problèmes imprévu, basé sur un micrologiciel Fuchsia sera appliqué aux appareils des autres utilisateurs de Nest Hub, qui ne remarqueront pas les différences, puisque l'interface construite sur la base du framework Flutter restera la même. Seuls les composants de bas niveau du système d'exploitation changeront.
Auparavant, les appareils Google Nest Hub sortis depuis 2018, qui combinaient les fonctions d'un cadre photo, d'un système multimédia et d'une interface pour le contrôle de la maison intelligente, utilisaient un firmware basé sur Cast Shell et le noyau Linux.
Rappelons que dans le cadre du projet Fuchsia, Google a développé un système d'exploitation universel Depuis 2016, il peut fonctionner sur tout type d'appareil, des postes de travail et smartphones aux technologies embarquées et grand public. Le développement est réalisé en tenant compte de l'expérience de création de la plate-forme Android et prend en compte les lacunes dans le domaine de la mise à l'échelle et de la sécurité.
Le système est basé sur le micro-noyau Zircon, basé sur les développements du projet LK, étendu pour une utilisation dans diverses classes d'appareils, y compris les smartphones et les ordinateurs personnels. Zircon étend LK avec la prise en charge des bibliothèques et processus partagés, du niveau utilisateur, de la gestion des objets et du modèle de sécurité en fonction des capacités. Les pilotes sont implémentés en tant que bibliothèques d'espace utilisateur dynamiques chargées par le processus devhost et gérées par le gestionnaire de périphériques (devmg, Device Manager).
Pour Fuchsia a développé sa propre interface graphique écrite en langage Dart, en utilisant le framework Flutter. Le projet développe également le framework Peridot UI, le gestionnaire de packages Fargo, la bibliothèque standard libc, le système de rendu Escher, le pilote Magma Vulkan, le gestionnaire composite scénique, les systèmes de fichiers MinFS, MemFS, ThinFS (FAT in Go) et Blobfs, ainsi que les partitions FVM. Il vous permet également de créer des applications mobiles pour iOS et Android. Le rendu est effectué par le composant Escher, qui fonctionne via l'API graphique Vulkan.
L'environnement utilisateur est divisé en deux composants : Armadillo et Armadillo User Shell. Armadillo est une application portable qui peut tourner sur n'importe quelle plateforme compatible Flutter, y compris Android et iOS (un assemblage de démonstration a été préparé sous forme de fichier APK pour Android, permettant de tester l'interface sans installer Fuchsia). Armadillo User Shell est un lien sur l'application Armadillo qui fournit des outils pour interagir avec les services Fuchsia via des interfaces FIDL et organiser l'environnement utilisateur sur les composants du système Fuchsia OS.
Pour le développement d'applications, la prise en charge de C/C++, Dart est fournie, Rust est également autorisé dans les composants système, dans la pile réseau : Ve et dans le système de build du langage Python.
Le processus de démarrage utilise le gestionnaire système, qui inclut appmgr pour créer l'environnement logiciel initial, sysmgr pour créer l'environnement de démarrage et basemgr pour configurer l'environnement utilisateur et organiser la connexion.
Pour assurer la sécurité, un système d'isolation de bac à sable avancé est proposé, où 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'espace de noms est utilisé pour accéder aux ressources, ce qui détermine les autorisations disponibles. La plate-forme fournit un cadre pour la création de composants, qui sont des programmes qui s'exécutent dans votre bac à sable et qui peuvent interagir avec d'autres composants via IPC.