Quels aspects de Plan 9 ont fait leur chemin vers Unix?

28

Le Plan 9 a été développé par Bell Labs en tant que successeur d'Unix. Bien que, pour diverses raisons, il ne se soit jamais concrétisé en tant que tel, une bonne partie du développement est restée dans le plan 9.

Ma question est, qu'est-ce que - si quelque chose - du Plan 9 a fait son chemin dans Unix moderne?

Justin Ethier
la source
1
extrait du journal: "l'ennemi le plus dangereux d'une meilleure solution est une base de code existante qui est juste assez bonne."
rahmu

Réponses:

18

Le clone(2) appel système linux est dit avoir été calqué sur le plan 9 de rfork(). (Personnellement, je ne vois pas comment fonctionne le timing.)

Cet article prétend que Plan 9 a inspiré «l'espace de noms mount / filesystem».

Le /procsystème de fichiers semble être arrivé à Plan 9 à partir de la 8e édition d'Unix, plutôt que l'inverse.

Bruce Ediger
la source
Il semble que de plus en plus d'éléments continuent de venir mais pas assez pour porter des applications natives de plan9 avec des fonctionnalités 100% originales.
Joe
17

L'évident est probablement UTF-8. Mais c'est probablement trop évident.

La grande ré-architecture d'Al Viro du VFS Linux est fortement inspirée de Plan9. Surtout le passage de "Tout est un fichier" à "… Et chaque fichier est un point de montage".

Jörg W Mittag
la source
4
Pourriez-vous expliquer brièvement (ou me diriger vers une ressource qui explique) ce que l'on entend par "... et chaque fichier est un point de montage"?
M. Shickadance
3
@M. Shickadance: Traditionnellement, vous ne pouvez monter que des systèmes de fichiers et vous ne pouvez les monter que sur des répertoires. Sous Linux, vous pouvez également monter des répertoires sur des répertoires et des fichiers sur des fichiers. Donc, dans un sens, chaque répertoire et chaque fichier est un système de fichiers et chaque fichier (et pas seulement chaque répertoire) est un point de montage. Exemple:cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Jörg W Mittag
8

Les systèmes de fichiers Union, tels que unionfs et aufs , ont été inspirés par les montages de répertoire union Plan9 .

Par exemple, ils sont utilisés sur des CD live pour fusionner à /usr/binpartir du CD avec un système de fichiers inscriptible, afin que vous puissiez y apporter des modifications /usr/bin, même si le CD est en lecture seule.

Systèmes de fichiers Union: implémentations, partie I sur lwn.net

Par exemple, si je comprends bien les documents, sur Plan9, vous pouvez faire:

bind -b /usr/bin /bin
bind -b /usr/local/bin /bin
bind -b /home/username/bin /bin

Et tous les fichiers des trois répertoires apparaîtront /bin(en cas de noms en double, celui du dernier répertoire spécifié gagne, en raison de l' -boption).

Je ne sais pas si c'est ce que Bruce entend par "espace de noms mount / filesystem", ou s'il s'agit de quelque chose de différent.


Vous pourriez probablement aussi dire que sshfs a été inspiré par les ftpfs de Plan9 .

Mikel
la source
3

Dans Plan 9, chaque "système de fichiers" est implémenté par un démon d'espace utilisateur. (Pensez FUSE.) Ces démons parlent tous de 9P (spécifiquement 9P2000, la deuxième révision du protocole). 9P est essentiellement ce qui maintient les différentes parties du système ensemble.

Le projet v9fs implémente un pilote de noyau Linux pour le protocole 9P. Selon la page wiki de Plan 9 , elle se trouve dans le noyau principal à partir du noyau 2.6.14.

strugee
la source