Portando o Tailscale para o Plan 9
(tailscale.com)Portando o Tailscale para o Plan 9
-
Introdução
- O Tailscale passou a funcionar no Plan 9. Isso não é uma piada de 1º de abril, mas um fato real.
- Houve vários desafios técnicos e soluções no processo de portar o Tailscale para o Plan 9.
-
Entendendo o Plan 9
- O Plan 9 é um sistema operacional único, e foi possível aprender muitas coisas novas durante o processo de portar o Tailscale.
- O suporte do compilador Go ao Plan 9 desenvolveu problemas com o tempo, e foi necessário muito esforço para corrigi-los.
-
Desafios técnicos
- Foi necessário modificar o kernel para resolver o problema de suporte a SSE no Plan 9.
- Erros de memória ocorreram devido a problemas de IPC, e foi usado TCP localhost para resolvê-los.
- Para melhorar o ambiente de desenvolvimento, Russ Cox criou um repositório no GitHub que fornece o código-fonte do Plan 9 e binários pré-compilados.
-
Rede e roteamento
- O Tailscale passou a funcionar no Plan 9 com o modo de "userspace networking", mas essa não é a solução ideal.
- A tabela de roteamento foi implementada manipulando os caminhos de rede do Plan 9.
-
Recursos adicionais e melhorias
- Foi adicionado suporte ao Tailscale SSH para que o servidor SSH autentique usando a identidade do Tailscale.
- O recurso MagicDNS foi implementado para permitir referenciar facilmente os peers da rede Tailscale no Plan 9.
- Os problemas de horário do Plan 9 foram resolvidos para evitar falhas no netstack do gVisor.
-
Direções futuras
- São necessários testes para que o Tailscale funcione também em outros forks do Plan 9 (9legacy, 9front).
- É preciso adicionar suporte a 64 bits e implementar mais recursos.
-
Conclusão
- O porte do Tailscale para o Plan 9 foi uma experiência divertida e educativa, além de ter contribuído para melhorar o suporte do Go ao Plan 9.
- Espera-se que a comunidade do Plan 9 possa dar continuidade e evoluir este projeto.
1 comentários
Comentários do Hacker News
tailscaledetailscale. Pode levar algum tempo para ficar online devido à disponibilidade limitada de proxyrc, o que funciona bem porque meus colegas usam nix e isso pode ser carregado automaticamente pelo dirnev