Ir-raba 'edizzjoni ta' garża għall-kernel tal-Linux b'appoġġ għall-lingwa Rust

Miguel Ojeda, awtur tal-proġett Rust-for-Linux, ippropona r-raba' verżjoni ta' komponenti għall-iżvilupp ta' sewwieqa tal-apparat fil-lingwa Rust għal konsiderazzjoni mill-iżviluppaturi tal-kernel Linux. L-appoġġ għas-sadid huwa meqjus bħala sperimentali, iżda diġà ġie miftiehem għall-inklużjoni fil-fergħa linux-next u huwa matur biżżejjed biex jibda x-xogħol fuq il-ħolqien ta 'saffi ta' astrazzjoni fuq sottosistemi tal-kernel, kif ukoll kitba ta 'sewwieqa u moduli. L-iżvilupp huwa ffinanzjat minn Google u l-ISRG (Internet Security Research Group), li huwa l-fundatur tal-proġett Let's Encrypt u jippromwovi HTTPS u l-iżvilupp ta 'teknoloġiji biex itejbu s-sigurtà tal-Internet.

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.

Il-verżjoni l-ġdida tal-garża tkompli telimina l-kummenti li saru waqt id-diskussjoni tal-ewwel, it-tieni u t-tielet edizzjonijiet tal-garża. Fil-verżjoni l-ġdida:

  • It-tranżizzjoni għall-użu tar-rilaxx stabbli ta' Rust 1.58.0 bħala l-kompilatur ta' referenza saret. Fost il-bidliet meħtieġa għall-proġett, li għadhom mhumiex inklużi fl-għodda prinċipali Rust, il-bandiera “-Zsymbol-mangling-version=v0” (mistennija f’ Rust 1.59.0) u l-mod “maybe_uninit_extra” (mistennija f’ Rust 1.60.0) .XNUMX) huma nnutati.
  • Żiedu kontrolli awtomatiċi għad-disponibbiltà ta 'għodod xierqa Rust u espandew il-kapaċità li tittestja l-appoġġ Rust fis-sistema.
  • Ġew proposti astrazzjonijiet ġodda għall-aċċess ta 'tabelli ta' identifikaturi ta 'apparat ("IdArray" u "IdTable") mill-kodiċi Rust.
  • Saffi miżjuda għall-aċċess għal funzjonijiet relatati mat-tajmer (qafas tal-arloġġ).
  • Is-sewwieqa tal-pjattaformi issa huma definiti permezz ta' implimentazzjonijiet ta' karatteristiċi.
  • Ġiet miżjuda makro ġdida biex tissimplifika r-reġistrazzjoni tas-sewwieqa tal-pjattaforma, u ġie propost mudell ġdid ta' sewwieq ġeneriku.
  • Miżjuda macros għal strutturi "dev_*".
  • Miżjud metodi "{read,write}*_relaxed" għat-tip IoMem .
  • Neħħa l-proprjetà FileOpener biex tissimplifika l-operazzjonijiet tal-fajls.
  • Il-parametru “ThisModule” ġie miżjud mal-argumenti mgħoddija meta jirreġistra sewwieq.
  • Huwa propost mudell standard għall-ħolqien ta' moduli tal-qalba fil-lingwa Rust.

Sors: opennet.ru

Żid kumment