Iyo Kerla chirongwa chiri kugadzira Linux-inoenderana kernel muRust mutauro

Chirongwa cheKerla chiri kugadzira sisitimu yekushandisa kernel yakanyorwa nemutauro weRust. Iyo kernel nyowani inotanga yakanangana nekupa kuenderana neLinux kernel padanho reABI, iyo inobvumidza isina kugadziridzwa mafaira akagadzirirwa kuti Linux imhanye munzvimbo yeKerla-based. Iyo kodhi inogoverwa pasi peApache 2.0 uye MIT rezinesi. Iyo purojekiti iri kuvandudzwa nemugadziri weJapan Seiya Nuta, anozivikanwa nekugadzira iyo microkernel inoshanda sisitimu Resea, yakanyorwa mumutauro weC.

Payazvino nhanho yebudiriro, Kerla inogona kungomhanya pa x86_64 masisitimu uye kushandisa basic system mafoni sekunyora, stat, mmap, pombi uye poll, inotsigira masaini, mapaipi asina kudomwa uye mamiriro ekuchinja. Mafoni akadai seforogo, wait4, uye execve anopihwa kudzora maitiro. Kune rutsigiro rwe tty uye pseudo-terminals (pty). Iwo parizvino anotsigirwa faira masisitimu ari initramfs (anoshandiswa kukwidza iyo midzi faira system), tmpfs uye devfs. Iyo network stack nerutsigiro rweTCP uye UDP zvigadziko inopihwa, inoshandiswa zvichienderana neraibhurari ye smoltcp.

Mugadziri akagadzirira bhutsu nharaunda inomhanya muQEMU kana muFirecracker virtual muchina ine virtio-net mutyairi, kwaunogona kutobatanidza kuburikidza neSSH. musl inoshandiswa seraibhurari yehurongwa, uye BusyBox inoshandiswa sezvishandiso zvevashandisi.

Iyo Kerla chirongwa chiri kugadzira Linux-inoenderana kernel muRust mutauro

Iyo Docker-yakavakirwa kuvaka sisitimu yakagadzirirwa iyo inokutendera iwe kuti ugadzire yako boot initramfs neiyo Kerla kernel. Kuparadzaniswa, iyo nsh software shell yakafanana nehove uye Kazari GUI stack yakavakirwa paWayland protocol iri kuvandudzwa.

Iyo Kerla chirongwa chiri kugadzira Linux-inoenderana kernel muRust mutauro

Kushandisa mutauro weRust mupurojekiti inokubvumira kuderedza nhamba yezvikanganiso mukodhi nekushandisa nzira dzakachengeteka dzekugadzirisa uye kuwedzera kushanda kwekuziva matambudziko paunenge uchishanda nendangariro. Rust inomanikidza kuchengetedza ndangariro panguva yekuunganidza kuburikidza nereferensi yekutarisa, muridzi wechinhu uye chinhu chehupenyu hwese tracking (scopes), uye nekuongorora iko kurongeka kwendangariro kunowanikwa panguva yekumhanya. Uye zvakare, Rust inopa dziviriro kubva pahuwandu hwekufashukira, inoda kuchinjika kukosha kuti itange kushandiswa, inosimbisa pfungwa yezvisingachinjiki mareferensi uye akasiyana nekusarudzika, inopa yakasimba static typing kuderedza zvikanganiso zvine musoro, uye inorerutsa mabatirwo ezvakakosha zvekupinza. ndatenda nekuenzanisa maitiro..

Kune kuvandudzwa kwezvinhu zvakaderera-chikamu, senge OS kernel, Rust inopa tsigiro yezvinyoro zvinongedzo, zvimiro zvekurongedza, assembler inline kuisa, uye kunyudzwa kwemafaira ekuunganidza. Kushanda usina kusungirirwa kuraibhurari yakajairika, kune akaparadzana crate mapakeji ekuita mashandiro ane tambo, mavector uye bit mireza. Imwe bhenefiti ndiyo yakavakirwa-mukati maturusi ekuongorora kodhi yemhando (linter, rust-analyzer) uye kugadzira bvunzo dzeyuniti dzinogona kumhanya kwete chete pane chaiyo hardware, asiwo muQEMU.

Source: opennet.ru

Voeg