Quais aspectos do Plano 9 chegaram ao Unix?

28

O plano 9 foi desenvolvido pelo Bell Labs como sucessor do Unix. Embora, por várias razões, nunca tenha se materializado como tal, uma boa quantidade de desenvolvimento ainda entrou no Plano 9.

Minha pergunta é: o que - se alguma coisa - do Plano 9 chegou ao Unix moderno?

Justin Ethier
fonte
1
do artigo: "o inimigo mais perigoso de uma solução melhor é uma base de código existente que é boa o suficiente".
rahmu

Respostas:

18

A clonechamada de sistema (2) em linux é dito ter sido modelado após Plano 9 do rfork(). (Eu pessoalmente não vejo como o tempo funciona.)

Este documento afirma que o Plano 9 inspirou o "namespace mount / sistema de arquivos".

O /procsistema de arquivos parece ter chegado ao Plan 9 do 8th Edition Unix, e não o contrário.

Bruce Ediger
fonte
Parece que mais e mais peças continuam aparecendo, mas não o suficiente para portar aplicativos nativos do plan9 com funcionalidade 100% original.
7286 Joe
17

O óbvio é provavelmente o UTF-8. Mas isso é provavelmente muito óbvio.

A grande re-arquitetura do Al Viro do Linux VFS é fortemente inspirada no Plan9. Especialmente a mudança de "Tudo é um arquivo" para "... E todo arquivo é um ponto de montagem".

Jörg W Mittag
fonte
4
Você poderia explicar brevemente (ou apontar um recurso que explique) o que significa "... e todo arquivo é um ponto de montagem"?
Sr. Shickadance,
3
@Sr. Shickadance: tradicionalmente, você pode montar apenas sistemas de arquivos e montá-los em diretórios. No Linux, você também pode montar diretórios em diretórios e arquivos em arquivos. Portanto, de certa forma, todo diretório e todo arquivo é um sistema de arquivos e todo arquivo (e não apenas todo diretório) é um ponto de montagem. Exemplo:cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Jörg W Mittag 01/03
8

Os sistemas de arquivos da união, como unionfs e aufs , foram inspirados nas montagens de diretório de união do Plan9 .

Por exemplo, eles são usados ​​em CDs ao vivo para mesclar /usr/bino CD com um sistema de arquivos gravável, para que você possa fazer alterações /usr/bin, mesmo que o CD seja somente leitura.

Sistemas de arquivos Union: implementações, parte I em lwn.net

Por exemplo, se eu entendo os documentos corretamente, no Plan9, você pode:

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

E todos os arquivos nos três diretórios apareceriam /bin(no caso de nomes duplicados, o arquivo do último diretório especificado vence, devido à -bopção).

Não tenho certeza se é isso que Bruce quer dizer com "espaço para nome mount / filesystem" ou se é algo diferente.


Você também pode dizer que o sshfs foi inspirado nos ftpfs do Plan9 .

Mikel
fonte
3

No Plano 9, todo "sistema de arquivos" é implementado por um daemon do espaço do usuário. (Pense no FUSE.) Todos esses daemons falam de 9P (especificamente 9P2000, a segunda revisão do protocolo). 9P é essencialmente o que mantém as diferentes partes do sistema unidas.

O projeto v9fs implementa um driver de kernel Linux para o protocolo 9P. De acordo com a página wiki do Plan 9 , ele está no kernel da linha principal a partir do kernel 2.6.14.

strugee
fonte