Iphrojekthi ye-Kerla ithuthukisa i-kernel ehambisana ne-Linux ngolimi lwe-Rust

Iphrojekthi ye-Kerla ithuthukisa i-kernel yesistimu yokusebenza ebhalwe ngolimi lwe-Rust. I-kernel entsha ekuqaleni igxile ekuhlinzekeni ukuhambisana ne-Linux kernel ezingeni le-ABI, okuzovumela amafayela asebenzisekayo angalungiswanga ahlanganiswe ukuze i-Linux isebenze endaweni esekelwe ku-Kerla. Ikhodi isatshalaliswa ngaphansi kwamalayisensi e-Apache 2.0 kanye ne-MIT. Le phrojekthi ithuthukiswa unjiniyela wase-Japan u-Seiya Nuta, owaziwa ngokudala isistimu yokusebenza ye-microkernel Resea, ebhalwe ngolimi lwe-C.

Esigabeni sayo samanje sokuthuthuka, i-Kerla ingasebenzisa kuphela amasistimu e-x86_64 futhi isebenzise izingcingo zesistimu eziyisisekelo ezifana nokubhala, izibalo, i-mmap, ipayipi ne-poll, isekela amasignali, amapayipi angashiwongo kanye nokushintsha kokuqukethwe. Izingcingo ezifana nefork, wait4, kanye ne-execve zinikezwa ukulawula izinqubo. Kukhona ukusekelwa kwe-tty kanye ne-pseudo-terminals (pty). Amasistimu wefayela asekelwayo njengamanje ama-initramfs (asetshenziselwa ukukhweza isistimu yefayela lezimpande), ama-tmpfs nama-devfs. Isitaki senethiwekhi esisekelwa amasokhethi e-TCP kanye ne-UDP siyanikezwa, sisetshenziswa ngokusekelwe kulabhulali ye-smoltcp.

Umthuthukisi ulungise indawo yokuqalisa esebenza ku-QEMU noma emshinini we-Firecracker onomshayeli we-virtio-net, osuvele uxhumeke kuwo nge-SSH. i-musl isetshenziswa njengomtapo wolwazi wesistimu, futhi i-BusyBox isetshenziswa njengezinsiza zabasebenzisi.

Iphrojekthi ye-Kerla ithuthukisa i-kernel ehambisana ne-Linux ngolimi lwe-Rust

Uhlelo lokwakha olususelwa ku-Docker selulungisiwe olukuvumela ukuthi uzenzele eyakho i-boot initramfs nge-Kerla kernel. Ngokwehlukana, igobolondo lesofthiwe ye-nsh efana nenhlanzi kanye nesitaki se-Kazari GUI esisekelwe kumthethonqubo we-Wayland siyathuthukiswa.

Iphrojekthi ye-Kerla ithuthukisa i-kernel ehambisana ne-Linux ngolimi lwe-Rust

Ukusebenzisa ulimi lwe-Rust kuphrojekthi kukuvumela ukuthi unciphise inani lamaphutha kukhodi ngokusebenzisa amasu okuhlela aphephile futhi ukhulise ukusebenza kahle kokuhlonza izinkinga lapho usebenza ngenkumbulo. Ukugqwala kuphoqelela ukuphepha kwenkumbulo ngesikhathi sokuhlanganisa ngokuhlolwa kwereferensi, ubunikazi bento kanye nokulandelela impilo yonke yento (izikophu), kanye nokuhlola ukulunga kokufinyelela kwenkumbulo ngesikhathi sokusebenza. Ngaphezu kwalokho, i-Rust inikeza isivikelo ekuchichimeni okuphelele, idinga amanani aguquguqukayo ukuthi aqaliswe ngaphambi kokusetshenziswa, iphoqelela umqondo wezithenjwa ezingaguquki nokuguquguqukayo ngokuzenzakalelayo, inikeza ukuthayipha okuqinile okuqinile ukuze kuncishiswe amaphutha anengqondo, futhi yenza kube lula ukuphatha amanani okufakwayo ngiyabonga ngokufaniswa kwephethini..

Ukuze kuthuthukiswe izingxenye ezisezingeni eliphansi, njenge-OS kernel, i-Rust inikeza ukusekelwa kwezikhombi ezingavuthiwe, ukupakishwa kwesakhiwo, ukufakwa kwe-assembler inline, kanye nokushumeka kwamafayela okuhlanganisa. Ukuze usebenze ngaphandle kokuboshelwa kulabhulali ejwayelekile, kunamaphakheji ekhreyithi ahlukene okwenza imisebenzi enezintambo, ama-vector nama-bit flag. Enye inzuzo ngamathuluzi akhelwe ngaphakathi okuhlola ikhwalithi yekhodi (i-linter, i-rust-analyzer) nokudala ukuhlolwa kweyunithi okungase kwenziwe hhayi kuphela ku-hardware yangempela, kodwa naku-QEMU.

Source: opennet.ru

Engeza amazwana