1 คะแนน โดย GN⁺ 2025-04-03 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

การพอร์ต 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 ความคิดเห็น

 
GN⁺ 2025-04-03
ความคิดเห็นบน Hacker News
  • หากมีคำถามก็พร้อมตอบได้เสมอ
  • มีหลายคนกำลังคุยกันเรื่องนี้อยู่ใน Google Meet (เวลาผ่านไปทุกคนก็ออกกันหมด)
  • โพสต์บล็อกวันที่ 1 เมษายนก่อนหน้านี้เป็นมุกของ Tailscale
  • การที่ Russ Cox ทุ่มเทให้กับมุกนี้นั้นระดับตำนาน
  • ถ้าพลาดโพสต์แรกไป ลองเล่นได้ในอิมเมจ v86
  • สามารถเริ่ม tailscaled และ tailscale ภายใน VM ได้ แต่อาจต้องใช้เวลาสักพักกว่าจะออนไลน์ได้ เนื่องจากมี proxy ให้ใช้งานอย่างจำกัด
  • หากต้องการเปิดเทอร์มินัล ให้กด alt แล้วคลิกขวา เลือกสร้างใหม่ จากนั้นปล่อย alt แล้วปรับขนาดหน้าต่างเทอร์มินัลได้ด้วยการคลิกขวาค้างแล้วลาก
  • เริ่มคิดอย่างจริงจังว่าอยากให้มี Plan 9 เวอร์ชันสำหรับองค์กร สคริปต์ส่วนใหญ่เขียนด้วย rc ซึ่งก็ใช้ได้ดีเพราะเพื่อนร่วมงานใช้ nix จึงดึงเข้ามาด้วย dirnev ได้อัตโนมัติ
  • กำลังจัดเว็บบินาร์อยู่ใน Google Meet
  • ชอบแนวคิดตั้งต้นของมุกนี้ แต่พอมีการอธิบายต่อก็รู้สึกหดหู่ขึ้นมาทันที มีทั้งความซับซ้อนและสิ่งที่พังอยู่มากเกินไป ถ้างานเพิ่มทั้งหมดนี้เพื่อสร้าง network tunnel เป็นแค่มุกก็คงจะตลกดี
  • การแพตช์เคอร์เนลของ Plan 9 เพื่อให้มันทำงานได้นั้นเป็นเรื่องที่คาดไม่ถึง
  • ฉันรัก Plan 9 เป้าหมายโปรเจ็กต์หลังเกษียณคือการสร้างระบบปฏิบัติการของตัวเองโดยใช้หลักการหลายอย่างจากมัน
  • จองชื่อ "chaos10" ไว้สำหรับโปรเจ็กต์นี้แล้ว มันจะไม่มีแผนเหมือน SerenityOS
  • Plan 9 ได้ Tailscale ก่อนเบราว์เซอร์ ซึ่งฟังดูสมเหตุสมผลอย่างประหลาด
  • Rob Pike ถึงกับอึ้งกับการหักหลังอันน่าตกตะลึงนี้