Inpormasi ngeunaan proyék Kerla dileupaskeun nembe, anu dikembangkeun salaku kernel sistem operasi anu ditulis dina basa Rust. Kodeu disebarkeun dina lisensi Apache 2.0 sareng MIT. Proyék ieu dikembangkeun ku pamekar Jepang Seiya Nuta, dipikawanoh pikeun nyieun sistem operasi microkernel Resea, ditulis dina basa C.
Kernel anyar tujuanana mimitina mastikeun kasaluyuan sareng kernel Linux dina tingkat ABI, nu bakal ngidinan binari unmodified diwangun pikeun Linux Ubuntu ngajalankeun di lingkungan basis Kerla.
Ngeunaan Keral
Kerla mangrupikeun kernel sistem operasi monolitik dijieun ti scratch di Rust. Dina tahap pangwangunan ayeuna, Kerla ngan bisa dijalankeun dina sistem kalawan arsitektur x86_64 sareng ngalaksanakeun sauran sistem dasar sapertos nyerat, stat, mmap, pipa, sareng polling, ngadukung sinyal, pipa anu teu namina, sareng saklar konteks. Telepon sapertos garpu, wait4 sareng execve nyayogikeun pikeun ngontrol prosés. Aya dukungan pikeun tty sareng pseudo-terminal (pty). Diantara sistem file initramfs (dipaké pikeun masang root FS), tmpfs sareng devfs masih dirojong.
Tumpukan jaringan kalayan dukungan pikeun soket TCP sareng UDP ogé disayogikeun, dumasar kana perpustakaan smoltcp. Pamekar parantos nyiapkeun lingkungan boot anu tiasa dianggo dina QEMU atanapi Firecracker VM sareng controller virtio-net, anu anjeun parantos tiasa nyambungkeun via SSH. Musl dianggo salaku perpustakaan sistem sareng BusyBox dianggo salaku utilitas pangguna. Dumasar Docker, sistem ngawangun parantos disiapkeun anu ngamungkinkeun anjeun nyiptakeun boot initramfs anjeun nyalira nganggo kernel Kerla.
Sajauh ieu, sababaraha detil parantos disayogikeun ngeunaan kernel énggalna, tapi anu paling narik perhatian kana fitur Kerla nyaéta kanyataan yén éta ditulis dina Rust. Janten, naha nyeratna dina Rust gaduh kaunggulan tina basa sanés atanapi langkung kode anu aya? Loba ngajawab enya kana patarosan ieu, emphasizing mangpaat kaamanan memori nu basa nyadiakeun.
Éta ogé disayogikeun nalika ngevaluasi katepatan aksés memori dina waktos jalan. Naon deui, Mozilla yakin yén Rust nawarkeun panyalindungan ngalawan overflows integer, merlukeun initialization wajib nilai variabel saméméh pamakéan, adopts konsép rujukan jeung variabel immutable sacara standar, nawarkeun ketikan statik kuat pikeun ngaleutikan kasalahan logis, sarta simplifies ngolah input ngaliwatan cocog pola.
Diantara kaunggulan, urang nyorot parabot terpadu pikeun evaluate kualitas kode sarta nyieun tés Unit nu bisa ngajalankeun teu ukur dina hardware nyata, tapi ogé dina QEMU. Dasarna, Mozilla mendakan Rust langkung gampang di-debug, sabab kompiler bakal nampik kasalahan. Sanajan kitu, coves nunjuk ka sababaraha drawbacks kalawan Rust.
"Sapertos C ++, ampir teu mungkin nyerat Rust idiomatik tanpa nganggo témplat, janten éta gaduh binér kembung sareng waktos kompilasi lambat. Sadaya cék waktos kompilasi ieu ogé ngagaduhan biaya. Ogé, lamun nulis balik hiji hal, anjeun leungit codebase dewasa heubeul, sarta teu aya deui jalan anjeun bisa ngahasilkeun codebase kualitas sarupa dina jumlah waktu nu lumrah; eta leuwih hade ngalegaan, tinimbang nulis balik, program dina Rust. Éta langkung saé pikeun manjangkeun program tinimbang nyerat deui dina Rust, ”saur insinyur perangkat lunak.
Numutkeun panyiptana, alesan ieu para pamekar Linux, hususna Linus Torvalds dirina, aranjeunna nampik ide nulis ulang sakabéh kernel dina Rust.
"Lakukeun sababaraha padamelan pikeun nyiptakeun tautan anu aman, teras tuliskeun kodeu tambahan dina Rust sareng anjeun masih tiasa ngaraosan kode dewasa éta. (Éta anu dilakukeun ku Linux, aya usaha pikeun nambihan kamampuan nyerat modul kernel dina Rust), ”tambah anjeunna. Pamekar Linux parantos ngajalajah kamungkinan nyerat modul kernel énggal anu tangtu nganggo basa Rust salami tilu taun. Ieu nimbulkeun proyék "Rust for Linux".
Akhirna, upami anjeun resep terang langkung seueur perkawis éta, anjeun tiasa konsultasi detil na Dina tautan ieu.
Janten kahiji komen