Google est en train de réaliser un nouveau système d’ex­ploi­ta­tion : avec Fuchsia OS, l’en­tre­prise de services tech­no­lo­giques tourne le dos à l’ar­chi­tec­ture Linux et s’appuie désormais sur le micro noyau Zircon développé par ses soins. Fuchsia pourrait non seulement remplacer le système d’ex­ploi­ta­tion de bureau Chrome OS, mais aussi Android, qui est conçu pour les appareils mobiles. Et ce malgré le fait qu’Android soit aujourd’hui établi sur le marché comme leader quasi sans rival.

Google Fuchsia est-il le système d’ex­ploi­ta­tion du futur ? Voici quelques éléments de réponses.

Qu’est-ce que Google Fuchsia ?

Fuchsia n’est pas seulement une couleur entre le rouge et le bleu, c’est aussi désormais le nom d’un système d’ex­ploi­ta­tion temps réel modulaire, que Google développe pu­bli­que­ment depuis 2016. Le système est écrit en C, C++, Dart, Go et Rust et est censé fonc­tion­ner sur des pro­ces­seurs modernes Intel ARM 64 bits.

Remarque

Un système d’ex­ploi­ta­tion temps réel (RTOS pour real-time operating system) est un système d’ex­ploi­ta­tion capable de réagir aux évé­ne­ments et de fournir des résultats de trai­te­ment ins­tan­ta­né­ment ou sur une période de temps pré­dé­fi­nie.

Le code source de Fuchsia OS est sous licence open source (incluant les licences BSD, MIT et Apache) et peut être trouvé librement dans les dépôts Git de Google et peut ainsi être consulté et té­lé­chargé par n’importe qui. Les personnes in­té­res­sées trou­ve­ront également une vaste do­cu­men­ta­tion du projet.

Selon la do­cu­men­ta­tion, Fuchsia OS convient aussi bien aux smart­phones, tablettes, or­di­na­teurs portables qu’aux or­di­na­teurs de bureau. Depuis mai 2017, Armadillo est une interface uti­li­sa­teur (UI) optimisée écran tactile avec une interface graphique. Google développe ac­tuel­le­ment une interface uti­li­sa­teur de bureau pour Fuchsia OS sous le titre pro­vi­soire de Capybara. Depuis lors, des rumeurs se sont répandues selon les­quelles Google travaille sur un rem­pla­ce­ment d’Android, qui reste à ce jour toujours inégalé.

Comment fonc­tionne Fuchsia OS ?

Con­cer­nant le dé­ve­lop­pe­ment de Fuchsia OS, Google a l’air d’innover. L’en­tre­prise semble apprendre des erreurs du passé, en par­ti­cu­lier en ce qui concerne les li­mi­ta­tions et les problèmes de mise à jour et de mo­di­fi­ca­tion d’Android et Chrome OS. La dif­fé­rence centrale avec les systèmes d’ex­ploi­ta­tion établis de Google est le fait que Fuchsia OS soit modulaire à partir de la base. Cela se reflète non seulement dans son ar­chi­tec­ture de système modulaire, mais aussi dans une com­pré­hen­sion com­plè­te­ment nouvelle de ce que peut être une ap­pli­ca­tion.

Con­cep­tion modulaire de l’ap­pli­ca­tion

Google Fuchsia est basé sur une con­cep­tion modulaire qui rompt avec le concept de l’ap­pli­ca­tion classique. Les unités lo­gi­cielles sont appelées Packages (paquets). Un paquet est une sélection de fichiers dont des mé­ta­don­nées, des fichiers ma­ni­festes et des éléments exé­cu­tables. Ces derniers sont appelés Com­po­nents (com­po­sants) dans la ter­mi­no­lo­gie de Google.

Les com­po­sants Fuchsia se rap­prochent le plus de ce que nous appelons aujourd’hui les ap­pli­ca­tions. Chaque composant exécute une tâche spé­ci­fique et peut être combiné avec d’autres com­po­sants pour créer des ap­pli­ca­tions complexes. Les éléments d’un composant com­pren­nent un fichier manifeste et le code associé. Les com­po­sants fonc­tion­nent toujours dans leur propre Sandbox, accèdent aux objets via des espaces de noms et les publient via un ré­per­toire d’ex­por­ta­tion. Avec Fuchsia OS, deux types de com­po­sants sont au premier plan : les Modules et les Agents.

