Plan 9 des Bell Labs - Plan 9 from Bell Labs

Plan 9 des Bell Labs
Mascotte de lapin Glenda du plan 9 de bell black.jpg
Glenda, la mascotte du Plan 9, dessinée par Renée French
Plan 9 de Bell Labs (Installation).png
Installation du plan 9
Développeur Fondation Plan 9 succédant aux Bell Labs
Écrit en Dialecte de ANSI C
État de fonctionnement Courant
Modèle source Open source
Première version 1992 ; il y a 29 ans (universités) /  ( 1992 ) 1995 ; il y a 26 ans (grand public) ( 1995 )
Version finale Quatrième édition / 10 janvier 2015 ; Il y a 6 ans ( 2015-01-10 )
Dépôt 9p .io /sources /plan9 /sys /src /
Cible marketing Recherche de systèmes d'exploitation, environnements en réseau, usage général
Disponible en Anglais
Méthode de mise à jour réplique
Plateformes x86 / Vx32 , x86-64 , MIPS , DEC Alpha , SPARC , PowerPC , ARM
Type de noyau Monolithique
Influencé par Research Unix , Système informatique distribué de Cambridge

Interface utilisateur par défaut
rio / rc
Licence 2021 : MIT
2014 : GPL-2.0 uniquement
2002 : LPL-1.02
2000 : Plan 9 OSL
succédé par Inferno
Autres dérivés et fourches
Site officiel P9F .org

Plan 9 de Bell Labs est un système d'exploitation distribué , originaire du Computing Science Research Center (CSRC) des Bell Labs au milieu des années 1980, et s'appuyant sur les concepts UNIX qui y ont été développés pour la première fois à la fin des années 1960. Depuis 2000, Plan 9 est gratuit et open-source . La sortie officielle finale a eu lieu début 2015.

En vertu du Plan 9, UNIX de tout est un fichier métaphore est prolongée par une centrée réseau pervasif système de fichiers , et le curseur adressé , borne à base d' E / S au cœur de type UNIX les systèmes d' exploitation est remplacé par un système de fenêtrage et utilisateur graphique interface sans adressage du curseur, bien que rc , le shell Plan 9 , soit basé sur du texte.

Le nom Plan 9 de Bell Labs est une référence au film Z-film culte de science-fiction d' Ed Wood 1959 Plan 9 from Outer Space . (Le nom de la mascotte du projet, « Glenda, le lapin Plan 9 », est vraisemblablement une référence au film de Wood Glen ou Glenda .) Le système continue d'être utilisé et développé par des chercheurs de systèmes d'exploitation et des amateurs.

Histoire

Plan 9 de Bell Labs a été développé à l' origine, à partir de fin des années 1980, par les membres de la science informatique Centre de recherche chez Bell Labs, le même groupe qui a développé à l' origine Unix et le langage de programmation C . L'équipe Plan 9 était initialement dirigée par Rob Pike , Ken Thompson , Dave Presotto et Phil Winterbottom, avec le soutien de Dennis Ritchie en tant que chef du département de recherche en techniques informatiques. Au fil des ans, de nombreux développeurs notables ont contribué au projet, notamment Brian Kernighan , Tom Duff , Doug McIlroy , Bjarne Stroustrup et Bruce Ellis .

Plan 9 a remplacé Unix en tant que plate-forme principale de Bell Labs pour la recherche sur les systèmes d'exploitation. Il a exploré plusieurs changements au modèle Unix original qui facilitent l'utilisation et la programmation du système, notamment dans des environnements multi-utilisateurs distribués . Après plusieurs années de développement et d'utilisation interne, Bell Labs a expédié le système d'exploitation aux universités en 1992. Trois ans plus tard, Plan 9 a été mis à la disposition des parties commerciales par AT&T via l'éditeur de livres Harcourt Brace . Avec des licences source d'un coût de 350 $, AT&T ciblait le marché des systèmes embarqués plutôt que le marché informatique en général. Ritchie a commenté que les développeurs ne s'attendaient pas à faire "beaucoup de déplacement" étant donné l'établissement des autres systèmes d'exploitation.

