Hyperlight WASM: nhanh, an toàn và không cần OS
(opensource.microsoft.com)- Hyperlight Wasm là phiên bản mở rộng mới nhất của công nghệ máy ảo siêu nhẹ (VM) Hyperlight do Microsoft đóng góp cho CNCF, dùng để chạy các workload WebAssembly (dựa trên Component Model) một cách nhanh chóng và an toàn
- Khác với VM truyền thống, nó chỉ phơi bày lát cắt bộ nhớ và CPU mà không cần OS hay thiết bị ảo, mang lại thời gian khởi động nhanh 1~2ms
- Có thể chạy các component wasm được viết bằng nhiều ngôn ngữ khác nhau (C, Rust, Go, Python, JS, v.v.) dưới sự bảo vệ của hypervisor
Các đặc điểm chính của Hyperlight Wasm
-
Hiệu năng nhanh hơn so với VM truyền thống
- VM truyền thống: khởi tạo thiết bị → nạp kernel → khởi động OS → chạy ứng dụng (khoảng 125ms)
- Hyperlight Wasm: có thể chạy chỉ với việc tạo lát cắt bộ nhớ + nạp Wasm (1~2ms, mục tiêu tương lai là <1ms)
- Tốc độ thực thi nhanh rất phù hợp cho chạy serverless theo nhu cầu hoặc duy trì warm pool ở mức tối thiểu
-
Chạy nhiều ngôn ngữ mà không cần hệ điều hành
- Dựa trên chuẩn WASI và WebAssembly Component Model, có thể chạy các component được viết từ hầu hết ngôn ngữ
- Tích hợp runtime wasmtime, nên các ngôn ngữ thông dịch như Python, JavaScript, C# cũng có thể chạy ở dạng kèm runtime
- Ở góc độ nhà phát triển, chỉ cần biên dịch tới target
wasm32-wasip2là có thể chạy trên Hyperlight
-
Tăng cường bảo mật (sandbox kép)
- Cấu trúc bảo vệ hai lớp gồm sandbox Wasm + sandbox VM dựa trên hypervisor
- Ngay cả khi kẻ tấn công thoát được khỏi wasm, vẫn phải vượt qua thêm sandbox VM
Ví dụ phát triển: chạy máy chủ UDP Echo dựa trên Rust
- Dùng CLI
wkgđể tải xuống và biên dịch binary wasm - Chuyển tệp định nghĩa giao diện WASI (
.wit) thành binary để tạo binding - Thông qua
hyperlight_component_macrovàhost_bindgen!để tự động tạo binding cho giao diện import/export của Wasm - Định nghĩa logic máy chủ echo thông qua việc hiện thực giao diện UdpSocket
- Tạo sandbox
hyperlight-wasmđể nạp và chạy component wasm -
Biên dịch Ahead-of-Time
- Dùng công cụ
hyperlight-wasm-aotđể biên dịch AOT cho wasm, giúp giảm thời gian chạy - Có thể chạy máy chủ bằng
cargo runvà kiểm tra UDP bằng lệnhnc -u
- Dùng công cụ
Khả năng mở rộng và kế hoạch sắp tới
- Hyperlight Wasm dự kiến hỗ trợ không chỉ x86 mà cả kiến trúc Arm64
- Hiện tại vẫn cần tự hiện thực giao diện WASI, nhưng trong tương lai sẽ cung cấp binding mặc định
- Có kế hoạch giúp sandbox nhanh các dịch vụ đơn giản như máy chủ HTTP
Hướng dẫn tham gia cộng đồng mã nguồn mở
- Hyperlight là dự án mã nguồn mở của Microsoft được phát hành theo giấy phép Apache 2.0 và đã được đăng ký trong CNCF Sandbox
- Hyperlight Wasm hướng tới cung cấp môi trường thực thi nhanh và an toàn phù hợp với điện toán cloud-native
- Có thể xem mã nguồn và đóng góp thông qua kho GitHub
👉 Kho GitHub: hyperlight-wasm
2 bình luận
Hyperlight - Trình quản lý máy ảo hạng nhẹ (VMM) | GeekNews
Ý kiến trên Hacker News
Vài tháng trước, tôi đã bắt đầu nghiêm túc sử dụng WebAssembly để xây dựng một thư viện xác thực backend chạy được trên nhiều ngôn ngữ
Vài tháng trước, chúng tôi đã công bố Hyperlight, một VMM siêu nhẹ
Rất đáng mong đợi
Trông khá thú vị
Rất tuyệt
Có cảm giác rằng mọi dự án ngầu và thú vị đều cho thấy WASM thành công ở mọi nơi trừ trình duyệt
Có ai có ý tưởng làm sao để đưa cái này vào thiết lập Proxmox không?
Các instance được khởi động và quản lý như thế nào?
Về cơ bản, có một VM (wasm) để sandbox chương trình bên trong VM phần cứng, vốn là một lớp trừu tượng dùng để cô lập chương trình trong tiến trình không gian người dùng (tiến trình Linux)
Đây có phải là unikernel/library OS không?