Experimentando o 9Protocol do Plan9 com diod

6 min

language: ja bn en es hi pt ru zh-cn zh-tw

Olá, sou o Incompetente.

Desta vez, vou experimentar o protocolo Plan9, desenvolvido pelo Plan9 para sistemas operacionais distribuídos, no Bell Labs, onde o UNIX nasceu.

Introdução

Como um SO distribuído, o Plan9 foi configurado de forma mais simples, tratando todos os recursos como arquivos.
Por essa razão, parece que os recursos da CPU também eram distribuídos usando recursos remotamente em seus respectivos sistemas de arquivos. Por exemplo, você pode concatenar o diretório /bin ou, com /dev, pode compartilhar dispositivos sem adicionar código.
Por exemplo, hoje em dia, se você compartilhar /var/spool/cups, que aponta para o diretório da fila, como cups (Common Unix Printing System), é possível imprimir facilmente a partir de um servidor de impressão.
Deveria ser mais fácil operar montando-o no sistema de arquivos do que gerenciá-lo por porta.

Vou experimentar o Plan9 Protocol que foi usado nesse contexto.
Na verdade, atualmente, verificando a Wikipedia, existem qemu e diod disponíveis para BSD/GNU/Linux, e como qemu já está em uso, desta vez vou usar diod como seu servidor de arquivos, que é mais tradicionalmente UNIX-like.

Instalação do diod

O Github do diod está aqui, mas você pode instalá-lo facilmente através do gerenciador de pacotes.
apt

sudo apt isntall diod  

yay

yay -S diod  

Isso completa a instalação.

Inicialização do servidor, montagem

O método está descrito no README.md no Github, então vou segui-lo.
Desta vez, vou montar o diretório /media/ncp/files do servidor em /mnt/9p no lado do cliente.

Além disso, como ele opera em 564/TCP, vou allowá-lo do servidor usando ufw. Server

sudo ufw allow 564/tcp  
sudo ufw reload  
sudo diod -f -d 1 -n -e /media/ncp/files/  

Isso completou a inicialização.

Client

sudo diodmount -n 192.168.10.113:/media/ncp/files /mnt/9p  

Isso completou a montagem.
Vamos verificar com ls.

$ ls -la /mnt/9p/  
合計 6115604  
drwxr-xr-x 2 haturatu haturatu       4096  9月  2 21:58 .  
drwxr-xr-x 3 root     root           4096  9月  5 22:32 ..  
-rw-r--r-- 1 haturatu haturatu 6262358016  9月  2 13:58 devuan.qcow2  
-rwxr-xr-x 1 root     root           1845  9月  2 21:58 index.php  
-rw-r--r-- 1 root     root            937  9月  2 21:53 style.css  

Perfeito. Mais tarde, preciso mudar o usuário aqui para www-data...

A desmontagem pode ser feita como de costume.

sudo umount /mnt/9p  

Mais Simples

É muito confortável porque elimina a complexidade e é simples.
Embora fosse originalmente um sistema para SO distribuído, infelizmente, hoje em dia, BSD e GNU/Linux tornaram-se comuns e possuem sistemas de arquivos diferentes.
Devido a essa divergência, torná-lo um SO distribuído entre diferentes sistemas operacionais não parece muito realista.
Por exemplo, no FreeBSD, pkg e os grupos de software que os usuários podem instalar livremente usam arquivos de configuração em /usr/loacl/etc, enquanto o GNU/Linux usa /etc.
Além disso, FreeBSD não possui /proc e /sys, mas o GNU/Linux sim.
Claro, existem partes recíprocas, então pode-se dizer que é possível em alguns casos.

Neste caso, se você combiná-lo com Wireguard a partir de um VPS com pouco armazenamento, pode expandir facilmente o armazenamento, e ele tem um certo nível de praticidade.
Além disso, falando de outros servidores de arquivos, já usei alguns como o Samba, mas sinto que este é provavelmente o mais simples e rápido.

Desviando um pouco do assunto, ao reler o artigo da entrevista de Theo de Raadt sobre o OpenBSD e depois reler a Wikipedia do OpenBSD, percebi que

Ênfase em código aberto e documentação

e o fato de eu ter conseguido testar tão facilmente um sistema tão antigo é precisamente porque houve pessoas que criaram a documentação no passado.
Foi um dia em que senti novamente a importância da documentação, preferindo a simplicidade à complexidade.

Então é isso. Até a próxima.

Related Posts