Au début de 1996, le projet Plan 9 avait été « mis en veilleuse » par AT&T en faveur d' Inferno , destiné à être un rival de la plate-forme Java de Sun Microsystems . À la fin des années 1990, le nouveau propriétaire de Bell Labs, Lucent Technologies, a abandonné le support commercial du projet et en 2000, une troisième version a été distribuée sous une licence open source . Une quatrième version sous une nouvelle licence de logiciel libre a eu lieu en 2002.

Une communauté d'utilisateurs et de développeurs, comprenant du personnel actuel et ancien des Bell Labs , a produit des versions quotidiennes mineures sous la forme d' images ISO . Bell Labs a hébergé le développement. L'arborescence des sources de développement est accessible via les protocoles 9P et HTTP et permet de mettre à jour les installations existantes. En plus des composants officiels du système d'exploitation inclus dans les ISO, Bell Labs héberge également un référentiel d'applications et d'outils développés en externe.

Comme Bell Labs est passé à des projets ultérieurs ces dernières années, le développement du système officiel Plan 9 s'est arrêté. Le 23 mars 2021, le développement a repris suite au transfert des droits d'auteur des Bell Labs à la Fondation Plan 9. Le développement non officiel du système se poursuit également sur le fork 9front, où les contributeurs actifs fournissent des versions mensuelles et de nouvelles fonctionnalités. Jusqu'à présent, la fourche 9front a fourni les pilotes Wi-Fi du système , les pilotes audio, la prise en charge USB et l'émulateur de jeu intégré, ainsi que d'autres fonctionnalités. Les autres systèmes d'exploitation récents inspirés de Plan 9 incluent Harvey OS et Jehanne OS.

Date Sortie Commenter
1992 Plan 9 1ère édition Diffusé par Bell Labs aux universités
1995 Plan 9 2e édition Publié par Bell Labs à des fins non commerciales
2000 Plan 9 3e éd. ( Brésil ) Publié par Lucent Technologies sous une licence open source
2002 Plan 9 4e édition Publié par Lucent Technologies sous une nouvelle licence de logiciel libre

Concepts de conception

Plan 9 de Bell Labs est comme les Quakers : il se distingue par son accent sur la « Lumière intérieure », réputé pour sa simplicité de vie, en particulier pour la simplicité de son discours. Comme les Quakers, Plan 9 ne fait pas de prosélytisme.

—Sape J. Mullender, Pierre G. Jansen.
Temps réel dans un système d'exploitation réel

Plan 9 est un système d'exploitation distribué , conçu pour faire fonctionner un réseau d' ordinateurs hétérogènes et géographiquement séparés comme un système unique. Dans une installation typique de Plan 9, les utilisateurs travaillent sur des terminaux exécutant le système de fenêtres rio , et ils accèdent aux serveurs CPU qui gèrent les processus de calcul intensif. Le stockage permanent des données est assuré par des hôtes réseau supplémentaires faisant office de serveurs de fichiers et de stockage d'archives.

Ses concepteurs déclarent que,

[l]es fondements du système reposent sur deux idées : un espace de noms par processus et un protocole de système de fichiers simple orienté message.

—  Pike et al.

La première idée (un espace de noms par processus) signifie que, contrairement à la plupart des systèmes d'exploitation, les processus (programmes en cours d'exécution) ont chacun leur propre vue de l' espace de noms , correspondant à ce que les autres systèmes d'exploitation appellent le système de fichiers ; un seul nom de chemin peut faire référence à différentes ressources pour différents processus. La complexité potentielle de cette configuration est contrôlée par un ensemble d'emplacements conventionnels pour les ressources communes.

