URL: https://linuxfr.org/news/plan9-en-gpl-v2-pour-les-nuls Title: Plan9 en GPL v2, pour les nuls Authors: Florent Zara palm123, ZeroHeure et tuiu pol Date: 2014年02月19日T11:32:56+01:00 License: CC By-SA Tags: plan9, rob_pike, ken_thompson, dennis_ritchie et brian_kernighan Score: 55 L'université de Berkeley en Californie a reçu l'autorisation d'[Alcatel-Lucent](http://fr.wikipedia.org/wiki/Alcatel-Lucent) de [publier Plan9 en GPLv2](http://akaros.cs.berkeley.edu/files/Plan9License). Pour rappel, Plan9 est un OS, descendant de [_Unix Time-Sharing System_](https://en.wikipedia.org/wiki/Research_Unix), développé chez [Bell Labs](http://fr.wikipedia.org/wiki/Bell_Labs), par Rob Pike, Ken Thompson, Dennis Ritchie et d'autres. ![Glenda, logo de Plan9](http://plan9.bell-labs.com/plan9/img/spaceglenda100.gif) Comme il semble que peu de monde sache ce qu'est Plan9, voici, dans la suite de la dépêche, une rapide introduction à Plan9. Nous vous invitons à poursuivre par vous même en lisant la [documentation](http://plan9.bell-labs.com/plan9/) et en installant Plan9 sur votre cluster de RaspberryPi, vos Thinkpads ou vos machines virtuelles pour vous faire une idée de la bête par vous-même. NdA : _Merci à eggman et Sygne pour leurs journaux respectifs sur le sujet, sous licence CC by-sa._ ---- [Premier journal d'eggman à l'origine de la dépêche : Plan9 goes GPL v2](https://linuxfr.org/users/eggman/journaux/plan9-goes-gpl-v2) [Second journal de Sygne à l'origine de la dépêche : Plan9 pour les nuls](http://linuxfr.org/users/sygne/journaux/plan9-pour-les-nuls) [Licence Plan9](http://akaros.cs.berkeley.edu/files/Plan9License) [Dépôt Github de Plan9](https://github.com/brho/plan9) [Source de l'information : Akaros (Berkeley)](http://akaros.cs.berkeley.edu/akaros-web/news.php) [Télécharger Plan9](http://akaros.cs.berkeley.edu/files/plan9.tar.bz2) ---- # Plan9 pour les nuls # ## Plan9 est bien né ## Parce qu'il est le fils de [[Ken Thompson]], [[Dennis Ritchie]], [[Brian Kernighan]] et [[Rob Pike]], entre autres. ## Plan9 est libre ## Parce qu'il est distribué, depuis 2003, sous la _Lucent Public License_, une licence reconnue libre par la FSF. Et il est désormais aussi distribué sous GPLv2. ## Plan9 est moderne ## Parce que son interface graphique est déjà intégrée au noyau. Il n'y a d'ailleurs pas de tty dans Plan9, ceux-ci paraissant déjà dépassés en 1987. L'ergonomie de Plan9 continue néanmoins de reposer sur le texte, puisque Rio, le gestionnaire de fenêtres, n'ouvrira par défaut que des lignes de commandes. Plan9 propose en outre une interface de programmation, nommée Acme, qui s'utilise au clavier et à la souris. Le clic du milieu permet d'exécuter le texte sélectionné ou les commandes de l'éditeur représentées par des tags situés en haut de la fenêtre. L'exécution s'affiche dans une nouvelle sous-fenêtre, automatiquement placée à la façon d'un gestionnaire de fenêtre pavant. Enfin, l'exécution de la commande dépend du contexte : exécuter une ligne de sortie de grep ouvre le fichier greppé à cette ligne repérée par grep. ## Plan9 est international ## Parce que l'utf-8 a été inventé pour Plan9. ## Plan9 n'est pas [[POSIX]] ## Parce que ce standard a été jugé trop limitatif pour un système d'exploitation dédié à l'exploration de nouveaux concepts. Le shell de Plan9, _rc_, a une syntaxe un peu personnelle et sa libc a été entièrement ré-écrite, ainsi que son compilateur. ## Plan9 est distribué ## Parce que Plan9 est fait pour fonctionner sur un cluster de machines. L'architecture d'un cluster Plan9 repose sur au moins trois machines : des serveurs de CPU, des serveurs de fichiers et des terminaux, le serveur de CPU faisant généralement aussi office de serveur d'identification. Il est à noter qu'on peut installer le tout sur une seule machine. Par défaut, le CPU utilisé est celui du terminal. Mais il suffit de préfixer une commande par __cpu__ pour utiliser le CPU distant. Pour que tout cela fonctionne bien dans des environnements multi-architectures, le serveur de fichier adapte la vue du système de fichier présenté à chaque terminal en fonction de son architecture. Ainsi, à une machine Arm il montrera `/arm/bin/` en lieu et place de `/bin/`. ## Plan9 est unifié ## Parce que la commande __bind__ permet de monter plusieurs systèmes de fichiers dans un même répertoire. Au cas où un même nom apparaîtrait dans plusieurs de ces systèmes de fichiers, seul celui du premier monté sera accessible. ## Plan9 est tout fichier ## Parce que sur Plan9, vraiment tout est fichier. La souris est un fichier, il suffit d'écrire dedans pour déplacer le curseur. La fenêtre aussi est un fichier, il suffit d'écrire dedans pour la modifier. Le contenu de la fenêtre aussi est un fichier, ce fichier est celui que vous êtes en train d'éditer - c'est d'ailleurs pour cela que Plan9 n'aime pas trop la coloration syntaxique, car elle supposerait d'introduire une discontinuité dans ce tout fichier. De même, le réseau est représenté dans Plan9 par un système de fichiers. Puisque tout est fichier sur Plan9, lorsqu'on écrit un pilote, par exemple un pilote de carte ethernet, on écrit en vérité quelque chose qui ressemble à un serveur de fichier. Conséquence directe de ce fonctionnement : pour accéder à un périphérique distant, il suffit de monter son système de fichier localement. ## Plan9 est simple ## Parce tout Plan9 repose sur un unique protocole de relation entre client et serveur : 9P. Ainsi, le pilote de souris, le gestionnaire de fenêtre, le pilote de carte Ethernet et le système de fichier lui-même ne sont que des implémentations du protocole 9P. Le protocole lui-même est très simple : Les quatre premiers bytes indiquent la taille complète du message, le byte suivant le type du message, celui d'après est un tag, et le reste est constitué de paramètres. ## Plan9 est sauvegardant ## Parce que _Fossil_, son système de fichier par défaut, permet à tout utilisateur de réaliser des snapshots. Mais parce que Plan9 dispose d'un autre système fichier, _Venti_, dédié quant à lui à la sauvegarde permanente des snapshots. Pour être simple et robuste, Venti ne permet pas de supprimer des données, seulement d'en ajouter. ## Plan9 est varié ## Parce qu'il existe plusieurs distributions de Plan9 : vanilla de Bell Labs, 9front, inferno, 9atom. Outre qu'elles proposent différents utilitaires, toutes ces distributions proposent leur propre version patchée du noyau. ## Plan9 est communautaire ## Parce que les utilisateurs de Plan9 partagent leurs pilotes, patchs, ports, et programmes. On voit difficilement trace de toutes ces sources, parce qu'elles sont surtout distribuées par Bell Labs sous la forme de systèmes de fichiers pour Plan9 : [/n/sources/contrib/](http://plan9.bell-labs.com/sources/contrib/). ## Plan9 est compatible avec Linux ## Parce qu'une application pour Linux, _drawterm_, permet de se connecter à un serveur Plan9. Parce que l'utilisation du protocole 9P comme système de fichier est implémenté dans le noyau Linux (_v9fs_). Parce que les utilitaires de Plan9 sont disponibles sous Linux grâce à _Plan9 from user space_. Parce que, enfin, des ports de GCC, binutils, et de certaines applications Linux sont disponibles sous Plan9.

AltStyle によって変換されたページ (->オリジナル) /