Proyek Asterinas telah merilis versi 0.19, sebuah kernel yang ditulis dalam Rust dan dirancang untuk digunakan dalam sistem operasi tujuan umum. Kernel ini menyediakan ABI (Application Binary Interface) yang kompatibel dengan kernel. Linux dan dapat digunakan sebagai pengganti. Distribusi Asterinas NixOS, yang menggabungkan kernel Asterinas dengan lingkungan sistem NixOS, sedang dikembangkan secara paralel. Kode proyek telah dikembangkan sejak tahun 2022 dan didistribusikan di bawah MPL (Mozilla Public License).
Saat ini, terdapat lebih dari 240 panggilan sistem yang diimplementasikan di dalam kernel. LinuxDistribusi Asterinas NixOS telah diverifikasi untuk berjalan di atas kernel Asterinas dengan lebih dari 100 paket NixOS. Paket yang didukung meliputi: Xfce, Firefox, bash, systemd, Podman, QEMU, rsync, Apache httpd, nginx, SQLite, Redis, Clang, GCC, Go, Lua, Node.js, OpenJDK, Perl, PHP, Python, Ruby, Rust, Git, FFmpeg, PyTorch, TensorFlow, Ollama, dan Codex.
Kernel ini menyediakan dukungan penuh untuk arsitektur x86-64, dukungan parsial untuk ARM64, RISC-V 64, dan x86-64 dengan isolasi berbasis Intel TDX, serta dukungan awal untuk arsitektur LoongArch 64. Area aplikasi prioritas meliputi sistem berbasis Linux ABI, tetapi membutuhkan tingkat keamanan yang lebih tinggi. Misalnya, Asterinas diusulkan untuk digunakan dalam menciptakan lingkungan sistem yang aman. mesin virtual, untuk isolasi tersebut digunakan teknologi seperti ARM CCA, AMD SEV, dan Intel TDX, serta di sisi sistem host, yang memastikan peluncuran kontainer.
Untuk mengurangi kemungkinan kesalahan memori, sumber utama kerentanan paling berbahaya, Asterinas menggunakan bahasa Rust dan penggunaan blok tidak aman yang terbatas. Kernel dibangun menggunakan arsitektur framekernel, yang berupaya menggabungkan kemampuan isolasi mikrokernel dengan efisiensi kernel monolitik.
Komponen kernel di Asterinas terletak dalam ruang alamat bersama, dan keamanan dicapai melalui pemisahan logis antara kode aman dan kode yang berpotensi rentan. Kernel dibagi menjadi dua bagian, keduanya ditulis dalam Rust: Kerangka Kerja Sistem Operasi (OS Framework) dan Layanan Sistem Operasi (OS Services). Layanan Sistem Operasi melarang penggunaan blok yang tidak aman, dan semua operasi tingkat rendah yang memerlukan eksekusi kode dalam blok yang tidak aman dipindahkan ke Kerangka Kerja Sistem Operasi dan hanya dapat diakses melalui API tingkat tinggi. Semua panggilan sistem, sistem file, dan driver diimplementasikan pada tingkat Layanan Sistem Operasi dan tidak dapat menyertakan blok yang tidak aman.
Untuk mengembangkan layanan sistem dan modul kernel, disediakan OSDK (Operating System Development Kit), yang menyediakan utilitas cargo-osdk untuk membuat, membangun, menguji, dan menjalankan komponen sistem operasi. Pengembang juga dapat mengakses kumpulan OSTD (Operating System Standard Library), yang mencakup edisi pustaka standar Rust (crate std) yang diadaptasi untuk digunakan dalam komponen sistem operasi.
Di antara perubahan pada Asterinas 0.19:
- Subsistem DRM (Direct Rendering Manager), perangkat /dev/dri, antarmuka KMS (kernel mode setting), dan driver "modesetting" telah diimplementasikan, memungkinkan peluncuran tumpukan grafis standar berdasarkan X.Org Server dan Mesa, sebagai pengganti driver fbdev yang sebelumnya digunakan, yang menggunakan framebuffer.
- Dukungan untuk arsitektur AArch64 (ARM64) telah ditambahkan, dan kini berfungsi sebagai arsitektur pengembangan utama bersama dengan x86-64. Tingkat dukungan kedua telah diimplementasikan untuk AArch64, memastikan fungsionalitas dasar, pengujian integrasi berkelanjutan, dan cakupan pengujian parsial.
- Pekerjaan terus berlanjut untuk mengadaptasi Asterinas agar dapat berjalan sebagai sistem tamu di Kata Containers dan Confidential Containers. Implementasi Overlayfs baru diusulkan yang berhasil melewati rangkaian pengujian sistem file kernel standar. Linux dan xfstests. API pemasangan baru telah diimplementasikan. Kode virtio-fs telah distabilkan. Dukungan protokol telah ditambahkan.
Boot langsung, digunakan di QEMU, Cloud Hypervisor, dan Firecracker. Waktu booting telah dipercepat. mesin virtual, yang memorinya dienkripsi menggunakan teknologi Intel TDX. - Kerangka kerja OSTD (Operating System Standard Library) mengimplementasikan API dasar untuk membuat hypervisor minimalis berdasarkan Intel VMX.
- Menambahkan dukungan untuk model pengembangan driver Rust. Komponen aster-device dengan fungsionalitas yang menyerupai komponen kernel telah ditambahkan. Linux dengan primitif dan abstraksi dasar untuk pengembangan driver, tetapi ditulis dalam Rust tanpa kode yang tidak aman.
- Sekarang dimungkinkan untuk melakukan self-hosting - Anda sekarang dapat membangun kernel Asterinas dari lingkungan yang sudah memiliki paket kernel Asterinas dan NixOS.
Sumber: opennet.ru
