Munal OS Menunjukkan Seni Bina Sistem Pengendalian Berasaskan WASM Yang Novel Tanpa Ciri Kernel Tradisional

Pasukan Editorial BigGo
Munal OS Menunjukkan Seni Bina Sistem Pengendalian Berasaskan WASM Yang Novel Tanpa Ciri Kernel Tradisional

Sebuah sistem pengendalian eksperimen baharu yang dipanggil Munal OS telah muncul, mempamerkan pendekatan yang tidak konvensional terhadap reka bentuk OS yang menghapuskan banyak komponen kernel tradisional sambil menggunakan WebAssembly (WASM) untuk sandboxing aplikasi. Projek ini, yang ditulis sepenuhnya dalam Rust , dikompil menjadi satu binari EFI dan menjalankan aplikasi melalui enjin WASM terbenam berbanding proses natif.

Keperluan Sistem

  • Rust Nightly 2025-06-01
  • QEMU 10.0.0
  • Sokongan sasaran RISC-V 64-bit
  • Pematuhan spesifikasi VirtIO 1.1
Tangkapan skrin ini menggambarkan repositori GitHub untuk Munal OS, mempamerkan kod sumber dan organisasi projeknya
Tangkapan skrin ini menggambarkan repositori GitHub untuk Munal OS, mempamerkan kod sumber dan organisasi projeknya

Penyimpangan Radikal dari Reka Bentuk OS Tradisional

Munal OS sengaja mengetepikan beberapa ciri asas yang terdapat dalam sistem pengendalian konvensional. Sistem ini beroperasi tanpa bootloader, page mapping, ruang alamat maya, atau CPU interrupts. Sebaliknya, ia berjalan sebagai satu binari EFI yang keluar dari perkhidmatan boot UEFI hampir serta-merta dan bergantung pada memori identity-mapped sepanjang pelaksanaannya.

Sistem pengendalian ini menggunakan satu gelung acara global yang mengendalikan semua operasi sistem secara berurutan. Setiap iterasi mengundi pemacu rangkaian dan input, melukis antara muka desktop, melaksanakan satu langkah bagi setiap aplikasi WASM yang aktif, dan membuang framebuffer GPU . Pendekatan penjadualan koperatif ini bermakna aplikasi mesti secara eksplisit menyerahkan kawalan berbanding ditukar secara preemptif oleh kernel.

Perbezaan Seni Bina Utama

OS Tradisional Munal OS
Memerlukan bootloader Binari EFI tunggal
Memori maya Memori pemetaan identiti
Dipacu gangguan Pemacu berasaskan polling
Penjadualan preemptif Penjadualan koperatif
Proses asli Aplikasi WASM
Sokongan berbilang teras Gelung peristiwa tunggal

Enjin WASM Menyediakan Pengasingan Aplikasi

Berbanding menggunakan memori maya untuk pengasingan proses, Munal OS membenamkan enjin Wasmi WASM untuk menjalankan aplikasi bersandbox. Semua program pengguna dikompil kepada WebAssembly dan berkomunikasi dengan kernel melalui API panggilan sistem tersuai. Pendekatan ini menyediakan pemisahan memori dan keselamatan tanpa memerlukan ruang alamat maya atau pengurusan proses tradisional.

Seni bina berasaskan WASM telah menarik perhatian dari pasukan pembangunan Wasmi , yang menyatakan bahawa versi terbaru enjin mereka termasuk keupayaan fuel metering yang dipertingkatkan yang boleh meningkatkan model penjadualan koperatif. Fuel metering bertindak seperti pembilang boleh laras yang berkurangan dengan setiap arahan, membolehkan sistem hos menyerahkan kawalan apabila pembilang mencapai sifar.

Kebimbangan Prestasi dan Skalabiliti

Perbincangan komuniti telah menyerlahkan potensi batasan prestasi dengan seni bina semasa. Gelung acara berbenang tunggal bermakna menambah lebih banyak aplikasi secara langsung memberi kesan kepada prestasi semua program yang berjalan. Dengan penjadualan koperatif, setiap aplikasi mendapat masa CPU semasa setiap iterasi gelung, jadi tiga puluh aplikasi terbuka secara teorinya boleh memperlahankan setiap satu dengan faktor tiga puluh.

Sistem pemacu berasaskan polling juga menimbulkan persoalan tentang prestasi dan kecekapan rangkaian. Semua komunikasi perkakasan berlaku melalui pemacu VirtIO yang sentiasa mengundi untuk kemas kini berbanding bertindak balas kepada interrupts. Pilihan reka bentuk ini memudahkan kod asas tetapi mungkin mengehadkan throughput untuk aplikasi intensif rangkaian.

Model Keselamatan Menghadapi Cabaran Moden

Walaupun sandboxing WASM menyediakan pengasingan antara aplikasi, pakar keselamatan telah menyatakan bahawa kerentanan CPU moden seperti Spectre dan Meltdown berpotensi menjejaskan model keselamatan. Kekurangan perlindungan memori maya dan ruang alamat berkongsi mungkin menjadikan sistem lebih terdedah kepada serangan saluran sisi yang mengeksploitasi pelaksanaan spekulatif.

Sistem ini pada masa ini hanya menyokong berjalan dalam mesin maya QEMU melalui pemacu VirtIO , yang mengehadkan ujian keselamatan dunia sebenar. Sokongan untuk perkakasan sebenar memerlukan pelaksanaan pemacu tradisional untuk USB , GPU , dan komponen lain.

Aplikasi yang Disertakan

  • Pelayar web (DNS, HTTPS, sokongan HTML asas)
  • Editor teks
  • Terminal Python (melalui RustPython)
  • Paparan audit sistem untuk pemantauan sumber
  • Demo kiub 3D
  • Sistem menu pai jejari

Pelaksanaan Teknikal dan Pembangunan Masa Depan

Munal OS termasuk set ciri yang lengkap secara mengejutkan walaupun sifatnya yang eksperimen. Sistem ini menyediakan toolkit UI tersuai, pelayar web asas yang menyokong DNS dan HTTPS , editor teks, dan juga terminal Python . Semua aplikasi berkongsi gaya visual yang konsisten melalui sistem stylesheet global.

Munal OS bermula sebagai projek mainan untuk berlatih pengaturcaraan sistem, dan selama bertahun-tahun berubah menjadi OS penuh dan taman permainan untuk meneroka idea baharu.

Projek ini menunjukkan bahawa alat moden dan seni bina yang dipermudahkan boleh mencipta sistem pengendalian yang berfungsi dengan kerumitan yang jauh lebih sedikit daripada reka bentuk tradisional. Walaupun pelaksanaan semasa mempunyai batasan yang jelas untuk kegunaan pengeluaran, ia menawarkan wawasan berharga tentang pendekatan alternatif kepada pembangunan OS dan potensi peranan WebAssembly dalam perisian sistem.

Rujukan: Munal OS .·.

Diilhamkan oleh alam semula jadi, landskap yang tenang ini melambangkan semangat inovatif di sebalik Munal OS ketika ia meneroka pendekatan baharu dalam reka bentuk sistem pengendalian
Diilhamkan oleh alam semula jadi, landskap yang tenang ini melambangkan semangat inovatif di sebalik Munal OS ketika ia meneroka pendekatan baharu dalam reka bentuk sistem pengendalian