¿Qué aspectos del Plan 9 han llegado a Unix?

28

El Plan 9 fue desarrollado por Bell Labs como sucesor de Unix. Aunque por varias razones nunca se materializó como tal, una buena cantidad de desarrollo siguió en el Plan 9.

Mi pregunta es, ¿qué, si acaso, del Plan 9 ha llegado a Unix moderno?

Justin Ethier
fuente
1
del documento: "el enemigo más peligroso de una solución mejor es una base de código existente que sea lo suficientemente buena".
rahmu

Respuestas:

18

Se dice que laclone (2) llamada al sistema en Linux se ha modelado después del Plan 9 . (Personalmente no veo cómo funciona el tiempo).rfork()

Este documento afirma que el Plan 9 inspiró el "espacio de nombres de montaje / sistema de archivos".

El /procsistema de archivos parece haber llegado al Plan 9 desde la 8ª Edición de Unix, en lugar de al revés.

Bruce Ediger
fuente
Parece que cada vez aparecen más piezas, pero no lo suficiente como para portar aplicaciones nativas de plan9 con una funcionalidad 100% original.
Joe
17

El obvio es probablemente UTF-8. Pero eso es probablemente demasiado obvio.

La gran reestructuración de Al Viro de Linux VFS está fuertemente inspirada en Plan9. Especialmente el cambio de "Todo es un archivo" a "... y cada archivo es un punto de montaje".

Jörg W Mittag
fuente
44
¿Podría explicar brevemente (o señalarme un recurso que explique) qué se entiende por "... y cada archivo es un punto de montaje"?
Sr. Shickadance
3
@Señor. Shickadance: Tradicionalmente, solo puede montar sistemas de archivos y solo puede montarlos en directorios. En Linux, también puede montar directorios en directorios y archivos en archivos. Entonces, en cierto sentido, cada directorio y cada archivo es un sistema de archivos y cada archivo (y no solo cada directorio) es un punto de montaje. Ejemplo:cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Jörg W Mittag
8

Los sistemas de archivos de unión, como unionfs y aufs , se inspiraron en los montajes de directorio de unión Plan9 .

Por ejemplo, se usan en CD en vivo para fusionarse /usr/bindesde el CD con un sistema de archivos grabable, de modo que pueda hacer cambios /usr/bin, incluso si el CD es de solo lectura.

Sistemas de archivos de la Unión: Implementaciones, Parte I en lwn.net

Por ejemplo, si entiendo los documentos correctamente, en Plan9, podría hacer:

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

Y aparecerían todos los archivos en los tres directorios /bin(en caso de nombres duplicados, el del último directorio especificado gana, debido a la -bopción).

No estoy seguro de si esto es lo que Bruce quiere decir con "espacio de nombres de montaje / sistema de archivos", o si es algo diferente.


Probablemente también podría decir que sshfs se inspiró en los ftpfs de Plan9 .

Mikel
fuente
3

En el Plan 9, cada "sistema de archivos" es implementado por un demonio de espacio de usuario. (Piense en FUSE.) Todos estos demonios hablan 9P (específicamente 9P2000, la segunda revisión del protocolo). 9P es esencialmente lo que mantiene unidas las diferentes partes del sistema.

El proyecto v9fs implementa un controlador de kernel de Linux para el protocolo 9P. De acuerdo con la página wiki del Plan 9 , está en el núcleo principal a partir del kernel 2.6.14.

Strugee
fuente