Plan 9へのTailscale移植作業
(tailscale.com)TailscaleのPlan 9移植
-
紹介
- TailscaleがPlan 9で動作するようになった。これは4月1日のジョークではなく、本当の話である。
- Plan 9にTailscaleを移植する過程では、さまざまな技術的課題とその解決策があった。
-
Plan 9への理解
- Plan 9は独特なオペレーティングシステムであり、Tailscaleを移植する過程で多くの新しいことを学べた。
- GoコンパイラのPlan 9サポートは時間の経過とともに問題が生じており、これを解決するために多くの努力が必要だった。
-
技術的課題
- Plan 9のSSEサポートの問題を解決するために、カーネルの修正が必要だった。
- IPCの問題によりメモリエラーが発生しており、これを解決するためにlocalhost TCPを使用した。
- 開発環境を改善するため、Russ CoxがPlan 9のソースコードと事前コンパイル済みバイナリを提供するGitHubリポジトリを作成した。
-
ネットワーキングとルーティング
- Tailscaleの"userspace networking"モードによってPlan 9で動作するようになったが、これは理想的な解決策ではない。
- Plan 9のネットワーク経路を操作してルーティングテーブルを実装した。
-
追加機能と改善
- Tailscale SSHサポートを追加し、SSHサーバーがTailscaleのIDを使って認証するようにした。
- MagicDNS機能を実装し、Plan 9でTailscaleネットワークのピアを簡単に参照できるようにした。
- Plan 9の時刻の問題を解決し、gVisorのnetstackで発生するクラッシュを防いだ。
-
今後の方向性
- Plan 9の他のフォーク(9legacy、9front)でもTailscaleが動作するよう、テストが必要である。
- 64ビットサポートと追加機能の実装が必要である。
-
結論
- TailscaleのPlan 9移植は楽しく教育的な経験であり、GoのPlan 9サポート改善にも貢献した。
- このプロジェクトをPlan 9コミュニティが引き継ぎ、発展させていくことが期待される。
1件のコメント
Hacker Newsのコメント
tailscaledとtailscaleを起動できる。プロキシの可用性が限られているため、オンライン状態になるまで時間がかかることがあるrcで書いていて、同僚が nix を使っているので自動的に dirnev に取り込めるため、それで問題ない