Kerla: kernel baharu yang ditulis dalam Rust dan serasi dengan Linux ABI

Maklumat tentang projek Kerla telah dikeluarkan baru-baru ini. Kerla sedang dibangunkan sebagai kernel sistem pengendalian yang ditulis dalam Rust. Kod ini diedarkan di bawah lesen Apache 2.0 dan MIT. Projek ini sedang dibangunkan oleh pembangun Jepun, Seiya Nuta, yang dikenali kerana mencipta sistem pengendalian mikrokernel Resea, yang ditulis dalam C.

Kernel baharu pada mulanya bertujuan untuk memastikan keserasian dengan kernel Linux pada peringkat ABI, membolehkan binari yang tidak diubah suai yang dicipta untuk Linux dijalankan dalam persekitaran berasaskan Kerla.

Mengenai Keral

Kerla ialah kernel sistem pengendalian monolitik yang dibina dari awal dalam Rust. Pada peringkat pembangunannya sekarang, Kerla hanya boleh dijalankan pada sistem x86_64 dan melaksanakan panggilan sistem asas seperti write, stat, mmap, pipe dan poll. Ia menyokong isyarat, pipe tanpa nama dan suis konteks. Panggilan seperti fork, wait4 dan execve digunakan untuk mengawal proses. Terdapat sokongan untuk tty dan pseudo-terminal (pty). Sistem fail initramfs (digunakan untuk memasang sistem fail root), tmpfs dan devfs masih disokong.

Satu susunan rangkaian dengan sokongan untuk soket TCP dan UDP, berdasarkan pustaka smoltcp, juga disediakan. Pembangun telah menyediakan persekitaran but yang berfungsi dalam QEMU atau Firecracker VM menggunakan pemacu virtio-net, yang boleh anda sambungkan melalui SSH . Musl digunakan sebagai pustaka sistem dan BusyBox sebagai utiliti pengguna . Sistem binaan berasaskan Docker telah disediakan yang membolehkan anda mencipta initramfs but anda sendiri menggunakan kernel Kerla.

Setakat ini, beberapa butiran telah diberikan tentang kernel baharunya, tetapi perkara yang paling menarik perhatian kepada ciri Kerla ialah hakikat bahawa ia ditulis dalam Rust. Jadi adakah menulisnya dalam Rust mempunyai kelebihan berbanding bahasa lain atau kod sedia ada? Ramai menjawab ya kepada soalan ini, menekankan faedah keselamatan memori yang disediakan oleh bahasa.

Ia juga disediakan semasa menilai ketepatan akses memori semasa masa jalan. Tambahan pula , Mozilla percaya bahawa Rust menawarkan perlindungan terhadap limpahan integer , memerlukan permulaan mandatori nilai pembolehubah sebelum digunakan, menerima pakai konsep rujukan dan pembolehubah tidak berubah secara lalai, menawarkan penaipan statik yang kuat untuk meminimumkan ralat logik dan memudahkan pemprosesan input melalui pemadanan corak.

Antara kelebihannya, kami mengetengahkan alat bersepadu untuk menilai kualiti kod dan mencipta ujian unit yang boleh dijalankan bukan sahaja pada perkakasan sebenar tetapi juga dalam QEMU. Pada asasnya, Mozilla menganggap Rust lebih mudah untuk dinyahpepijat, kerana pengkompil akan menolak ralat. Walau bagaimanapun, ujian tersebut menunjukkan beberapa kelemahan Rust.

“Seperti C ++, hampir mustahil untuk menulis Rust idiomatik tanpa menggunakan templat, jadi ia mempunyai perduaan kembung dan masa penyusunan yang perlahan. Semua semakan masa penyusunan ini juga dikenakan kos. Selain itu, jika anda menulis semula sesuatu, anda kehilangan pangkalan kod matang lama, dan tidak ada cara anda boleh menghasilkan pangkalan kod kualiti yang serupa dalam masa yang munasabah; adalah lebih baik untuk melanjutkan, daripada menulis semula, program dalam Rust. Adalah lebih baik untuk melanjutkan program daripada menulis semula dalam Rust, "kata seorang jurutera perisian.

Menurut penciptanya, inilah sebabnya pembangun Linux, terutamanya Linus Torvalds sendiri, menolak idea menulis semula keseluruhan kernel dalam Rust.

“Lakukan kerja untuk membuat pautan selamat, kemudian tulis kod tambahan dalam Rust dan anda masih boleh menikmati kod matang itu. (Itu yang Linux lakukan, ada usaha untuk menambah keupayaan untuk menulis modul kernel dalam Rust), ”tambahnya. Pembangun Linux telah meneroka kemungkinan menulis modul kernel baharu tertentu menggunakan bahasa Rust selama kira-kira tiga tahun. Ini menimbulkan projek »Rust for Linux«.

Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut, anda boleh mendapatkan butiran lanjut di pautan berikut.


Tambahkan sebagai sumber pilihan dalam Google