Munal OS Trình Diễn Kiến Trúc Hệ Điều Hành Mới Dựa Trên WASM Không Có Các Tính Năng Kernel Truyền Thống

Nhóm biên tập BigGo
Munal OS Trình Diễn Kiến Trúc Hệ Điều Hành Mới Dựa Trên WASM Không Có Các Tính Năng Kernel Truyền Thống

Một hệ điều hành thử nghiệm mới có tên Munal OS đã xuất hiện, thể hiện cách tiếp cận độc đáo trong thiết kế hệ điều hành bằng cách loại bỏ nhiều thành phần kernel truyền thống trong khi sử dụng WebAssembly ( WASM ) để tạo sandbox cho ứng dụng. Dự án này được viết hoàn toàn bằng Rust , biên dịch thành một file nhị phân EFI duy nhất và chạy các ứng dụng thông qua một WASM engine được nhúng thay vì các tiến trình gốc.

Yêu cầu hệ thống

  • Rust Nightly 2025-06-01
  • QEMU 10.0.0
  • Hỗ trợ target RISC-V 64-bit
  • Tuân thủ đặc tả VirtIO 1.1
Ảnh chụp màn hình này minh họa repository GitHub cho Munal OS, thể hiện mã nguồn và cách tổ chức dự án
Ảnh chụp màn hình này minh họa repository GitHub cho Munal OS, thể hiện mã nguồn và cách tổ chức dự án

Khởi Đầu Cách Mạng Khác Biệt Với Thiết Kế Hệ Điều Hành Truyền Thống

Munal OS có chủ ý bỏ qua một số tính năng nền tảng được tìm thấy trong các hệ điều hành thông thường. Hệ thống hoạt động mà không cần bootloader, ánh xạ trang, không gian địa chỉ ảo, hoặc ngắt CPU. Thay vào đó, nó chạy như một file nhị phân EFI duy nhất thoát khỏi các dịch vụ khởi động UEFI gần như ngay lập tức và dựa vào bộ nhớ được ánh xạ nhận dạng trong suốt quá trình thực thi.

Hệ điều hành sử dụng một vòng lặp sự kiện toàn cục duy nhất xử lý tất cả các hoạt động hệ thống một cách tuần tự. Mỗi lần lặp sẽ thăm dò các driver mạng và đầu vào, vẽ giao diện desktop, thực thi một bước của mỗi ứng dụng WASM đang hoạt động, và xóa framebuffer GPU. Cách tiếp cận lập lịch hợp tác này có nghĩa là các ứng dụng phải tự nguyện nhường quyền điều khiển thay vì bị chuyển đổi một cách ưu tiên bởi kernel.

Những Khác Biệt Kiến Trúc Chính

Hệ điều hành truyền thống Munal OS
Yêu cầu bootloader Tệp nhị phân EFI đơn
Bộ nhớ ảo Bộ nhớ ánh xạ đồng nhất
Điều khiển bằng ngắt Trình điều khiển dựa trên polling
Lập lịch ưu tiên Lập lịch hợp tác
Tiến trình gốc Ứng dụng WASM
Hỗ trợ đa lõi Vòng lặp sự kiện đơn

WASM Engine Cung Cấp Sự Cô Lập Ứng Dụng

Thay vì sử dụng bộ nhớ ảo để cô lập tiến trình, Munal OS nhúng WASM engine Wasmi để chạy các ứng dụng được sandbox. Tất cả các chương trình người dùng biên dịch thành WebAssembly và giao tiếp với kernel thông qua một API system call tùy chỉnh. Cách tiếp cận này cung cấp sự tách biệt bộ nhớ và bảo mật mà không cần đến không gian địa chỉ ảo hoặc quản lý tiến trình truyền thống.

Kiến trúc dựa trên WASM đã thu hút sự chú ý từ nhóm phát triển Wasmi , những người lưu ý rằng các phiên bản mới hơn của engine của họ bao gồm khả năng đo lường fuel được cải tiến có thể cải thiện mô hình lập lịch hợp tác. Đo lường fuel hoạt động như một bộ đếm có thể điều chỉnh giảm dần với mỗi lệnh, cho phép hệ thống chủ nhường quyền điều khiển khi bộ đếm về không.

Mối Quan Ngại Về Hiệu Suất Và Khả Năng Mở Rộng

