9P (protocolo) - 9P (protocol)
Suíte de protocolo de Internet |
---|
Camada de aplicação |
Camada de transporte |
Camada de Internet |
Camada de link |
9P (ou o protocolo de sistema de arquivos Plan 9 ou Styx ) é um protocolo de rede desenvolvido para o sistema operacional distribuído Plan 9 da Bell Labs como o meio de conectar os componentes de um sistema Plan 9. Os arquivos são objetos-chave no Plano 9. Eles representam janelas , conexões de rede , processos e quase tudo mais disponível no sistema operacional.
9P foi revisado para a 4ª edição do Plano 9 sob o nome 9P2000 , contendo várias melhorias. Algumas das melhorias feitas são, a remoção de certas restrições de nome de arquivo, a adição de um campo de metadados 'último modificador' para diretórios e arquivos de autenticação. A versão mais recente do sistema operacional Inferno também usa 9P2000. O protocolo de arquivo Inferno foi originalmente chamado de Styx, mas tecnicamente sempre foi uma variante do 9P.
Uma implementação de servidor de 9P para Unix, chamada u9fs , está incluída na distribuição do Plan 9. Uma extensão de kernel do cliente OS X 9P é fornecida pelo Mac9P. Um driver cliente de kernel implementando 9p com algumas extensões para Linux faz parte do projeto v9fs . 9P e seus derivados também encontraram aplicação em ambientes embarcados, como o projeto Styx on a Brick.
Aplicativos de servidor
Muitos dos aplicativos do Plan 9 assumem a forma de servidores de arquivos 9P. Exemplos incluem:
- acme : um editor de texto / ambiente de desenvolvimento
- rio : o sistema de janelas do Plan 9
- encanador : comunicação entre processos
- ftpfs: um cliente FTP que apresenta os arquivos e diretórios em um servidor FTP remoto no namespace local
- wikifs: uma ferramenta de edição de wiki que apresenta um wiki remoto como arquivos no namespace local
- webfs: um servidor de arquivos que recupera dados de URLs e apresenta o conteúdo e os detalhes das respostas como arquivos no namespace local
Fora do Plano 9, o protocolo 9P ainda é usado quando um sistema de arquivos remoto leve é necessário:
- NixOS : uma distribuição Linux puramente funcional e declarativa pode se reconstruir dentro de uma máquina virtual , onde o cliente usa 9P para montar o diretório de armazenamento de pacotes do host.
- Subsistema Windows para Linux : desde o Windows 10 versão 1903, o subsistema implementa 9P como um servidor e o sistema operacional host Windows atua como um cliente.
- Crostini : um servidor 9P personalizado é usado para fornecer acesso a arquivos fora de uma VM Linux
- QEMU : o dispositivo VirtFS permite o compartilhamento do sistema de arquivos em 9P, que é acelerado com drivers de kernel e memória compartilhada
- DIOD : Distributed I / O Daemon - um servidor de arquivos 9P
Implementação
9P envia as seguintes mensagens entre clientes e servidores. Essas mensagens correspondem aos pontos de entrada na camada vfs do Plano 9 que qualquer servidor 9P deve implementar.
- versão
- Negociar a versão do protocolo
- erro
- Retorne um erro
- rubor
- Abortar uma mensagem
- auth, attach
- Estabeleça uma conexão
- andar
- Desça uma hierarquia de diretório
- criar, abrir
- Prepare um fid para I / O em um arquivo existente ou novo
- ler escrever
- Transferir dados de e para um arquivo
- clunk
- Esqueça um fid
- retirar
- Remover um arquivo de um servidor
- stat, wstat
- Pergunte ou altere os atributos do arquivo
Veja também
- IL (protocolo de rede) , protocolo de transporte que foi projetado para 9P em redes locais
- Sistema de arquivo distribuído
Referências
links externos
- Página de recursos 9P em cat-v.org
- 9P Manual
- The Styx Architecture for Distributed Systems, de Rob Pike e Dennis Ritchie
- The Organization of Networks in Plan 9 by Dave Presotto e Phil Winterbottom
- Segurança no Plano 9