Plan 9에 Tailscale 포팅 작업

22 hours ago 1

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 커뮤니티가 이어받아 발전시킬 수 있기를 기대함.

Read Entire Article