1 ポイント 投稿者 GN⁺ 2025-04-03 | 1件のコメント | WhatsAppで共有

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件のコメント

 
GN⁺ 2025-04-03
Hacker Newsのコメント
  • 質問があればいつでも回答する用意がある
  • 複数人がこの件について Google Meet で話していた(時間が経つうちに皆いなくなった)
  • 以前の4月1日のブログ記事は、Tailscale のジョークに関するものだった
  • Russ Cox がこのジョークにここまで打ち込んだのは伝説的だ
  • 最初の投稿を見逃したなら、v86 イメージで試せる
  • VM の中で tailscaledtailscale を起動できる。プロキシの可用性が限られているため、オンライン状態になるまで時間がかかることがある
  • ターミナルを起動するには、alt を押して右クリックし、[新規作成] を選んでから alt を離し、右クリックのドラッグでターミナルウィンドウのサイズを調整できる
  • Plan 9 のエンタープライズ版があればいいのにと本気で思っている。スクリプトの大半を rc で書いていて、同僚が nix を使っているので自動的に dirnev に取り込めるため、それで問題ない
  • Google Meet でウェビナーを進行中
  • ジョークの前提は気に入ったが、説明が続くにつれて急に憂鬱になった。複雑さが多すぎるし、壊れているものも多い。ネットワークトンネルを作るためにこれだけ多くの追加作業が必要だというのがジョークだったなら面白かっただろう
  • Plan 9 カーネルにパッチを当てて動かしたのは予想外だった
  • Plan 9 が大好きだ。その多くの原則を使って自分自身の OS を作ることが、引退後のプロジェクトの目標だ
  • このプロジェクトのために "chaos10" という名前を予約した。SerenityOS のような計画はないだろう
  • Plan 9 はブラウザより先に Tailscale を手に入れた。なぜかこれは筋が通っている
  • Rob Pike はこの衝撃的な裏切りに茫然としている