Les com­po­sants dans le rôle d’un agent tra­vail­lent en arrière-plan et four­nis­sent des services pour d’autres com­po­sants. Un agent est appelé soit par un autre composant, soit par le système, par exemple, en réponse à certains dé­clen­cheurs tels que les no­ti­fi­ca­tions push ou autres processus à l’écran.

Les modules sont des com­po­sants avec une interface uti­li­sa­teur qui sont exécutés au premier plan, visibles par l’uti­li­sa­teur. Chaque module du système d’ex­ploi­ta­tion a été conçu pour une tâche spé­ci­fique et est marqué en con­sé­quence afin qu’il puisse être appelé au­to­ma­ti­que­ment en cas de besoin. Ceci se fait à l’aide de la fonction du module, qui peut être décrite à l’aide de Verbs (Verbes) et de Nouns (Noms).

Chaque module comprend une liste de verbes qui indiquent ce que le module peut faire, ainsi qu’une liste de noms qui re­pré­sen­tent les entités avec les­quelles on travaille. Selon la ter­mi­no­lo­gie de Google, le terme Entity inclut toute personne, lieu, chose, événement ou concept iden­ti­fiable de façon unique qui existe en tant qu’objet de données structuré qui peut être référencé et récupéré, présenté, manipulé ou partagé.

Dans la pratique, tra­vail­ler avec le système d’ex­ploi­ta­tion temps réel Fuchsia est le suivant : dès qu’un uti­li­sa­teur exécute une action, Fuchsia OS détermine au­to­ma­ti­que­ment le module approprié pour la tâche. L’action désirée est alors traduite en une com­bi­nai­son de verbe et de nom. Le système récupère ensuite une liste de tous les modules qui prennent en charge le verbe, puis, à l’étape suivante filtre pour le module en fonction du nom souhaité.

Les modules connexes peuvent être regroupés en Storys. Les Storys combinent dif­fé­rentes actions et tâches en fonction des exigences actuelles et devraient permettre aux uti­li­sa­teurs d’assembler des ap­pli­ca­tions complexes en fonction de leurs propres idées et exigences.

En résumé

Avec le concept d’ap­pli­ca­tion modulaire de Fuchsia OS, Google déplace le curseur des ap­pli­ca­tions vers les actions et le contenu. Au lieu du système d’ex­ploi­ta­tion classique d’une ap­pli­ca­tion utilisée ac­tuel­le­ment, les tâches avec Fuchsia sont gérées par un groupe de com­po­sants dans des Storys, qui accèdent aux res­sources ac­tuel­le­ment né­ces­saires via des modules.

Le graphique suivant illustre le concept modulaire derrière le dé­ve­lop­pe­ment d’ap­pli­ca­tions pour Fuchsia OS.

Ar­chi­tec­ture modulaire du système

L’ar­chi­tec­ture système de Fuchsia OS est également basée sur une approche modulaire. Le système d’ex­ploi­ta­tion comprend quatre niveaux plus ou moins in­dé­pen­dants, chacun avec ses propres tâches : Zircon, Garnet, Peridot et Topaz.

Zircon

Zircon (an­cien­ne­ment Magenta) est la base du nouveau système d’ex­ploi­ta­tion de Google, mais à pro­pre­ment parler, il ne fait pas partie de Fuchsia OS et pourrait également être utilisé avec d’autres systèmes d’ex­ploi­ta­tion.

Zircon contient le noyau de Fuchsia, le ges­tion­naire de pé­ri­phé­riques, la plupart des pilotes de pé­ri­phé­riques centraux et de premier niveau et des bi­blio­thèques système Low Level telles que libc et launchpad. De plus, Zircon fournit FIDL (Fuchsia Interface De­fi­ni­tion Language), un protocole de com­mu­ni­ca­tion in­ter­pro­ces­sus. FIDL est in­dé­pen­dant du langage de pro­gram­ma­tion, mais a des con­nexions avec des langages de pro­gram­ma­tion po­pu­laires tels que C, C++, Dart, Go et Rust.

En tant que base de Fuchsia OS, Zircon fournit un accès matériel pour les niveaux suivants, crée des abs­trac­tions lo­gi­cielles sur des res­sources ma­té­rielles partagées et sert de pla­te­forme pour le dé­ve­lop­pe­ment logiciel (Low-Level). Zircon est issu du projet Little Kernel (LK) qui fait office de boot­loa­der pour Android.

Garnet

