Dešimtoji „Linux“ branduolio pataisų versija su „Rust“ kalbos palaikymu

Projekto „Rust-for-Linux“ autorius Miguelis Ojeda pasiūlė išleisti v10 komponentus, skirtus įrenginių tvarkyklių kūrimui Rust kalba, kad galėtų apsvarstyti Linux branduolio kūrėjus. Tai vienuoliktas pataisų leidimas, atsižvelgiant į pirmąją versiją, paskelbtą be versijos numerio. „Rust“ palaikymo įtraukimą patvirtino Linusum Torvalds, kad jis būtų įtrauktas į „Linux 6.1“ branduolį, užkertant kelią nenumatytų problemų. 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ą.

Kaip ir ankstesnė pataisų versija, v10 leidimas yra sumažintas iki minimumo, kurio pakanka sukurti paprastą branduolio modulį, parašytą Rust kalba. Skirtumai nuo ankstesnės versijos atsiranda dėl nedidelių pakeitimų: sizeof pakeitimas ARRAY_SIZE kallsyms.c ir pataisų pritaikymas v6.0-rc7 branduoliui. Tikimasi, kad minimalus pataisas, kurio dydis sumažintas nuo 40 iki 13 tūkstančių kodo eilučių, supaprastins Rust palaikymo priėmimą į pagrindinį branduolį. Suteikus minimalų palaikymą, planuojama palaipsniui didinti esamą funkcionalumą, kitus pakeitimus perkeliant iš Rust-for-Linux šakos.

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.

Šaltinis: opennet.ru

Добавить комментарий