Iprojekthi yeKerla iphuhlisa ikernel ehambelana neLinux kwiRust

Iprojekthi ye-Kerla iphuhlisa inkqubo ye-kernel ebhalwe kwi-Rust. I-kernel entsha ijoliswe ekuqaleni ukubonelela ngokuhambelana ne-Linux kernel kwinqanaba le-ABI, eliya kuvumela iibhinari ezingalungiswanga ezakhelwe i-Linux ukuba ziqhube kwindawo esekwe kwi-Kerla. Ikhowudi ihanjiswa phantsi kwe-Apache 2.0 kunye neelayisensi ze-MIT. Le projekthi iphuhliswa ngumphuhlisi waseJapan uSeiya Nuta, owaziwa ngokudala inkqubo yeResea microkernel ebhalwe kwiC.

Kwinqanaba langoku lophuhliso, i-Kerla inokuqhuba kuphela kwiinkqubo ze-x86_64 kwaye iphumeze iifowuni ezisisiseko ezifana nokubhala, i-stat, i-mmap, ipayipi, kunye ne-poll, isekela imiqondiso, imibhobho engachazwanga ngamagama, kunye nokutshintsha umxholo. Kulawulo lwenkqubo, iifowuni ezifana nefolokhwe, wait4, kunye ne-execve zinikezelwe. Kukho inkxaso ye-tty kunye ne-pseudo-terminals (pty). Kwindlela yeefayile, iiinitramfs (esetyenziselwa ukunyusa ingcambu yeFS), iitmpfs kunye nedevfs zisaxhaswa. Isitaki sothungelwano sinikezelwa ngenkxaso yeesokethi ze-TCP kunye ne-UDP, eziphunyezwe ngesiseko sethala leencwadi le-smoltcp.

Umphuhlisi ulungiselele indawo esebenzayo esebenzayo kwi-QEMU okanye kwi-Firecracker umatshini wenyani kunye nomqhubi we-virtio-net, onokuthi udibanise kuyo nge-SSH. I-Musl isetyenziswa njengethala leencwadi lenkqubo, kwaye iBusyBox isetyenziswa njengezinto eziluncedo zabasebenzisi.

Iprojekthi yeKerla iphuhlisa ikernel ehambelana neLinux kwiRust

Ngokusekwe kwi-Docker, inkqubo yokwakha sele ilungisiwe ekuvumela ukuba wenze eyakho i-initramfs ye-boot ngondoqo we-Kerla. Iqokobhe le-nsh efana nentlanzi kunye ne-Kazari GUI stack esekelwe kwi-protocol ye-Wayland ziphuhliswa ngokwahlukeneyo.

Iprojekthi yeKerla iphuhlisa ikernel ehambelana neLinux kwiRust

Ukusebenzisa ulwimi lweRust kwiprojekthi kunciphisa inani leempazamo kwikhowudi ngokusebenzisa iindlela ezikhuselekileyo zekhowudi kunye nokuphucula ukusebenza kakuhle kokuchonga iingxaki xa usebenza ngememori. Ukuphathwa okukhuselekileyo kwimemori kubonelelwa kwiRust ngexesha lokuqokelela ngokujonga ireferensi, ukugcina umkhondo wobunini bento kunye nobomi bento (ububanzi), kunye nokuvavanya ukuchaneka kofikelelo lwememori ngexesha lokwenziwa kwekhowudi. Ukongeza, iRust ibonelela ngokhuseleko ngokuchasene nokuphuphuma kwenani elipheleleyo, ifuna ukuqaliswa okunyanzelekileyo kwamaxabiso aguquguqukayo phambi kokusetyenziswa, isebenzisa ingqikelelo yezalathisi ezingaguqukiyo (ezingenakuguquguquka) kunye neziguquguqukayo ngokungagqibekanga, ibonelela ngochwethezo olomeleleyo ukuze kuncitshiswe iimpazamo ezisengqiqweni, yenza lula ukusetyenzwa kwexabiso legalelo izixhobo zokulinganisa iipatheni..

Kuphuhliso lwamacandelo asezantsi, anje nge-OS kernel, iRust ibonelela ngenkxaso yezalathisi ezikrwada, ukupakishwa kwesakhiwo, iassembler inline inserts, kunye ne-assembler file inlining. Ukusebenza ngaphandle kokubotshelelwa kwithala leencwadi elisemgangathweni, kukho iipakethe zeekhreyithi ezahlukeneyo zokwenza imisebenzi kwimitya, iivektha, kunye neeflegi ezincinci. Phakathi kweenzuzo, kukho izixhobo ezakhelwe ngaphakathi zokuvavanya umgangatho wekhowudi (i-linter, i-rust-analyzer) kunye nokudala iimvavanyo zeyunithi ezinokuthi ziqhutywe kuphela kwi-hardware yangempela, kodwa nakwi-QEMU.

umthombo: opennet.ru

Yongeza izimvo