9P
Pilha de protocolos TCP/IP |
---|
Camada de aplicação |
Camada de transporte |
Camada de rede |
Camada de enlace de dados |
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
[editar | editar código-fonte]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.[1]
- Crostini: um servidor 9P customizado é usado para prover acesso a arquivos fora de uma VM Linux.[2]
- QEMU: o dispositivo VirtFS permite o compartilhamento de sistemas de arquivos sobre 9P, que é acellerado com o drivers do kernel e memória compartilhada[3][4]
- DIOD: Um Daemon de I/O distribuido - um servidor de arquivos 9P
Ver também
[editar | editar código-fonte]Referências
- ↑ «What's new for WSL in Windows 10 version 1903?». Windows Command Line Tools For Developers. 16 de Fevereiro de 2019
- ↑ «Running Custom Containers Under Chrome OS». Chromium OS Docs. Consultado em 28 de março de 2019
- ↑ Jujjuri, Venkateswararao; Van Hensbergen, Eric; Liguori, Anthony; Pulavarty, Badari (13–16 de Julho de 2010). «VirtFS—A virtualization aware File System pass-through» (PDF). Linux Symposium
- ↑ «Documentation/9psetup». QEMU Docs. Consultado em 28 de março de 2019
Ligações externas
[editar | editar código-fonte]- (em inglês)9P Resources página na cat-v.org
Documentação
- (em inglês)Manual do 9P
- (em inglês)The Styx Architecture for Distributed Systems por Rob Pike e Dennis Ritchie
- (em inglês)The Organization of Networks in Plan 9 por Dave Presotto e Phil Winterbottom
Implementações
- (em inglês)implementações de servidores e clientes 9P em Python
- (em inglês)implementações de servidores e clientes 9P[ligação inativa] em Java
- (em inglês)cliente Ruby-IXP 9P implementado em Ruby para o wmii
- (em inglês)implementações do cliente 9P em Tcl
- (em inglês)implementação do servidor e cliente 9P em C sobre a licença BSD (parte do projeto wmii)
- (em inglês)implementação do cliente 9P em Common Lisp
- (em inglês)biblioteca 9pclient - Uma biblioteca 9P em C (parte do projeto Plan 9 from User Space)
- (em inglês)implementação do cliente e servidor Styx em Limbo (parte do sistema operacional Inferno)