Sebuah sistem operasi eksperimental baru bernama Munal OS telah muncul, menampilkan pendekatan yang tidak konvensional dalam desain OS yang menghilangkan banyak komponen kernel tradisional sambil menggunakan WebAssembly ( WASM ) untuk sandboxing aplikasi. Proyek ini, yang ditulis sepenuhnya dalam Rust , dikompilasi menjadi satu binary EFI dan menjalankan aplikasi melalui engine WASM tertanam daripada proses native.
Persyaratan Sistem
- Rust Nightly 2025-06-01
- QEMU 10.0.0
- Dukungan target RISC-V 64-bit
- Kepatuhan terhadap spesifikasi VirtIO 1.1
![]() |
---|
Screenshot ini mengilustrasikan repositori GitHub untuk Munal OS, menampilkan kode sumber dan organisasi proyeknya |
Perubahan Radikal dari Desain OS Tradisional
Munal OS dengan sengaja menghilangkan beberapa fitur dasar yang ditemukan dalam sistem operasi konvensional. Sistem ini beroperasi tanpa bootloader, page mapping, virtual address space, atau CPU interrupt. Sebaliknya, sistem ini berjalan sebagai satu binary EFI yang keluar dari layanan boot UEFI hampir secara langsung dan mengandalkan identity-mapped memory sepanjang eksekusinya.
Sistem operasi ini menggunakan satu event loop global yang menangani semua operasi sistem secara berurutan. Setiap iterasi melakukan polling pada driver jaringan dan input, menggambar antarmuka desktop, mengeksekusi satu langkah dari setiap aplikasi WASM yang aktif, dan mem-flush framebuffer GPU . Pendekatan cooperative scheduling ini berarti aplikasi harus secara eksplisit menyerahkan kontrol daripada dipindahkan secara preemptive oleh kernel.
Perbedaan Arsitektur Utama
OS Tradisional | Munal OS |
---|---|
Memerlukan bootloader | Binary EFI tunggal |
Memori virtual | Memori yang dipetakan secara identik |
Berbasis interrupt | Driver berbasis polling |
Penjadwalan preemptive | Penjadwalan kooperatif |
Proses native | Aplikasi WASM |
Dukungan multi-core | Event loop tunggal |
Engine WASM Menyediakan Isolasi Aplikasi
Daripada menggunakan virtual memory untuk isolasi proses, Munal OS menyematkan engine WASM Wasmi untuk menjalankan aplikasi yang di-sandbox. Semua program pengguna dikompilasi ke WebAssembly dan berkomunikasi dengan kernel melalui API system call khusus. Pendekatan ini menyediakan pemisahan memori dan keamanan tanpa memerlukan virtual address space atau manajemen proses tradisional.
Arsitektur berbasis WASM telah menarik perhatian dari tim pengembangan Wasmi , yang mencatat bahwa versi terbaru dari engine mereka mencakup kemampuan fuel metering yang ditingkatkan yang dapat meningkatkan model cooperative scheduling. Fuel metering bertindak seperti counter yang dapat disesuaikan yang berkurang dengan setiap instruksi, memungkinkan sistem host untuk menyerahkan kontrol ketika counter mencapai nol.
Kekhawatiran Performa dan Skalabilitas
Diskusi komunitas telah menyoroti keterbatasan performa potensial dengan arsitektur saat ini. Event loop single-threaded berarti bahwa menambahkan lebih banyak aplikasi secara langsung berdampak pada performa semua program yang berjalan. Dengan cooperative scheduling, setiap aplikasi mendapat waktu CPU selama setiap iterasi loop, sehingga tiga puluh aplikasi yang terbuka secara teoritis dapat memperlambat masing-masing aplikasi dengan faktor tiga puluh.
Sistem driver berbasis polling juga menimbulkan pertanyaan tentang performa dan efisiensi jaringan. Semua komunikasi perangkat keras terjadi melalui driver VirtIO yang terus-menerus melakukan polling untuk pembaruan daripada merespons interrupt. Pilihan desain ini menyederhanakan basis kode tetapi dapat membatasi throughput untuk aplikasi yang intensif jaringan.
Model Keamanan Menghadapi Tantangan Modern
Meskipun sandboxing WASM menyediakan isolasi antara aplikasi, para ahli keamanan telah mencatat bahwa kerentanan CPU modern seperti Spectre dan Meltdown berpotensi dapat mengkompromikan model keamanan. Kurangnya perlindungan virtual memory dan shared address space mungkin membuat sistem lebih rentan terhadap serangan side-channel yang mengeksploitasi speculative execution.
Sistem saat ini hanya mendukung berjalan di mesin virtual QEMU melalui driver VirtIO , yang membatasi pengujian keamanan dunia nyata. Dukungan untuk perangkat keras aktual akan memerlukan implementasi driver tradisional untuk USB , GPU , dan komponen lainnya.
Aplikasi yang Disertakan
- Browser web (DNS, HTTPS, dukungan HTML dasar)
- Editor teks
- Terminal Python (melalui RustPython)
- Tampilan audit sistem untuk pemantauan sumber daya
- Demo kubus 3D
- Sistem menu pie radial
Implementasi Teknis dan Pengembangan Masa Depan
Munal OS mencakup set fitur yang mengejutkan lengkap meskipun sifatnya eksperimental. Sistem ini menyediakan toolkit UI khusus, browser web dasar yang mendukung DNS dan HTTPS , editor teks, dan bahkan terminal Python . Semua aplikasi berbagi gaya visual yang konsisten melalui sistem stylesheet global.
Munal OS dimulai sebagai proyek mainan untuk berlatih pemrograman sistem, dan selama bertahun-tahun berubah menjadi OS penuh dan tempat bermain untuk mengeksplorasi ide-ide baru.
Proyek ini menunjukkan bahwa alat modern dan arsitektur yang disederhanakan dapat menciptakan sistem operasi fungsional dengan kompleksitas yang jauh lebih sedikit daripada desain tradisional. Meskipun implementasi saat ini memiliki keterbatasan yang jelas untuk penggunaan produksi, proyek ini menawarkan wawasan berharga tentang pendekatan alternatif untuk pengembangan OS dan peran potensial WebAssembly dalam perangkat lunak sistem.
Referensi: Munal OS .·.
![]() |
---|
Terinspirasi oleh alam, lanskap yang tenang ini melambangkan semangat inovatif di balik Munal OS saat mengeksplorasi pendekatan baru dalam desain sistem operasi |