Các cuộc thảo luận cộng đồng đã nêu bật những hạn chế hiệu suất tiềm ẩn với kiến trúc hiện tại. Vòng lặp sự kiện đơn luồng có nghĩa là việc thêm nhiều ứng dụng hơn sẽ tác động trực tiếp đến hiệu suất của tất cả các chương trình đang chạy. Với lập lịch hợp tác, mỗi ứng dụng nhận thời gian CPU trong mỗi lần lặp vòng lặp, vì vậy ba mươi ứng dụng mở có thể về mặt lý thuyết làm chậm mỗi ứng dụng xuống với hệ số ba mươi.

Hệ thống driver dựa trên polling cũng đặt ra câu hỏi về hiệu suất và hiệu quả mạng. Tất cả giao tiếp phần cứng xảy ra thông qua các driver VirtIO liên tục thăm dó để cập nhật thay vì phản hồi các ngắt. Lựa chọn thiết kế này đơn giản hóa codebase nhưng có thể hạn chế thông lượng cho các ứng dụng sử dụng mạng nhiều.

Mô Hình Bảo Mật Đối Mặt Với Các Thách Thức Hiện Đại

Trong khi sandbox WASM cung cấp sự cô lập giữa các ứng dụng, các chuyên gia bảo mật đã lưu ý rằng các lỗ hổng CPU hiện đại như Spectre và Meltdown có thể làm tổn hại mô hình bảo mật. Việc thiếu bảo vệ bộ nhớ ảo và không gian địa chỉ được chia sẻ có thể khiến hệ thống dễ bị tổn thương hơn trước các cuộc tấn công side-channel khai thác thực thi suy đoán.

Hệ thống hiện tại chỉ hỗ trợ chạy trong máy ảo QEMU thông qua các driver VirtIO , điều này hạn chế việc kiểm tra bảo mật trong thế giới thực. Hỗ trợ cho phần cứng thực tế sẽ yêu cầu triển khai các driver truyền thống cho USB , GPU và các thành phần khác.

Các Ứng Dụng Được Tích Hợp

  • Trình duyệt web ( DNS , HTTPS , hỗ trợ HTML cơ bản)
  • Trình soạn thảo văn bản
  • Terminal Python (thông qua RustPython )
  • Giao diện kiểm tra hệ thống để giám sát tài nguyên
  • Demo khối 3D
  • Hệ thống menu hình tròn xuyên tâm

Triển Khai Kỹ Thuật Và Phát Triển Tương Lai

Munal OS bao gồm một bộ tính năng hoàn chỉnh đáng ngạc nhiên mặc dù có tính chất thử nghiệm. Hệ thống cung cấp một bộ công cụ UI tùy chỉnh, một trình duyệt web cơ bản hỗ trợ DNS và HTTPS , một trình soạn thảo văn bản, và thậm chí một terminal Python . Tất cả các ứng dụng chia sẻ một phong cách trực quan nhất quán thông qua hệ thống stylesheet toàn cục.

Munal OS bắt đầu như một dự án đồ chơi để thực hành lập trình hệ thống, và qua nhiều năm đã biến thành một hệ điều hành đầy đủ và một sân chơi để khám phá những ý tưởng mới.

Dự án chứng minh rằng các công cụ hiện đại và kiến trúc đơn giản hóa có thể tạo ra các hệ điều hành chức năng với độ phức tạp ít hơn đáng kể so với các thiết kế truyền thống. Trong khi việc triển khai hiện tại có những hạn chế rõ ràng cho việc sử dụng sản xuất, nó cung cấp những hiểu biết có giá trị về các cách tiếp cận thay thế cho phát triển hệ điều hành và vai trò tiềm năng của WebAssembly trong phần mềm hệ thống.

Tham khảo: Munal OS .·.

Lấy cảm hứng từ thiên nhiên, cảnh quan thanh bình này tượng trưng cho tinh thần đổi mới đằng sau Munal OS khi khám phá những cách tiếp cận mới trong thiết kế hệ điều hành
Lấy cảm hứng từ thiên nhiên, cảnh quan thanh bình này tượng trưng cho tinh thần đổi mới đằng sau Munal OS khi khám phá những cách tiếp cận mới trong thiết kế hệ điều hành