Kerla: kernel baru yang ditulis dalam Rust dan kompatibel dengan Linux ABI

Informasi baru-baru ini dirilis tentang proyek Kerla, yang sedang dikembangkan sebagai kernel sistem operasi yang ditulis dalam bahasa Rust. Kode didistribusikan di bawah lisensi Apache 2.0 dan MIT. Proyek ini dikembangkan oleh pengembang Jepang Seiya Nuta, yang dikenal karena menciptakan sistem operasi mikrokernel Resea, yang ditulis dalam bahasa C.

Kernel baru pada awalnya bertujuan memastikan kompatibilitas dengan kernel Linux di tingkat ABI, yang akan memungkinkan binari yang tidak dimodifikasi yang dibuat untuk Linux untuk berjalan di lingkungan berbasis Kerla.

Tentang Kerala

Kerla adalah kernel sistem operasi monolitik dibuat dari awal di Rust. Pada tahap pengembangan saat ini, Kerla hanya dapat dijalankan pada sistem dengan arsitektur x86_64 dan mengimplementasikan panggilan sistem dasar seperti menulis, stat, mmap, pipa, dan polling, mendukung sinyal, pipa tanpa nama, dan sakelar konteks. Panggilan seperti fork, wait4 dan execve disediakan untuk mengontrol proses. Ada dukungan untuk tty dan pseudo-terminal (pty). Di antara sistem file initramfs (digunakan untuk me-mount FS root), tmpfs dan devfs masih didukung.

Tumpukan jaringan dengan dukungan untuk soket TCP dan UDP juga disediakan, berdasarkan perpustakaan smoltcp. Pengembang telah menyiapkan lingkungan boot yang berfungsi di QEMU atau Firecracker VM dengan driver virtio-net, yang sudah dapat Anda hubungkan melalui SSH. Musl digunakan sebagai perpustakaan sistem dan BusyBox digunakan sebagai utilitas pengguna. Berdasarkan Docker, sistem build telah disiapkan yang memungkinkan Anda membuat boot initramfs Anda sendiri dengan kernel Kerla.

Sejauh ini, beberapa detail telah diberikan tentang kernel barunya, tetapi yang paling menarik perhatian dari fitur-fitur Kerla adalah fakta bahwa kernel tersebut ditulis dalam Rust. Jadi, apakah menulisnya di Rust memiliki kelebihan dibandingkan bahasa lain atau kode yang ada? Banyak yang menjawab ya untuk pertanyaan ini, dengan menekankan manfaat keamanan memori yang disediakan bahasa.

Ini juga disediakan ketika mengevaluasi keakuratan akses memori pada waktu berjalan. Apalagi, Mozilla percaya bahwa Rust menawarkan perlindungan terhadap integer overflows, memerlukan inisialisasi wajib nilai variabel sebelum digunakan, mengadopsi konsep referensi dan variabel yang tidak dapat diubah secara default, menawarkan pengetikan statis yang kuat untuk meminimalkan kesalahan logika, dan menyederhanakan pemrosesan input melalui pencocokan pola.

Di antara kelebihannya, kami menyoroti alat terintegrasi untuk mengevaluasi kualitas kode dan membuat pengujian unit yang dapat dijalankan tidak hanya pada perangkat keras nyata, tetapi juga pada QEMU. Pada dasarnya, Mozilla menemukan Rust lebih mudah untuk di-debug karena kompilator akan menolak kesalahan. Namun, teluk-teluk kecil itu menunjukkan beberapa kelemahan dengan Rust.

“Seperti halnya C ++, hampir tidak mungkin untuk menulis Rust idiomatik tanpa menggunakan template, sehingga memiliki binari yang membengkak dan waktu kompilasi yang lambat. Semua pemeriksaan waktu kompilasi ini juga dikenakan biaya. Juga, jika Anda menulis ulang sesuatu, Anda kehilangan basis kode yang lama, dan tidak mungkin Anda dapat menghasilkan basis kode dengan kualitas yang sama dalam waktu yang wajar; jauh lebih baik untuk memperpanjang, daripada menulis ulang, program di Rust. Lebih baik memperpanjang program daripada menulis ulang di Rust, ”kata seorang insinyur perangkat lunak.

Menurut penciptanya, untuk alasan inilah pengembang Linux, khususnya Linus Torvalds sendiri, mereka menolak gagasan untuk menulis ulang seluruh kernel di Rust.

“Lakukan beberapa pekerjaan untuk membuat tautan aman, lalu tulis kode tambahan di Rust dan Anda masih dapat menikmati kode matang itu. (Itulah yang dilakukan Linux, ada upaya untuk menambah kemampuan menulis modul kernel di Rust),” tambahnya. Pengembang Linux telah menjajaki kemungkinan menulis modul kernel baru tertentu menggunakan bahasa Rust selama sekitar tiga tahun. Hal ini memunculkan proyek »Rust for Linux«.

Terakhir, jika Anda tertarik untuk mengetahuinya lebih lanjut, Anda bisa melihat detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.