Garnet est la première couche système spé­ci­fique Fuchsia cons­truite à partir de Zircon. Elle fournit divers services système au niveau de l’appareil ainsi que des services réseau, mul­ti­mé­dia et gra­phiques, par exemple pour l’ins­tal­la­tion de logiciels, l’ad­mi­nis­tra­tion du système et la com­mu­ni­ca­tion avec d’autres systèmes. Garnet inclut le Renderer graphique Escher, le système de gestion et de mise à jour Amber ainsi que l’éditeur de texte et de code Xi.

Peridot

Peridot est le niveau du système d’ex­ploi­ta­tion de Fuchsia OS sur lequel les ap­pli­ca­tions mo­du­laires (voir ci-dessus) sont gérées et compilées selon les besoins actuels des uti­li­sa­teurs. Les com­po­sants fon­da­men­taux de Peridot sont Ledger et Maxwell.

  • Ledger : Ledger est un système de stockage Cloud (Dis­tri­bu­ted Storage System), qui fournit à chaque composant Fuchsia (Module ou Agent) une mémoire de données séparée. Il est syn­chro­nisé entre dif­fé­rents appareils et ceci permet à l’uti­li­sa­teur de continuer sur un appareil Fuschia exac­te­ment là où il s’est arrêté au­pa­ra­vant sur un autre appareil Fuchsia. Ledger est en­re­gis­tré di­rec­te­ment dans le compte Google de l’uti­li­sa­teur.
  • Maxwell : avec Maxwell, Google a intégré un composant dans Fuchsia OS qui soutient les uti­li­sa­teurs en tant qu’in­tel­li­gence ar­ti­fi­cielle. Comme d’habitude pour les com­po­sants Fuchsia, Maxwell est bien évi­dem­ment modulaire. Le système d’AI consiste en une série d’agents qui analysent les actions de l’uti­li­sa­teur et le contenu que ce dernier utilise, dé­ter­mi­nent les in­for­ma­tions ap­pro­priées en arrière-plan et trans­met­tent des sug­ges­tions au système d’ex­ploi­ta­tion. Par exemple, quels modules ou Storys doivent être chargés en fonction du com­por­te­ment de l’uti­li­sa­teur à un moment donné. L’assistant vocal de Google fait également partie du composant AI, qui est en cours de dé­ve­lop­pe­ment sous le nom de code Kronk dans le cadre du projet Fuchsia.
Note

Kronk est jusqu’à présent le seul composant de Fuchsia OS qui n’a pas été développé en tant que projet open source.

Topaz

Topaz est le niveau système de Fuchsia OS où les uti­li­sa­teurs in­te­ra­gis­sent avec le système d’ex­ploi­ta­tion. C’est là que s’affichent les in­ter­faces uti­li­sa­teur des com­po­sants définis dans les niveaux ci-dessous : l’interface uti­li­sa­teur graphique avec écran d’accueil, Armadillo ou Capybara selon l’appareil, et les in­ter­faces visuelles des modules. Le framework d’ap­pli­ca­tion mobile open source mul­ti­pla­te­forme de Google Flutter est également intégré à ce niveau système. On peut donc supposer que les uti­li­sa­teurs de Fuchsia OS pourront à l’avenir exécuter et utiliser des ap­pli­ca­tions d’autres systèmes, par exemple des ap­pli­ca­tions Android ou iOS.

Aperçu des avantages et des in­con­vé­nients de Fuchsia OS

Con­for­mé­ment à l’approche modulaire, les dé­ve­lop­peurs de Fuchsia OS ont divisé l’ar­chi­tec­ture du système en zones in­di­vi­duelles avec des tâches spé­ci­fiques. Cela améliore non seulement la li­si­bi­lité du code, mais a également un effet sur l’adap­ta­bi­lité et la mise à jour du système d’ex­ploi­ta­tion. Google résout le problème de mise à jour avec lequel Android est aux prises depuis longtemps.

Remarque

L’éco­sys­tème Android est aux prises avec un problème de mise à jour. Un coup d’œil sur le tableau de bord officiel des dis­tri­bu­tions (Dis­tri­bu­tion Dashboard) montre que les nouvelles versions du système d’ex­ploi­ta­tion se diffusent lentement. Un problème que la con­cur­rence ne connaît pas. Alors que le matériel et les logiciels Apple pro­vien­nent de la même source et peuvent être adaptés sans délai, chaque mise à jour Android doit d’abord être im­plé­men­tée par les dif­fé­rents fa­bri­cants de matériel.