La deuxième idée (un système de fichiers orienté message) signifie que les processus peuvent offrir leurs services à d'autres processus en fournissant des fichiers virtuels qui apparaissent dans l'espace de noms des autres processus. L' entrée/sortie du processus client sur un tel fichier devient une communication inter-processus entre les deux processus. De cette façon, Plan 9 généralise la notion Unix du système de fichiers en tant que point central d'accès aux ressources informatiques. Il reprend l'idée d'Unix de fichiers de périphérique pour fournir un accès aux périphériques ( souris , supports amovibles, etc.) et la possibilité de monter des systèmes de fichiers résidant sur des systèmes de fichiers physiquement distincts dans un espace de noms hiérarchique, mais ajoute la possibilité de monter une connexion à un serveur programme qui parle un protocole standardisé et traite ses services comme faisant partie de l'espace de noms.

Par exemple, le système de fenêtre original, appelé 8½, exploitait ces possibilités comme suit. Le plan 9 représente l'interface utilisateur sur un terminal au moyen de trois pseudo-fichiers : mouse , qui peut être lu par un programme pour obtenir une notification des mouvements de la souris et des clics sur les boutons, contre , qui peut être utilisé pour effectuer des entrées/sorties de texte, et bitblt , écriture sur laquelle édicte les opérations graphiques (voir bit blit ). Le système de fenêtres multiplexe ces périphériques : lors de la création d'une nouvelle fenêtre pour exécuter un programme, il configure d'abord un nouvel espace de noms dans lequel mouse , cons et bitblt sont connectés à lui-même, masquant les fichiers de périphérique réels auxquels il a lui-même accès. Le système de fenêtre reçoit ainsi toutes les commandes d'entrée et de sortie du programme et les gère de manière appropriée, en envoyant la sortie au dispositif d'écran réel et en donnant au programme actuellement ciblé l'entrée du clavier et de la souris. Le programme n'a pas besoin de savoir s'il communique directement avec les pilotes de périphérique du système d'exploitation ou avec le système Windows ; il n'a qu'à supposer que son espace de noms est configuré de sorte que ces fichiers spéciaux fournissent le type d'entrée et acceptent le type de messages qu'il attend.

Le fonctionnement distribué de Plan 9 repose également sur les espaces de noms par processus, permettant aux processus client et serveur de communiquer entre les machines de la manière décrite ci-dessus. Par exemple, la commande cpu démarre une session distante sur un serveur de calcul. La commande exporte une partie de son espace de noms local, y compris les périphériques du terminal de l'utilisateur ( mouse , cons , bitblt ), vers le serveur, afin que les programmes distants puissent effectuer des entrées/sorties à l'aide de la souris, du clavier et de l'affichage du terminal, en combinant les effets de la connexion à distance et un système de fichiers réseau partagé.

Protocole 9P

Tous les programmes qui souhaitent fournir des services sous forme de fichiers à d'autres programmes utilisent un protocole unifié, appelé 9P. Par rapport à d'autres systèmes, cela réduit le nombre d' interfaces de programmation personnalisées . 9P est un protocole générique, agnostique du support, orienté octet qui fournit des messages livrés entre un serveur et un client. Le protocole est utilisé pour faire référence et communiquer avec des processus, des programmes et des données, y compris à la fois l'interface utilisateur et le réseau. Avec la sortie de la 4e édition, il a été modifié et renommé 9P2000.

Contrairement à la plupart des autres systèmes d'exploitation, Plan 9 ne fournit pas d' interfaces de programmation d'applications spéciales (telles que les sockets Berkeley , les ressources X ou les appels système ioctl ) pour accéder aux périphériques. Au lieu de cela, les pilotes de périphériques Plan 9 implémentent leur interface de contrôle en tant que système de fichiers, de sorte que le matériel soit accessible par les opérations d' entrée/sortie de fichier ordinaires read et write . Par conséquent, le partage du périphérique sur le réseau peut être réalisé en montant l'arborescence de répertoires correspondante sur la machine cible.

Annuaires et espaces de noms de l'Union

