งานพอร์ต Tailscale ไปยัง Plan 9
(tailscale.com)การพอร์ต Tailscale ไปยัง Plan 9
-
บทนำ
- ตอนนี้ Tailscale สามารถทำงานบน Plan 9 ได้แล้ว และนี่ไม่ใช่มุกวันที่ 1 เมษายน แต่เป็นเรื่องจริง
- ระหว่างกระบวนการพอร์ต Tailscale ไปยัง Plan 9 มีทั้งความท้าทายทางเทคนิคหลายอย่างและแนวทางแก้ไขที่ต้องนำมาใช้
-
ทำความเข้าใจ Plan 9
- Plan 9 เป็นระบบปฏิบัติการที่มีเอกลักษณ์เฉพาะตัว และการพอร์ต Tailscale มายังแพลตฟอร์มนี้ทำให้ได้เรียนรู้สิ่งใหม่หลายอย่าง
- การรองรับ Plan 9 ของคอมไพเลอร์ Go มีปัญหาเกิดขึ้นตามกาลเวลา และต้องใช้ความพยายามอย่างมากในการแก้ไข
-
ความท้าทายทางเทคนิค
- ต้องมีการแก้ไขเคอร์เนลเพื่อแก้ปัญหาการรองรับ SSE ของ Plan 9
- ปัญหา IPC ทำให้เกิด memory error และได้แก้ไขด้วยการใช้ localhost TCP
- เพื่อปรับปรุงสภาพแวดล้อมการพัฒนา Russ Cox ได้สร้าง GitHub repository ที่มีซอร์สโค้ด Plan 9 และไบนารีที่คอมไพล์ไว้ล่วงหน้า
-
เครือข่ายและการทำ routing
- Tailscale สามารถทำงานบน Plan 9 ได้ด้วยโหมด "userspace networking" แต่ก็ยังไม่ใช่วิธีแก้ที่เหมาะที่สุด
- มีการจัดการเส้นทางเครือข่ายของ Plan 9 เพื่อสร้าง routing table ขึ้นมา
-
ฟีเจอร์เพิ่มเติมและการปรับปรุง
- เพิ่มการรองรับ Tailscale SSH เพื่อให้ SSH server ยืนยันตัวตนโดยใช้ identity ของ Tailscale
- มีการทำฟีเจอร์ MagicDNS เพื่อให้บน Plan 9 สามารถอ้างอิง peer ในเครือข่าย Tailscale ได้ง่ายขึ้น
- มีการแก้ปัญหาเรื่องเวลาของ Plan 9 เพื่อป้องกันการ crash ที่เกิดใน netstack ของ gVisor
-
ทิศทางในอนาคต
- ยังต้องมีการทดสอบให้แน่ใจว่า Tailscale ทำงานได้บน fork อื่น ๆ ของ Plan 9 เช่น 9legacy และ 9front
- ยังจำเป็นต้องเพิ่มการรองรับ 64 บิตและฟีเจอร์เพิ่มเติมอื่น ๆ
-
บทสรุป
- การพอร์ต Tailscale ไปยัง Plan 9 เป็นประสบการณ์ที่ทั้งสนุกและให้ความรู้ และยังช่วยปรับปรุงการรองรับ Plan 9 ของ Go ด้วย
- คาดหวังว่าโปรเจกต์นี้จะถูกชุมชน Plan 9 รับช่วงต่อและพัฒนาต่อไปได้
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
tailscaledและtailscaleภายใน VM ได้ แต่อาจต้องใช้เวลาสักพักกว่าจะออนไลน์ได้ เนื่องจากมี proxy ให้ใช้งานอย่างจำกัดrcซึ่งก็ใช้ได้ดีเพราะเพื่อนร่วมงานใช้ nix จึงดึงเข้ามาด้วย dirnev ได้อัตโนมัติ