Fuchsia est un système d'exploitation développé par Google. Contrairement aux précédents systèmes d'exploitation développés par la firme tels que Google Chrome OS et Android, qui sont basés sur le noyau Linux, Fuchsia est basé sur un nouveau micronoyau appelé Zircon, dérivé de Little Kernel (LK), qui a été conçu pour les systèmes embarqués et qui est principalement écrit en C. Selon la présentation qui en fait, Fuchsia est conçu pour fonctionner sur une multitude d'appareils, y compris les téléphones mobiles et les ordinateurs personnels. Presque trois ans après la présentation du projet au grand public, Google n’a toujours pas émis de description parfaite sur ce qu’est réellement censé faire son nouvel OS. Que sait-on aujourd’hui de Fuchsia OS ?
Tout d’abord, partons de comment Google représente son nouvel OS. Le symbole du système d'exploitation sur le dépôt GitHub était un carré de couleur fuchsia, maintenant ce sont deux cercles qui se rencontrent pour former comme un 8 incliné. La description de Google sur ce logo est « Pink + Purple == Fuchsia (a new Operating System) ». Le code source du projet a été publié pour la première fois sur GitHub avant d’être par la suite sur le gestionnaire de source de Google (googlesource.com). Des explications sur le projet n’existent pas réellement. Google en a peu parlé publiquement, mis à part la publication du code source, ce qui, après analyse, en dit long sur le plan technique, mais peu sur l'objectif de l'entreprise.
La description du logo peut paraître à première vue banale, mais certains estiment qu’elle cache un message. « Pink » pourrait bien faire référence au projet Pink d’Apple, un système d’exploitation orienté objet mis au point dans les années 80 pour devenir Taligent, un projet conjoint avec IBM destiné à être un futur Mac OS. En effet, Taligent est le nom d'un système d'exploitation orienté objet et en même temps celui de la société qui a été dédiée à sa production. Dans un premier temps, Taligent a commencé comme un projet au sein d'Apple pour fournir un remplacement pour le Mac OS, avant d'être ensuite élargi à un travail commun avec IBM dans le cadre d'une alliance.
Le but était de construire une plateforme concurrente à Microsoft Caire et NeXTSTEP, mais le projet n’a pas abouti et a très vite été enterré dans les archives. Taligent a été officiellement dissous en janvier 1998. Ensuite, le mot « Purple » de la description pourrait aussi faire allusion à un autre ancien projet d’Apple. « Project Purple » était le nom de code d'Apple pour le projet devenu iPhone. Fuchsia OS va-t-il remplacer Android à l’avenir ? Google a signifié que non. Pour l'entreprise, il s’agit simplement de tester de nouveaux concepts dans l’espoir de trouver un système d’exploitation pouvant piloter les milliards d’appareils qui seront connectés dans le monde dans les prochaines années. Pour Google, l’IdO (l’Internet des Objets) dispose aujourd’hui de périphériques qui ont surtout besoin d’un système d’exploitation.
S’agit-il d’un système d’exploitation pour tous types d’appareils ?
Alors, la probabilité semble élevée à ce niveau et lorsqu’on se réfère à la récente déclaration de Google à l’événement Google IO de mai, on peut dire que cette hypothèse tient la route. Hiroshi Lockheimer de l'équipe des plateformes et des écosystèmes chez Google a déclaré ce qui suit : « Fuchsia est un projet open source de Google. Nous investissons dans la modernisation et l’essai de nouveaux concepts relatifs aux systèmes d’exploitation. Il ne s’agit ni de remplacer Android ni de remplacer Chrome OS ». Fuchsia est-il un système d’exploitation universel qui sera chargé de piloter tous les périphériques fonctionnant sous Android et Chrome OS ? La réponse de Hiroshi Lockheimer laisse paraître cela.
« Dans le monde de l’IdO, de plus en plus d’appareils nécessitent des systèmes d’exploitation et de nouvelles exécutions. On dispose donc de beaucoup de place pour plusieurs systèmes d'exploitation avec différentes forces et spécialisations. Le fuchsia est l'une de ces choses, alors restez à l'écoute, il n'y a vraiment pas beaucoup d'intrigues ». Fuchsia est supposé être un Android de nouvelle génération, conçu pour les types de périphériques utilisant actuellement Android ou Chrome OS, tout en préservant la compatibilité avec les applications existantes via la virtualisation ou d'autres techniques. Le code publié peut être créé et déployé à des fins de test sur un Pixelbook de Google, un Acer Switch Alpha 12 ou un ordinateur Intel NUC complet, plutôt que sur des périphériques IdO classiques.
Google a lancé Fuchsia.dev pour aider les développeurs à déployer le code de son OS
Pour vous aider à déployer le code convenablement, Google a lancé il y a quelques jours Fuchsia.dev, le site Web qui recense les informations sur l’évolution du nouveau système d'exploitation. Le site ne présente pas non plus les priorités exactes de Google, mais vous pouvez commencer à en apprendre plus sur le système d’exploitation, tester les sources, etc., tout ceci aidé par une bonne documentation comme la documentation du système d’exploitation Android. On sait néanmoins que le nouveau système d’exploitation ne ressemble à rien qui existe déjà. Google a été clair sur le sujet déjà à partir du noyau du système. Contrairement à Android, Fuchsia n’est pas basé sur le noyau de Linux, mais sur un nouveau micronoyau appelé Zircon, dérivé de Little Kernel (LK). Ainsi, Google a insisté sur le fait que « Fuchsia n’est pas Linux ». Tirés de la documentation, voici quelques points sur lesquels Google a été un peu plus clair :
Fuchsia n’est pas Linux
Fuchsia est un système d'exploitation basé sur un micronoyau et ce micronoyau s'appelle Zircon. Les architectures prises en charge sont arm64 et x64, mais ne sont pas actuellement des processeurs AMD, même si cela signifie simplement que celles-ci ne sont pas activement testées. Selon la documentation fournie, le nouveau système d'exploitation n'est que faiblement couplé à des systèmes de fichiers. Les systèmes de fichiers de Fuchsia résident entièrement dans l'espace utilisateur. Ils ne sont pas liés ni chargés avec le noyau. Ce sont simplement des processus en espace utilisateur qui implémentent des serveurs pouvant apparaître en tant que systèmes de fichiers. En conséquence, les systèmes de fichiers de Fuchsia eux-mêmes peuvent être changés facilement.
Les modifications ne nécessitent pas de recompiler le noyau. En fait, la mise à jour vers un nouveau système de fichiers Fuchsia peut être effectuée sans redémarrer. Une autre implication de cette approche des systèmes de fichiers basée sur les services est que toutes les ressources accessibles via un canal peuvent apparaître comme des systèmes de fichiers en implémentant les protocoles attendus. Fuchsia sera livré avec le support de plusieurs systèmes de fichiers, y compris MemFS (en mémoire), MinFS (traditionnel), Blobfs (optimisé pour une seule écriture, puis en lecture seule) et ThinFS, qui implémente FAT (système de fichiers hérité) dans le langage Go.
Fuchsia et les applications qu'il prend en charge
Fuchsia est conçu pour prendre en charge plusieurs langages de programmation. Il supporte déjà C/C++, Dart, Go, Rust et Python. En outre, il existe FIDL (langage de définition d'interface fuchsia). C’est un langage de définition de protocoles généralement utilisés sur des canaux. FIDL est indépendant du langage de programmation et comporte des liaisons pour de nombreux langages courants, notamment C, C++, Dart, Go et Rust. Cette approche permet aux composants système écrits dans diverses langues d’interagir de manière transparente, selon la documentation. Les canaux sont des transports de messagerie fournis par Zircon. Les définitions FIDL dans le SDK Fuchsia doivent être considérées comme des ABI publiques (interface binaire d'application) pour le système.
Le SDK Fuchsia est de bas niveau et le code indique que la plupart des développeurs ne l’utiliseront pas directement. Selon Google, ils en consommeront une version transformée, par exemple au sein de l'environnement de développement et de l'écosystème prenant en charge l'exécution d'un langage donné. Les responsables des environnements de développement qui souhaitent ajouter une prise en charge de Fuchsia constituent l'audience principale de ce SDK. Les API Fuchsia seront vérifiées par un conseil API. Google a déjà mis en place le conseil et vous pouvez voir ses objectifs et sa composition sur le site.
Il y a aussi le concept de « runner ». Un runner est un composant qui fournit un environnement d'exécution pour d'autres composants, par exemple le runner...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.