De plus, l’ar­chi­tec­ture modulaire du système répond aux besoins des par­te­naires com­mer­ciaux de Google, qui sou­hai­tent adapter ou étendre Fuchsia OS en fonction de leurs propres idées.

Les fa­bri­cants de matériel ont en effet la pos­si­bi­lité d’échanger des niveaux in­di­vi­duels du système d’ex­ploi­ta­tion avec leurs propres produits sans affecter la fonc­tion­na­lité des autres niveaux. Samsung, par exemple, pourrait remplacer Topaz par une interface uti­li­sa­teur de type TouchWiz. Amazon pourrait se passer de Peridot et de l’assistant vocal de Google et équiper Fuchsia OS d’un module d’ap­pli­ca­tion basé sur AWS incluant Alexa.

Dans les deux cas, les fa­bri­cants d’appareils peuvent ainsi proposer des versions in­di­vi­dua­li­sées de Fuchsia OS sans affecter les fonc­tion­na­li­tés Zircon et Garnet ni les cycles de mise à jour officiels pour ces couches.

Avantages In­con­vé­nients
L’ar­chi­tec­ture modulaire du système d’ex­ploi­ta­tion Fuchsia OS permet à Google de déployer les mises à jour de sécurité beaucoup plus ra­pi­de­ment qu’avec Android. Google fait de Ledger un composant central de Fuchsia OS. Ledger contrôle la syn­chro­ni­sa­tion des ap­pli­ca­tions sur dif­fé­rents pé­ri­phé­riques et lie étroi­te­ment le système au Cloud.
Grâce à la con­cep­tion modulaire, les fa­bri­cants de matériel ont la pos­si­bi­lité de remplacer les dif­fé­rents niveaux de système de Fuchsia OS par leurs propres modules, sans affecter le fonc­tion­ne­ment des autres niveaux.

L’état de dé­ve­lop­pe­ment de Fuchsia

Fuchsia OS prend lentement forme, mais le système est encore loin d’être prêt pour un lancement sur le marché. Google n’a pas encore annoncé de date de sortie of­fi­cielle. Selon les médias, les premiers tests matériels ont déjà eu lieu. En tant que premier fabricant d’appareils qui peut tester Fuchsia OS, Huawei a ini­tia­lisé avec succès le nouveau système d’ex­ploi­ta­tion sur Honor Play. Le smart­phone contient la puce Huawei Kirin-970, qui est également utilisée dans d’autres appareils du fabricant, par exemple les Mate 10, Mate 20 et Mate 20 Pro.

Démo de Fuchsia OS

Déjà en phase de dé­ve­lop­pe­ment, Fuchsia OS peut être compilé en APK (Android Package) et installé sur les smart­phones et tablettes Android. Vous pouvez découvrir à quoi cela ressemble via la démo de Fuchsia OS de l’étudiant portugais en in­for­ma­tique Manuel Goulão.

Si on appelle la démo de Fuchsia OS dans le na­vi­ga­teur, on accède alors à un site Web qui affiche l’écran de démarrage du système d’ex­ploi­ta­tion. L’uti­li­sa­teur est accueilli avec une image de fond et l’heure actuelle. En outre, trois boutons sont dis­po­nibles : un bouton qui ouvre les pa­ra­mètres WiFi, le bouton de connexion (Login Button) pour les uti­li­sa­teurs en­re­gis­trés et une connexion invité (Guest Login).

Cependant, la démo ne vous permet de vous inscrire qu’en tant qu'invité.

Les uti­li­sa­teurs en­re­gis­trés peuvent accéder à l’écran d'accueil (Home Screen) de Fuchsia OS, qui affiche toutes les in­for­ma­tions sur une page.

L’élément le plus important sur l’écran d’accueil est une fenêtre au centre de l’écran qui contient la barre de recherche Google, l’assistant vocal de Google et les ap­pli­ca­tions ins­tal­lées sur l’appareil.

Si vous lancez une ap­pli­ca­tion (qui rend la démo dis­po­nible que comme Dummy), vous verrez que Google a opté pour une interface uti­li­sa­teur basée sur une fenêtre.

Un clic sur l'image de l'uti­li­sa­teur au centre de l’écran d’accueil (Home-Screen) ouvre un menu avec les pa­ra­mètres fré­quem­ment utilisés.

Fuchsia OS a également été largement testé par les ré­dac­teurs d’Ars Technica, qui ont fait fonc­tion­ner la pré-version sur un Pixelbook. La vidéo suivante montre le résultat du test :

Aller au menu principal