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?
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".
¿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
10
El sistema de archivos / proc en Linux es una idea del Plan 9.
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.
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 .
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.
Respuestas:
Se dice que la
clone
(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
/proc
sistema de archivos parece haber llegado al Plan 9 desde la 8ª Edición de Unix, en lugar de al revés.fuente
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".
fuente
cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
El sistema de archivos / proc en Linux es una idea del Plan 9.
fuente
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/bin
desde 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:
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-b
opció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 .
fuente
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.
fuente