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

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

Kernel baru bertujuan pada mulanya memastikan keserasian dengan kernel Linux di peringkat ABI, yang akan membolehkan binari yang tidak diubah suai dibina untuk Linux berjalan dalam persekitaran berasaskan Kerla.

Mengenai Keral

Kerla ialah kernel sistem pengendalian monolitik dicipta dari awal di Rust. Pada peringkat pembangunan semasa, Kerla hanya boleh dijalankan pada sistem dengan seni bina x86_64 dan melaksanakan panggilan sistem asas seperti tulis, statistik, mmap, paip dan tinjauan pendapat, menyokong isyarat, paip tanpa nama dan suis konteks. Panggilan seperti fork, wait4 dan execve menyediakan untuk mengawal proses. Terdapat sokongan untuk tty dan pseudo-terminal (pty). Antara sistem fail initramfs (digunakan untuk memasang FS root), tmpfs dan devfs masih disokong.

Timbunan rangkaian dengan sokongan untuk soket TCP dan UDP juga disediakan, Berdasarkan perpustakaan smoltcp. Pembangun telah menyediakan persekitaran but yang berfungsi dalam QEMU atau Firecracker VM dengan pemacu virtio-net, yang mana anda sudah boleh menyambungkannya melalui SSH. Musl digunakan sebagai perpustakaan sistem dan BusyBox digunakan sebagai utiliti pengguna. Berdasarkan Docker, sistem binaan telah disediakan yang membolehkan anda mencipta but initramfs anda sendiri dengan 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 capaian memori pada masa larian. Apa lagi, Mozilla percaya bahawa Rust menawarkan perlindungan terhadap limpahan integer, memerlukan permulaan mandatori nilai pembolehubah sebelum digunakan, mengguna 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 menyerlahkan alatan bersepadu untuk menilai kualiti kod dan mencipta ujian unit yang boleh dijalankan bukan sahaja pada perkakasan sebenar, tetapi juga pada QEMU. Pada asasnya, Mozilla mendapati Rust lebih mudah untuk nyahpepijat kerana pengkompil akan menolak ralat. Walau bagaimanapun, teluk menunjukkan beberapa kelemahan dengan 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, atas sebab inilah pembangun Linux, khususnya Linus Torvalds sendiri, mereka menolak idea untuk 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«.

Akhirnya, jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh melihat butirannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.