Portierung von Tailscale auf Plan 9
(tailscale.com)Portierung von Tailscale auf Plan 9
-
Einführung
- Tailscale läuft nun auf Plan 9. Das ist kein Aprilscherz, sondern tatsächlich wahr.
- Bei der Portierung von Tailscale auf Plan 9 gab es verschiedene technische Herausforderungen und Lösungen.
-
Plan 9 verstehen
- Plan 9 ist ein einzigartiges Betriebssystem, und bei der Portierung von Tailscale konnte man vieles Neues lernen.
- Die Plan-9-Unterstützung des Go-Compilers hatte im Laufe der Zeit Probleme entwickelt, und ihre Behebung erforderte großen Aufwand.
-
Technische Herausforderungen
- Um das SSE-Support-Problem von Plan 9 zu beheben, waren Kernel-Änderungen nötig.
- Durch IPC-Probleme traten Speicherfehler auf; zur Behebung wurde localhost-TCP verwendet.
- Um die Entwicklungsumgebung zu verbessern, erstellte Russ Cox ein GitHub-Repository mit dem Plan-9-Quellcode und vorkompilierten Binärdateien.
-
Netzwerk und Routing
- Mit dem Modus „userspace networking“ von Tailscale konnte es auf Plan 9 betrieben werden, auch wenn das keine ideale Lösung ist.
- Durch Manipulation der Netzwerkpfade von Plan 9 wurde eine Routing-Tabelle implementiert.
-
Zusätzliche Funktionen und Verbesserungen
- Unterstützung für Tailscale SSH wurde hinzugefügt, sodass sich der SSH-Server mit der Identität von Tailscale authentifiziert.
- Die MagicDNS-Funktion wurde implementiert, damit sich Peers im Tailscale-Netzwerk unter Plan 9 einfach referenzieren lassen.
- Zeitprobleme in Plan 9 wurden behoben, um Abstürze im netstack von gVisor zu verhindern.
-
Zukünftige Richtung
- Es müssen Tests durchgeführt werden, damit Tailscale auch auf anderen Plan-9-Forks (9legacy, 9front) funktioniert.
- Unterstützung für 64 Bit und zusätzliche Funktionen werden noch benötigt.
-
Fazit
- Die Portierung von Tailscale auf Plan 9 war eine unterhaltsame und lehrreiche Erfahrung und hat zur Verbesserung der Plan-9-Unterstützung in Go beigetragen.
- Es bleibt zu hoffen, dass die Plan-9-Community dieses Projekt aufgreift und weiterentwickelt.
1 Kommentare
Hacker-News-Kommentare
tailscaledundtailscalestarten. Wegen der eingeschränkten Proxy-Verfügbarkeit kann es etwas dauern, bis es online istrc, was okay ist, weil meine Kollegen nix benutzen und es dadurch automatisch in direnv übernommen werden kann