Nauja „Linux“ branduolio pataisų versija su „Rust“ kalbos palaikymu

Miguelis Ojeda, projekto Rust-for-Linux autorius, pasiūlė išleisti v5 komponentus, skirtus įrenginių tvarkyklėms kurti Rust kalba, kad galėtų apsvarstyti Linux branduolio kūrėjus. Tai jau šeštasis pataisų leidimas, atsižvelgiant į pirmąją versiją, paskelbtą be versijos numerio. Rūdžių palaikymas laikomas eksperimentiniu, tačiau jau įtrauktas į linux-next šaką ir yra pakankamai išvystytas, kad būtų galima pradėti kurti abstrakcijos sluoksnius per branduolio posistemes, taip pat rašyti tvarkykles ir modulius. Kūrimą finansuoja Google ir ISRG (Internet Security Research Group), kuri yra projekto Let's Encrypt įkūrėja ir skatina HTTPS bei interneto saugą gerinančių technologijų kūrimą.

Prisiminkite, kad siūlomi pakeitimai leidžia naudoti Rust kaip antrąją kalbą kuriant tvarkykles ir branduolio modulius. Rūdžių palaikymas pateikiamas kaip parinktis, kuri nėra įjungta pagal numatytuosius nustatymus, todėl Rust neįtraukiama kaip būtina branduolio kūrimo priklausomybė. Naudojant Rust tvarkyklės kūrimui, galėsite sukurti saugesnes ir geresnes tvarkykles su minimaliomis pastangomis, be problemų, tokių kaip prieiga po atlaisvinimo, nulinės rodyklės nuorodos ir buferio viršijimas.

Atminties sauga „Rust“ užtikrinama kompiliavimo metu, tikrinant nuorodas, stebint objekto nuosavybę ir objekto eksploatavimo laiką (apimtį), taip pat įvertinant prieigos prie atminties teisingumą vykdant kodą. Rust taip pat suteikia apsaugą nuo sveikųjų skaičių perpildymo, reikalauja privalomo kintamųjų reikšmių inicijavimo prieš naudojimą, geriau tvarko klaidas standartinėje bibliotekoje, pagal numatytuosius nustatymus taiko nekintamų nuorodų ir kintamųjų koncepciją, siūlo tvirtą statinį spausdinimą, kad būtų sumažintos loginės klaidos.

Naujojoje pataisų versijoje ir toliau šalinami komentarai, išsakyti aptariant pirmą, antrą, trečią, ketvirtą ir penktą pataisų leidimus. Naujoje versijoje:

  • Įrankių rinkinys buvo atnaujintas, kad būtų išleista Rust 1.59.0. „Alloc“ bibliotekos variantas taip pat sinchronizuojamas su nauja „Rust“ versija, pašalinant galimą „panikos“ būseną, kai atsiranda klaidų, pvz., trūksta atminties. Galimybė naudoti surinkėjų įdėklus („feature(global_asm)“) buvo stabilizuota.
  • Pridėtas palaikymas kuriant pagrindines programas Rust, kurios naudojamos branduolio kompiliavimo metu.
  • Užuot pateikę iš anksto sugeneruotus tikslinės platformos specifikacijų failus, jie dinamiškai generuojami pagal branduolio konfigūraciją.
  • Pridėtas HAVE_RUST branduolio parametras, kad būtų galima naudoti architektūras, kurios palaiko Rust.
  • Abstrakcijas siūloma naudoti aparatinės įrangos pseudoatsitiktinių skaičių generatoriaus Rust kode.
  • Leidžiama naudoti klaidų kodus be priešdėlio „Error::“ (pavyzdžiui, „return Err(EINVAL)“), kad būtų apytiksliai apdorojami klaidų kodai C.
  • Pridėtas „CString“ tipas tinkintoms C eilutėms. Formatavimo ir buferio tipai buvo sujungti.
  • Pridėta Bool ir LockInfo tipai.
  • Supaprastintas sukimosi užraktų įgyvendinimas.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster