It-tieni edizzjoni tal-garża għall-qalba tal-Linux b'appoġġ għall-lingwa Rust

Miguel Ojeda, awtur tal-proġett Rust-for-Linux, ippropona verżjoni aġġornata ta 'komponenti għall-iżvilupp ta' sewwieqa ta 'tagħmir fil-lingwa Rust għal konsiderazzjoni mill-iżviluppaturi tal-kernel Linux. L-appoġġ tas-sadid huwa meqjus bħala sperimentali, iżda diġà ġie miftiehem għall-inklużjoni fil-fergħa linux-next. Il-verżjoni l-ġdida telimina l-kummenti li saru waqt id-diskussjoni tal-ewwel verżjoni tal-garża. Linus Torvalds diġà ngħaqad mad-diskussjoni u ppropona li tinbidel il-loġika għall-ipproċessar ta 'xi operazzjonijiet tal-bit.

Ifakkar li l-bidliet proposti jagħmluha possibbli li jintuża Rust bħala t-tieni lingwa għall-iżvilupp ta 'sewwieqa u moduli tal-kernel. L-appoġġ għas-sadid huwa ppreżentat bħala għażla li mhix attivata awtomatikament u ma tirriżultax fl-inklużjoni ta 'Rut fost id-dipendenzi tal-bini meħtieġa għall-kernel. L-użu ta' Rust biex tiżviluppa sewwieqa jippermettilek toħloq sewwieqa aktar sikuri u aħjar bi sforz minimu, ħielsa minn problemi bħall-aċċess għal żona tal-memorja wara li tiġi meħlusa, dereferencing null pointers, u buffer overruns.

Is-sikurezza tal-memorja hija pprovduta f'Rut fil-ħin tal-kompilazzjoni permezz ta 'verifika ta' referenza, iżżomm kont tal-proprjetà tal-oġġett u l-ħajja tal-oġġett (ambitu), kif ukoll permezz ta 'evalwazzjoni tal-korrettezza tal-aċċess għall-memorja waqt l-eżekuzzjoni tal-kodiċi. Rust jipprovdi wkoll protezzjoni kontra overflows integer, jeħtieġ inizjalizzazzjoni obbligatorja ta 'valuri varjabbli qabel l-użu, jimmaniġġja l-iżbalji aħjar fil-librerija standard, japplika l-kunċett ta' referenzi immutabbli u varjabbli b'mod awtomatiku, joffri tajpjar statiku qawwi biex jimminimizza l-iżbalji loġiċi.

L-aktar bidliet notevoli fil-verżjoni l-ġdida tal-garża:

  • Il-kodiċi ta' allokazzjoni tal-memorja jinħeles milli potenzjalment jiġġenera stat ta' "paniku" meta jseħħu żbalji bħal barra l-memorja. Huwa inkluż varjant tal-librerija Rust alloc, li jaħdem mill-ġdid il-kodiċi biex jimmaniġġja l-fallimenti, iżda l-għan aħħari huwa li jittrasferixxi l-karatteristiċi kollha meħtieġa għall-qalba għall-edizzjoni prinċipali ta 'alloc (il-bidliet diġà ġew ippreparati u trasferiti għall-istandard librerija tas-sadid).
  • Minflok bini ta 'filgħaxija, issa tista' tuża rilaxxi beta u rilaxxi stabbli tal-kompilatur rustc biex tikkompila qalba b'appoġġ Rust. Bħalissa, rustc 1.54-beta1 jintuża bħala l-kompilatur ta 'referenza, iżda wara li r-rilaxx 1.54 jiġi rilaxxat fl-aħħar tax-xahar, se jkun appoġġjat bħala l-kompilatur ta' referenza.
  • Appoġġ miżjud għall-kitba tat-testijiet bl-użu tal-attribut standard "#[test]" għal Rust u l-abbiltà li tuża doctests biex tiddokumenta testijiet.
  • Appoġġ miżjud għall-arkitetturi ARM32 u RISCV minbarra x86_64 u ARM64 appoġġjati qabel.
  • Implimentazzjonijiet imtejba ta 'GCC Rust (GCC frontend għal Rust) u rustc_codegen_gcc (rustc backend għal GCC), li issa jgħaddi mit-testijiet bażiċi kollha.
  • Livell ġdid ta 'estrazzjoni huwa propost għall-użu fil-programmi Rust ta' mekkaniżmi tal-qalba miktuba f'Ċ, bħal siġar aħmar-suwed, oġġetti magħduda b'referenza, ħolqien ta 'deskrittur tal-fajl, kompiti, fajls, u vectors I/O.
  • Il-komponenti tal-iżvilupp tas-sewwieq tejbu l-appoġġ għall-modulu file_operations, il-modulu! makro, ir-reġistrazzjoni makro, u s-sewwieqa rudimentali (sonda u neħħi).
  • Binder issa jappoġġja deskritturi tal-fajl li jgħaddu u ganċijiet LSM.
  • Eżempju aktar funzjonali ta 'sewwieq Rust huwa propost - bcm2835-rng għall-ġeneratur ta' numru każwali tal-hardware tal-bordijiet Raspberry Pi.

Barra minn hekk, jissemmew proġetti ta’ xi kumpaniji relatati mal-użu ta’ Rust fil-qalba:

  • Microsoft esprimiet interess li tipparteċipa fil-ħidma biex tintegra l-appoġġ Rust fil-kernel tal-Linux u hija lesta li tipprovdi implimentazzjonijiet tas-sewwieq għal Hyper-V fuq Rust fix-xhur li ġejjin.
  • ARM qed jaħdem biex itejjeb l-appoġġ Rust għal sistemi bbażati fuq ARM. Il-proġett Rust diġà ppropona bidliet li jagħmlu sistemi ARM 64-bit pjattaforma Tier 1.
  • Google direttament tipprovdi appoġġ għall-proġett Rust għall-Linux, qed tiżviluppa implimentazzjoni ġdida tal-mekkaniżmu ta 'komunikazzjoni interproċess Binder f'Rud, u qed tikkunsidra l-possibbiltà li taħdem mill-ġdid diversi sewwieqa f'Rud. Permezz tal-ISRG (Internet Security Research Group), Google pprovda finanzjament għal xogħol biex jintegra l-appoġġ Rust fil-kernel tal-Linux.
  • IBM implimentat appoġġ għall-qalba għal Rust għal sistemi PowerPC.
  • Il-laboratorju LSE (Laboratorju tar-Riċerka tas-Sistemi) żviluppa sewwieq SPI f'Rut.

Sors: opennet.ru

Żid kumment