La société Google a publié la version 14 de son système d'exploitation Fuchsia, sur lequel sont basées les mises à jour préliminaires du firmware pour les cadres photo Google Nest Hub et Nest Hub Max. Le système d'exploitation Fuchsia est développé par Google depuis 2016, en tenant compte des lacunes en matière d'évolutivité et de sécurité présentes dans la plateforme Android.
Principales modifications dans Fuchsia 14 :
- Les capacités de l'interface Starnix, qui permet l'exécution de programmes Linux non modifiés par la traduction des interfaces système du noyau Linux en appels aux sous-systèmes correspondants de Fuchsia, ont été étendues. La nouvelle version ajoute le support du montage de systèmes de fichiers distants, des xattrs pour les liens symboliques ont été ajoutés dans fxfs, des points de traçage ont été ajoutés à l'appel système mmap(), des informations supplémentaires ont été incluses dans /proc/pid/stat, le support de fuchsia_sync::Mutex a été inclus, ainsi que le support de O_TMPFILE, pidfd_getfd, sys_reboot(), timer_create, timer_delete, times() et ptrace(); l'implémentation d'ext4 utilise un cache de fichiers système.
- La pile Bluetooth a été améliorée. Le support audio dans le profil Bluetooth HSP (HandSet Profile) a été ajouté et les délais de diffusion du son via le profil A2DP ont été réduits.
- Dans Matter, l'implémentation de la norme pour la connexion des appareils dans une maison intelligente, le support des groupes de mise à jour et la possibilité de gérer les états transitoires lors de la gestion de l'éclairage ont été ajoutés.
- Le support des sockets FastUDP a été intégré dans la pile réseau pour toutes les plateformes.
- Le support des systèmes multicœurs (SMP) basé sur l'architecture RISC-V a été ajouté.
- Une API pour l'interaction avec le planificateur de tâches a été ajoutée.
- Le support de DeviceTree a été ajouté.
- Le pilote pour les appareils audio avec interface USB a été migré vers l'utilisation du cadre DFv2.
Fuchsia est basé sur le micro-noyau Zircon, qui s'appuie sur les travaux du projet LK, étendu pour être appliqué à différentes classes d'appareils, y compris les smartphones et les ordinateurs personnels. Zircon étend LK en ajoutant le support des processus et des bibliothèques partagées, un niveau utilisateur, un système de gestion des objets et un modèle de sécurité basé sur les capacités. Les pilotes sont mis en œuvre sous forme de bibliothèques dynamiques fonctionnant dans l'espace utilisateur, chargées par le processus devhost et gérées par le gestionnaire de périphériques (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
