9P
# 9P

9P (ou o Plan 9 Filesystem Protocol ou Styx), é a um protocolo de rede desenvolvido para o sistema operacional distribuído Plan 9 from Bell Labs como meio de conectar os componentes do sistema Plan 9. Arquivos são os objetos chaves no Plan 9. Eles representam janelas, conexões de rede, processos, e quase tudo mais disponível no sistema operacional.
O 9P encoraja provisionamento e também servindo arquivos sintéticos (ex: /proc para representar processos), diferente do NFS.
O 9P foi revisto para a 4ª edição do Plan 9 sob o nome de 9P2000 que contem várias melhorias fundamentais. A última versão do sistema operacional Inferno também usa 9P2000. O protocolo de arquivos do Inferno era originalmente chamado Styx, mas tecnicamente ele sempre será uma variante do 9P.
Existe uma implementação de um servidor 9P para Unix chamada u9fs incluída na distribuição do Plan 9, e um drive de núcleo cliente para o Linux como parte do projeto v9fs. 9P (e derivados) são também encontrados em aplicações para ambiente embarcado, como no Styx on a Brick.

## 9P aplicações servidores

Muitas aplicações do Plan 9 tomam a forma de servidores 9P; algumas em particular são exemplos notórios:
* acme: uma interface para usuário, para programadores
* rio: o gerenciador de janelas do Plan 9.
* plumber: comunicador interprocessos
* ftpfs: an FTP client that presents the files and directories on a remote FTP server in the local namespace
* wikifs: uma ferramenta de edição wiki que apresenta uma wiki remota como arquivos no namespace local
* webfs: um servidor de arquivos que obtém dados de uma URL e apresenta o conteúdo e detalhes da resposta como arquivos no namespace local
Fora do Plan 9 o protocolo 9P ainda é usado quando sistemas de arquivos remotos leves são necessários:
* NixOS: uma distribuição Linux puramente funcional que pode se reconstruir dentro de uma máquina virtual, quando o cliente usa 9P para montar o diretório de armazenamento de pacotes do hóspede.
* Subsistema Windows para Linux: a partir da versão 1903 do Windows 10 o subsistema implementa 9P como um servidor e o sistema operacional Windows hóspede age como cliente.
* Crostini: um servidor 9P customizado é usado para prover acesso a arquivos fora de uma VM Linux.
* QEMU: o dispositivo VirtFS permite o compartilhamento de sistemas de arquivos sobre 9P, que é acellerado com o drivers do kernel e memória compartilhada
* DIOD: Um Daemon de I/O distribuido - um servidor de arquivos 9P