Il-proġett Kerla qed jiżviluppa għadma kompatibbli mal-Linux fil-lingwa Rust

Il-proġett Kerla qed jiżviluppa kernel tas-sistema operattiva miktuba bil-lingwa Rust. Il-qalba l-ġdida hija inizjalment iffukata fuq li tipprovdi kompatibilità mal-qalba tal-Linux fil-livell ABI, li se tippermetti fajls eżekutibbli mhux modifikati kkompilati għal Linux biex jaħdmu f'ambjent ibbażat fuq Kerla. Il-kodiċi huwa mqassam taħt il-liċenzji Apache 2.0 u MIT. Il-proġett qed jiġi żviluppat mill-iżviluppatur Ġappuniż Seiya Nuta, magħruf għall-ħolqien tas-sistema operattiva microkernel Resea, miktuba bil-lingwa Ċ.

Fl-istadju attwali tiegħu ta 'żvilupp, Kerla jista' jaħdem biss fuq sistemi x86_64 u jimplimenta sejħiet ta 'sistema bażiċi bħal write, stat, mmap, pipe u poll, jappoġġja sinjali, pajpijiet mingħajr isem u swiċċijiet tal-kuntest. Sejħiet bħal furketta, wait4, u execve huma pprovduti biex jikkontrollaw il-proċessi. Hemm appoġġ għal tty u pseudo-terminals (pty). Is-sistemi tal-fajls appoġġjati bħalissa huma initramfs (użati biex jintramaw is-sistema tal-fajls tal-għeruq), tmpfs u devfs. Munzell tan-netwerk b'appoġġ għal sokits TCP u UDP huwa pprovdut, implimentat ibbażat fuq il-librerija smoltcp.

L-iżviluppatur ħejja ambjent tal-but li jaħdem f'QEMU jew fil-magna virtwali Firecracker bis-sewwieq virtio-net, li għalih diġà tista 'tqabbad permezz ta' SSH. musl jintuża bħala librerija tas-sistema, u BusyBox jintuża bħala utilitajiet tal-utent.

Il-proġett Kerla qed jiżviluppa għadma kompatibbli mal-Linux fil-lingwa Rust

Ġiet ippreparata sistema tal-bini bbażata fuq Docker li tippermettilek toħloq initramfs tal-boot tiegħek stess bil-kernel Kerla. Separatament, qed jiġu żviluppati l-qoxra tas-softwer nsh simili għall-ħut u l-munzell Kazari GUI ibbażat fuq il-protokoll Wayland.

Il-proġett Kerla qed jiżviluppa għadma kompatibbli mal-Linux fil-lingwa Rust

L-użu tal-lingwa Rust fi proġett jippermettilek tnaqqas in-numru ta 'żbalji fil-kodiċi billi tuża tekniki ta' programmar sikuri u żżid l-effiċjenza ta 'identifikazzjoni ta' problemi meta taħdem bil-memorja. Is-sadid jinforza s-sigurtà tal-memorja fil-ħin tal-kompilazzjoni permezz ta 'verifika ta' referenza, sjieda ta 'oġġett u traċċar tal-ħajja tal-oġġett (ambiti), u billi tevalwa l-korrettezza tal-aċċessi għall-memorja waqt ir-runtime. Barra minn hekk, Rust jipprovdi protezzjoni kontra overflows ta’ numru sħiħ, jeħtieġ li l-valuri varjabbli jiġu inizjalizzati qabel l-użu, jinforza l-kunċett ta’ referenzi u varjabbli immutabbli b’mod awtomatiku, joffri tajpjar statiku qawwi biex jimminimizza l-iżbalji loġiċi, u jissimplifika l-immaniġġjar tal-valuri tal-input grazzi għat-tqabbil tal-mudell. .

Għall-iżvilupp ta 'komponenti ta' livell baxx, bħall-qalba tal-OS, Rust jipprovdi appoġġ għal indikaturi mhux maħduma, ippakkjar tal-istruttura, inserzjonijiet inline tal-assemblatur, u inkorporazzjoni ta 'fajls tal-assemblatur. Biex taħdem mingħajr ma tkun marbuta mal-librerija standard, hemm pakketti ta 'ċestuni separati għat-twettiq ta' operazzjonijiet bi spag, vectors u bnadar bit. Vantaġġ ieħor huwa l-għodod integrati għall-valutazzjoni tal-kwalità tal-kodiċi (linter, rust-analyzer) u l-ħolqien ta 'testijiet ta' unità li jistgħu jitmexxew mhux biss fuq hardware reali, iżda wkoll f'QEMU.

Sors: opennet.ru

Żid kumment