Le plan 9 permet à l'utilisateur de collecter les fichiers (appelés noms ) de différentes arborescences de répertoires dans un seul emplacement. Le répertoire d' union résultant se comporte comme la concaténation des répertoires sous-jacents (l'ordre de concaténation peut être contrôlé) ; si les répertoires constituants contiennent des fichiers ayant le même nom, une liste du répertoire de l'union ( ls ou lc ) signalera simplement les noms en double. La résolution d'un nom de chemin unique est effectuée de haut en bas : si les répertoires top et bottom sont réunis en u avec top en premier, alors u/name dénote top/name s'il existe, bottom/name uniquement s'il existe et top/name le fait not exist , et aucun fichier si aucun n'existe. Aucune union récursive des sous-répertoires n'est effectuée, donc si top/subdir existe, les fichiers de bottom/subdir ne sont pas accessibles via l'union.

Un répertoire union peut être créé à l'aide de la commande bind :

; bind /arm/bin /bin
; bind -a /acme/bin/arm /bin
; bind -b /usr/alice/bin /bin

Dans l'exemple ci-dessus, /arm/bin est monté sur /bin , le contenu de /arm/bin remplaçant le contenu précédent de /bin . Le répertoire bin d' Acme est ensuite monté par union après /bin , et le répertoire bin personnel d'Alice est monté par union avant. Lorsqu'un fichier est demandé depuis /bin , il est d'abord recherché dans /usr/alice/bin , puis dans /arm/bin , et enfin dans /acme/bin/arm .

Les espaces de noms de processus séparés remplacent donc généralement la notion de chemin de recherche dans le shell. Une variable d'environnement path ( $path) existe toujours dans le shell rc (le shell principalement utilisé dans Plan 9) ; Cependant, la variable d'environnement de chemin de rc contient classiquement seulement les /binet .répertoires et modifier la variable est déconseillée, au contraire, l' ajout de commandes supplémentaires doit être effectuée par la liaison de plusieurs répertoires comme une seule /bin. Contrairement au plan 9, la variable d'environnement path des shells Unix doit être définie pour inclure les répertoires supplémentaires dont les fichiers exécutables doivent être ajoutés en tant que commandes.

De plus, le noyau peut conserver des tables de montage séparées pour chaque processus, et peut ainsi fournir à chaque processus son propre espace de noms de système de fichiers . Les espaces de noms des processus peuvent être construits indépendamment et l'utilisateur peut travailler simultanément avec des programmes qui ont des espaces de noms hétérogènes. Les espaces de noms peuvent être utilisés pour créer un environnement isolé similaire à chroot , mais d'une manière plus sécurisée.

L'architecture de répertoire d'union de Plan 9 a inspiré les implémentations de systèmes de fichiers d'union 4.4BSD et Linux , bien que les développeurs de l'installation de montage d'union BSD aient trouvé la fusion non récursive de répertoires dans Plan 9 "trop ​​restrictive pour une utilisation générale".

Système de fichiers virtuel spécial

/proc

Liste des processus avec le contenu de la liste de la commande de répertoire (ls, lc) dans /proc

Au lieu d'avoir des appels système spécifiquement pour la gestion des processus , Plan 9 fournit le système de fichiers /proc . Chaque processus apparaît comme un répertoire contenant des informations et des fichiers de contrôle qui peuvent être manipulés par les appels système IO de fichiers ordinaires.

L'approche du système de fichiers permet aux processus Plan 9 d'être gérés avec des outils de gestion de fichiers simples tels que ls et cat ; cependant, les processus ne peuvent pas être copiés et déplacés en tant que fichiers.

/rapporter

Plan 9 n'a pas d'appels système ou d' ioctls spécialisés pour accéder à la pile réseau ou au matériel réseau. Au lieu de cela, le système de fichiers /net est utilisé. Les connexions réseau sont contrôlées en lisant et en écrivant des messages de contrôle dans des fichiers de contrôle. Des sous-répertoires tels que /net/tcp et /net/udp sont utilisés comme interface avec leurs protocoles respectifs.

Unicode

Pour réduire la complexité de la gestion des codages de caractères , Plan 9 utilise Unicode dans tout le système. La mise en œuvre initiale d'Unicode était ISO/IEC 10646-1:1993 . Ken Thompson a inventé UTF-8, qui est devenu l' encodage natif dans Plan 9. L'ensemble du système a été converti pour une utilisation générale en 1992. UTF-8 préserve la compatibilité descendante avec les chaînes traditionnelles à zéro terminal , permettant un traitement plus fiable de l'information et le chaînage de langues multilingues. chaîne de données avec des tubes Unix entre plusieurs processus. L'utilisation d'un seul codage UTF-8 avec des caractères pour toutes les cultures et régions élimine le besoin de basculer entre les jeux de codes.

Combiner les concepts de design

Bien qu'intéressants en eux-mêmes, les concepts de conception du Plan 9 étaient censés être les plus utiles lorsqu'ils étaient combinés. Par exemple, pour mettre en œuvre une traduction d' adresses réseau serveur (NAT), un répertoire syndical peut être créé, superposant le routeur « s / net arborescence avec son propre / net . De même, un réseau privé virtuel (VPN) peut être implémenté en superposant dans un annuaire d'union une hiérarchie /net à partir d'une passerelle distante , en utilisant 9P sécurisé sur l'Internet public. Un répertoire union avec la hiérarchie /net et des filtres peut être utilisé pour mettre en sandbox une application non approuvée ou pour implémenter un pare - feu . De la même manière, un réseau informatique distribué peut être composé d'un répertoire d'union des hiérarchies /proc des hôtes distants, ce qui permet d'interagir avec eux comme s'ils étaient locaux.

Lorsqu'elles sont utilisées ensemble, ces fonctionnalités permettent d'assembler un environnement informatique distribué complexe en réutilisant le système de noms hiérarchique existant.

Logiciel pour Plan 9

Comme avantage de la conception du système, la plupart des tâches de Plan 9 peuvent être accomplies en utilisant les utilitaires ls , cat , grep , cp et rm en combinaison avec le shell rc (le shell Plan 9 par défaut).

Factotum est un serveur d' authentification et de gestion de clés pour Plan 9. Il gère l'authentification pour le compte d'autres programmes de telle sorte que les clés secrètes et les détails de mise en œuvre n'ont besoin d'être connus que de Factotum.

Programmes graphiques

Plan 9 en cours d'exécution acme et rc

Contrairement à Unix , Plan 9 a été conçu avec des graphismes à l'esprit. Après le démarrage, un terminal Plan 9 exécutera le système de fenêtrage rio , dans lequel l'utilisateur peut créer de nouvelles fenêtres affichant rc . Les programmes graphiques invoqués depuis ce shell le remplacent dans sa fenêtre.

Le plombier fournit un mécanisme de communication inter-processus qui permet des liens hypertextes à l'échelle du système.

Sam et acme sont les éditeurs de texte de Plan 9.

Système de stockage

Plan 9 prend en charge les systèmes de fichiers Kfs, Paq, Cwfs, FAT et Fossil . Le dernier a été conçu par Bell Labs spécifiquement pour Plan 9 et offre une capacité de stockage d'instantanés. Il peut être utilisé directement avec un disque dur ou sauvegardé avec Venti , un système de fichiers d'archives et un système de stockage de données permanent.

Développement de logiciels

Le package de distribution de Plan 9 comprend des variantes de compilateur et des langages de programmation spéciaux, et fournit un ensemble de bibliothèques sur mesure ainsi qu'un système d'interface utilisateur de fenêtrage spécifique à Plan 9. La majeure partie du système est écrite dans un dialecte de C ( ANSI C avec quelques extensions et quelques autres fonctionnalités laissées de côté). Les compilateurs pour ce langage ont été construits sur mesure avec la portabilité à l'esprit ; selon leur auteur, ils "compilent rapidement, se chargent lentement et produisent du code objet de qualité moyenne".

Un langage de programmation concurrent appelé Alef était disponible dans les deux premières éditions, mais a ensuite été abandonné pour des raisons de maintenance et remplacé par une bibliothèque de threads pour C.

Compatibilité Unix

Bien que Plan 9 était censé être un développement ultérieur des concepts Unix, la compatibilité avec les logiciels Unix préexistants n'a jamais été l'objectif du projet. De nombreux utilitaires de ligne de commande de Plan 9 partagent les noms de leurs homologues Unix, mais fonctionnent différemment.

Plan 9 peut prendre en charge les applications POSIX et peut émuler l' interface de socket Berkeley via l' environnement ANSI/POSIX (APE) qui implémente une interface proche de ANSI C et POSIX , avec quelques extensions communes (les interfaces natives de Plan 9 C ne sont conformes à aucune des normes). Il comprend également un shell compatible POSIX. Les auteurs d'APE affirment l'avoir utilisé pour porter le système X Window (X11) vers Plan 9, bien qu'ils ne livrent pas X11 "parce que le supporter correctement est un travail trop important". Certains binaires Linux peuvent être utilisés à l'aide d'une application "linuxemu" (émulateur Linux) ; cependant, il s'agit toujours d'un travail en cours. Vice versa, la machine virtuelle vx32 permet à un noyau Plan 9 légèrement modifié de s'exécuter en tant que processus utilisateur sous Linux, prenant en charge les programmes Plan 9 non modifiés.

Accueil

Comparaison avec les systèmes d'exploitation contemporains

En 1991, les concepteurs de Plan 9 ont comparé leur système à d'autres systèmes d'exploitation du début des années 90 en termes de taille, montrant que le code source d'une version minimale ("fonctionnelle, mais pas très utile") était inférieur à un cinquième de la taille d'un Mach. micronoyau sans aucun pilote de périphérique (5899 ou 4622 lignes de code pour Plan 9, selon la métrique, contre 25530 lignes). Le noyau complet comprenait 18000 lignes de code. (Selon un décompte de 2006, le noyau comptait alors quelque 150 000 lignes, mais cela était comparé à plus de 4,8 millions sous Linux .)

Au sein de la communauté de recherche sur les systèmes d'exploitation, ainsi que dans le monde Unix commercial, d'autres tentatives pour atteindre l'informatique distribuée et l'accès au système de fichiers distant ont été faites en même temps que l'effort de conception du Plan 9. Il s'agit notamment du système de fichiers réseau et de l' architecture vnode associée développée par Sun Microsystems , et des dérogations plus radicales au modèle Unix comme le système d'exploitation Sprite de l' UC Berkeley . Le développeur de Sprite Brent Welch souligne que l'architecture SunOS vnode est limitée par rapport aux capacités de Plan 9 en ce qu'elle ne prend pas en charge l'accès aux périphériques distants et la communication inter-processus à distance proprement, même si elle aurait pu avoir les sockets de domaine UNIX préexistants (qui " peut essentiellement être utilisé pour nommer les serveurs de niveau utilisateur") a été intégré à l'architecture vnode.

Une critique du "tout est un fichier", la conception de la communication par message textuel du Plan 9 a souligné les limites de ce paradigme par rapport aux interfaces typées du système d'exploitation orienté objet de Sun , Spring :

Plan 9 contraint tout à ressembler à un fichier. Dans la plupart des cas, le type d'interface réel comprend le protocole des messages qui doivent être écrits et lus à partir d'un descripteur de fichier. Ceci est difficile à spécifier et à documenter, et interdit toute vérification de type automatique , à l'exception des erreurs de fichier au moment de l'exécution. (...) [Un] nom de chemin relatif au contexte racine implicite d'un processus est le seul moyen de nommer un service. Lier un nom à un objet ne peut se faire qu'en donnant un nom existant pour l'objet, dans le même contexte que le nouveau nom. En tant que telles, les références d'interface ne peuvent tout simplement pas être transmises entre les processus, et encore moins entre les réseaux. Au lieu de cela, la communication doit s'appuyer sur des conventions, qui sont sujettes aux erreurs et ne s'adaptent pas.

—  Roscoé ; l'accent dans l'original.

Une comparaison rétrospective ultérieure de Plan 9, Sprite et d'un troisième système d'exploitation de recherche distribué contemporain, Amoeba , a révélé que

les environnements qu'ils [Amoeba et Sprite] construisent sont étroitement couplés au sein du système d'exploitation, ce qui rend la communication avec les services externes difficile. De tels systèmes souffrent de la rupture radicale avec le modèle UNIX, qui décourage également la portabilité des logiciels déjà existants vers la plate-forme (...). Le manque de développeurs, la très petite gamme de matériel pris en charge et la faible base d'utilisateurs, même par rapport au Plan 9, ont également considérablement ralenti l'adoption de ces systèmes (...). Rétrospectivement, Plan 9 était le seul système d'exploitation distribué pour la recherche de cette époque qui a réussi à attirer des développeurs et à être utilisé dans des projets commerciaux assez longtemps pour garantir sa survie à ce jour.

—  Mirtchovski, Simmonds et Minnich

Impacter

Le gestionnaire de fenêtres wmii X a été inspiré par acme , un éditeur de texte du projet Plan 9.

Le plan 9 a démontré qu'un concept intégral d'Unix, à savoir que chaque interface système pouvait être représentée sous la forme d'un ensemble de fichiers, pouvait être implémenté avec succès dans un système distribué moderne. Certaines fonctionnalités de Plan 9, comme l'encodage de caractères UTF-8 d'Unicode, ont été implémentées dans d'autres systèmes d'exploitation. Les systèmes d'exploitation de type Unix tels que Linux ont implémenté 9P, le protocole de Plan 9 pour accéder aux fichiers distants, et ont adopté les fonctionnalités de rfork , le mécanisme de création de processus de Plan 9. De plus, dans Plan 9 de l'espace utilisateur , plusieurs applications et outils de Plan 9, y compris les éditeurs sam et acme, ont été portés sur les systèmes Unix et Linux et ont atteint un certain niveau de popularité. Plusieurs projets cherchent à remplacer les programmes du système d'exploitation GNU entourant le noyau Linux par les programmes du système d'exploitation Plan 9. Le gestionnaire de fenêtres 9wm a été inspiré par , l'ancien système de fenêtrage de Plan 9 ; wmii est également fortement influencé par Plan 9. Dans la recherche en informatique, Plan 9 a été utilisé comme plate-forme informatique en grille et comme véhicule pour la recherche sur l' informatique omniprésente sans middleware . Dans le commerce, Plan 9 sous- tend les systèmes de stockage Coraid . Cependant, Plan 9 n'a jamais approché Unix en popularité, et a été principalement un outil de recherche :

[I]l semble que le Plan 9 ait échoué simplement parce qu'il n'a pas été une amélioration suffisamment convaincante sur Unix pour déplacer son ancêtre. Par rapport au plan 9, Unix grince et cliquette et présente des taches de rouille évidentes, mais il fait le travail assez bien pour tenir sa position. Il y a ici une leçon pour les architectes système ambitieux : l'ennemi le plus dangereux d'une meilleure solution est une base de code existante qui est juste assez bonne.

Parmi les autres facteurs qui ont contribué à la faible adoption de Plan 9 figurent le manque de sauvegarde commerciale, le faible nombre d'applications d'utilisateurs finaux et le manque de pilotes de périphérique .

Les partisans et développeurs du Plan 9 affirment que les problèmes entravant son adoption ont été résolus, que ses objectifs initiaux en tant que système distribué, environnement de développement et plate-forme de recherche ont été atteints, et qu'il jouit d'une popularité modérée mais croissante. Inferno , grâce à ses capacités hébergées, a été un véhicule pour amener les technologies Plan 9 à d'autres systèmes en tant que partie hébergée de grilles de calcul hétérogènes.

Plusieurs projets travaillent à l'extension du Plan 9, dont 9atom et 9front. Ces fourches complètent Plan 9 avec des pilotes matériels et logiciels supplémentaires , y compris une version améliorée du système de messagerie Upas , le compilateur Go , la prise en charge du système de contrôle de version Mercurial (et maintenant également une implémentation git) et d'autres programmes. Plan 9 a été porté sur l' ordinateur monocarte Raspberry Pi . Le projet Harvey tente de remplacer le compilateur personnalisé Plan 9 C par GCC , pour tirer parti des outils de développement modernes tels que GitHub et Coverity , et accélérer le développement.

Dérivés et fourchettes

Inferno est un descendant de Plan 9, et partage de nombreux concepts de conception et même du code source dans le noyau, en particulier autour des périphériques et du protocole Styx/9P2000. Inferno partage avec Plan 9 l'héritage Unix des Bell Labs et la philosophie Unix . La plupart des outils de ligne de commande dans Inferno étaient des outils Plan 9 qui ont été traduits en Limbo .

  • 9atom augmente la distribution Plan 9 avec l'ajout d'un noyau 386 PAE , d'un processeur amd64 et d'un noyau de terminal, de nupas, d'un support matériel informatique supplémentaire, d'IL et de Ken's fs.
  • 9front est un fork de Plan 9. Il a été lancé pour remédier à un manque perçu de ressources de développement dédiées au sein des Bell Labs, et a accumulé diverses corrections et améliorations.
  • 9legacy est une distribution alternative. Il comprend un ensemble de correctifs basés sur la distribution actuelle de Plan 9.
  • Akaros est conçu pour les architectures multicœurs et les systèmes SMP à grande échelle.
  • Harvey OS est un effort pour faire fonctionner le code de Plan 9 avec gcc et clang.
  • JehanneOS est un système d'exploitation expérimental dérivé de Plan 9. Son espace utilisateur et ses modules sont principalement dérivés de 9front, son système de construction de Harvey OS et son noyau est un fork du noyau Plan9 64 bits Plan9 .
  • NIX est un fork de Plan9 destiné aux systèmes multicœurs et au cloud computing.
  • Plan B conçu pour fonctionner dans des environnements distribués où l'ensemble des ressources disponibles est différent à différents moments.
  • node9 est un dérivé scripté de Plan9/Inferno qui remplace le langage de programmation Limbo et la machine virtuelle DIS par le langage Lua et la machine virtuelle LuaJit . Il remplace également les E/S hébergées par plate-forme Inferno par les événements libuv et les E/S de Node.js pour un hébergement cohérent et multiplateforme. C'est une preuve de concept qui démontre qu'un système d'exploitation distribué peut être construit à partir d'espaces de noms par processus et d'éléments cloud génériques pour construire une image système unique de taille arbitraire.

Licence

Depuis la sortie de la quatrième édition en avril 2002, le code source complet de Plan 9 de Bell Labs est disponible gratuitement sous Lucent Public License 1.02, qui est considéré comme une licence open source par l' Open Source Initiative (OSI), gratuit licence du logiciel par la Free Software Foundation , et il respecte les directives du logiciel libre Debian .

En février 2014, l' Université de Californie à Berkeley a été autorisée par le détenteur actuel des droits d'auteur de Plan 9 - Alcatel-Lucent - à publier tous les logiciels Plan 9 précédemment régis par la licence publique Lucent, version 1.02 sous la GPL-2.0 uniquement .

Le 23 mars 2021, la propriété de Plan 9 a été transférée des Bell Labs à la Fondation Plan 9 et toutes les versions précédentes ont été relicenciées sous la licence MIT .

Voir également

Les références

Liens externes