Công việc port Tailscale sang Plan 9
(tailscale.com)Port Tailscale sang Plan 9
-
Giới thiệu
- Tailscale nay đã chạy được trên Plan 9. Đây không phải trò đùa ngày 1 tháng 4 mà là sự thật.
- Trong quá trình port Tailscale sang Plan 9 đã có nhiều thách thức kỹ thuật và cách giải quyết tương ứng.
-
Hiểu về Plan 9
- Plan 9 là một hệ điều hành độc đáo, và quá trình port Tailscale sang đó đã giúp học được nhiều điều mới.
- Hỗ trợ Plan 9 của trình biên dịch Go đã phát sinh vấn đề theo thời gian, và cần rất nhiều nỗ lực để khắc phục.
-
Các thách thức kỹ thuật
- Cần chỉnh sửa kernel để giải quyết vấn đề hỗ trợ SSE trên Plan 9.
- Các vấn đề IPC gây ra lỗi bộ nhớ, và để khắc phục đã sử dụng TCP localhost.
- Để cải thiện môi trường phát triển, Russ Cox đã tạo một kho GitHub cung cấp mã nguồn Plan 9 và các binary biên dịch sẵn.
-
Mạng và định tuyến
- Tailscale đã hoạt động trên Plan 9 bằng chế độ "userspace networking", nhưng đây không phải giải pháp lý tưởng.
- Đã thao tác các đường dẫn mạng của Plan 9 để triển khai bảng định tuyến.
-
Tính năng bổ sung và cải tiến
- Đã thêm hỗ trợ Tailscale SSH để máy chủ SSH xác thực bằng ID của Tailscale.
- Đã triển khai tính năng MagicDNS để có thể dễ dàng tham chiếu các peer trong mạng Tailscale trên Plan 9.
- Đã giải quyết vấn đề thời gian của Plan 9 để ngăn lỗi crash xảy ra trong netstack của gVisor.
-
Định hướng tương lai
- Cần kiểm thử để Tailscale cũng hoạt động trên các nhánh Plan 9 khác (9legacy, 9front).
- Cần hỗ trợ 64-bit và triển khai thêm các tính năng khác.
-
Kết luận
- Việc port Tailscale sang Plan 9 là một trải nghiệm thú vị và giàu tính học hỏi, đồng thời góp phần cải thiện hỗ trợ Plan 9 trong Go.
- Dự án này được kỳ vọng sẽ được cộng đồng Plan 9 tiếp nhận và phát triển tiếp.
1 bình luận
Ý kiến Hacker News
tailscaledvàtailscalebên trong VM. Do proxy có khả năng sẵn sàng hạn chế, có thể sẽ mất một lúc để lên trạng thái trực tuyếnrc, điều này cũng ổn vì đồng nghiệp của tôi dùng nix nên có thể tự động đưa vào bằng dirnev