Fuchsia OS travaille sur la prise en charge de l'exécution de programmes Linux non modifiés

Développeurs Google sorti il ​​y a quelques jours un plan pour implémenter un mécanisme pour exécuter des programmes non modifiés compilés pour Linux sur Le système d'exploitation Fuchsia.

Pour exécuter des programmes Linux dans l'espace utilisateur, il est prévu de fournir une couche "starnix" pour supporter Linux ABI. Dans la couche développée, les interfaces système du noyau Linux sont implémentées dans un pilote qui est lancé en tant que processus pour le système d'exploitation Fuchsia, qui s'exécute dans l'espace utilisateur et traduit les requêtes des programmes Linux en appels aux sous-systèmes Fuchsia correspondants.

On observe quee pendant le développement du projet, de nombreux sous-systèmes Fuchsia devront être modifiés pour implémenter toutes les interfaces système disponibles sous Linux. L'architecture starnix est en grande partie la même que le sous-système Windows pour Linux qui utilise Windows pour traduire les appels système Linux en appels système Windows.

Il est prévu d'implémenter le code starnix dans Rust pour minimiser les éventuels vecteurs de vulnérabilités qui peuvent potentiellement être utilisés pour élever les privilèges d'un processus Linux au processus starnix.

Pour assurer la sécurité chez starnix, des mécanismes de protection standard Fuchsia seront utilisés chaque fois que possible.

Par exemple, lors de l'accès aux services système tels que le système de fichiers, la pile réseau ou le sous-système graphique, starnix ne traduira que les requêtes, convertissant l'ABI Linux en ABI système Fuchsia, autorisant les mêmes restrictions que celles appliquées aux processus Fuchsia habituels.

Cela implémentera également des mécanismes d'autorisation spécifiques à Linux, par exemple, définissant dans quelles situations un processus Linux a le droit d'en terminer un autre.

Les développeurs de Fuchsia ont développé un support pour le lancement d'applications Linux dans le passé, mais ils ont expérimenté une implémentation qui fonctionne par analogie avec la façon dont le lancement des applications Linux est organisé sur Chrome OS.

Pour la compatibilité Linux, Fuchsia a proposé la bibliothèque Machina, qui permettait aux programmes Linux de s'exécuter dans une machine virtuelle isolée spéciale formée à l'aide d'un hyperviseur basé sur le noyau Zircon et les spécifications Virtio.

L'utilisation de la virtualisation n'est pas exclue, puisque l'implémentation complète de l'interface système Linux n'est pas une tâche triviale.

En plus de la cape Starnix, il est possible de créer un mécanisme pour exécuter des exécutables Linux en utilisant un noyau Linux fonctionnant dans une machine virtuelle distincte. Cette méthode est considérée comme la plus simple à mettre en œuvre, mais aussi la plus consommatrice de ressources.

À un moment donné, Microsoft a commencé à développer sa couche de compatibilité Linux à partir du traducteur, mais est finalement passé à l'utilisation du noyau Linux natif sur le sous-système Windows pour Linux 2.

En outre, Fuchsia fournit déjà une couche de compatibilité POSIX Lite qui fonctionne sur Fuchsia System ABI. POSIX Lite vous permet d'exécuter certains programmes Linux, mais nécessite de recompiler le code de l'application et, dans certains cas, de modifier le code source.

Un des problèmes avec POSIX Lite est l'implémentation incomplète de toutes les fonctions POSIX, y compris des appels à changer l'état global des processus (par exemple, la fonction kill), qui sont en contradiction avec les concepts de sécurité dans Fuchsia, qui interdisent de changer l'état global des processus. Express.

L'utilisation de POSIX Lite est justifiée dans le processus de portage des applications ouvertess, mais cela ne résout pas les problèmes de lancement de programmes pour lesquels il n'y a pas d'accès au code (par exemple, il est impossible d'obtenir la compatibilité avec les applications Android contenant des inserts natifs compilés).

Rappelons que dans le cadre du projet Fuchsia, Google développe un système d'exploitation universel capable de fonctionner sur tout type d'appareil, des postes de travail et smartphones aux technologies embarquées et grand public. Le développement est basé sur 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.

source: https://fuchsia.googlesource.com


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.