„Chromium“ projektas padės naudoti „Rust“ bibliotekas

chromas

, Chromium projektas palaikys trečiųjų šalių C++ Rust bibliotekų naudojimą Chromium

„Google“ neseniai paskelbė , kad „Chromium“ projekto komanda dirba ties „Rust“ įrankių grandinės pridėjimu prie savo kūrimo sistemos.

Tie, kurie vis dar nežino apie Rust, turėtų tai gerai atsiminti, nes ši programavimo kalba, kurią „Mozilla“ sukūrė specialiai naudoti naršyklei rašyti, pradėjo plisti ir būti priimta daugelyje svarbių projektų, vienas iš jų yra Rust branduolys. Linux.

Tai leis mums kitais metais įtraukti Rust kodą į „Chrome“ dvejetainį failą. Tikslas yra pradėti nuo mažo ir nustatyti aiškius lūkesčius, į kurias bibliotekas bus atsižvelgta, kai jos bus pasirengusios.

Taigi logiška, kad „Chromium“ pagaliau pradeda kurti ir šią technologiją. „Google“ teigimu, „Rust“ įdiegimas „Chromium“ naršyklėje įgyvendins tikslą – suteikti lengvesnį ir saugesnį būdą įgyvendinti „dviejų taisyklę“, kuri pagreitina kūrimą ir pagerina „Chrome“ saugumą. Be to, tai pagerina saugumą, pašalinant atminties klaidas ir sumažinant klaidų tankį kode.

Žinome, kad C++ ir Rust gali labai gerai dirbti kartu, dėka tokių įrankių kaip cxx, autocxx bindgen, cbindgen, diplomat ir (eksperimentinis) crubit. Tačiau yra ir apribojimų. Galime tikėtis, kad šių apribojimų forma laikui bėgant keisis naudojant naujus ar patobulintus įrankius, tačiau čia pateikti sprendimai ir aprašymai yra pagrįsti dabartine technologijų būkle.

Šis sprendimas buvo priimtas kaip iniciatyvos, kuria siekiama užkirsti kelią atminties klaidoms „Chrome“ kodo bazėje, dalis. Remiantis prieš dvejus metus pateikta statistika, 70 % kritinių ir pavojingų „Chromium“ saugumo problemų kyla dėl atminties klaidų.

Naudojant „Rust“ kalbą, kuri orientuota į saugų atminties valdymą ir užtikrina automatinį atminties valdymą, sumažės pažeidžiamumų, atsirandančių dėl tokių problemų kaip prieiga prie atminties srities po jos atlaisvinimo ir buferio perpildymo, rizika.

„Rust“ įdiegimo į „Chromium“ tikslas yra suteikti lengvesnį (be IPC) ir saugesnį (bendrai mažiau sudėtingas C++, be smėlio dėžės atminties saugos klaidų) būdą, kaip įvykdyti dviejų taisyklę, kad būtų paspartintas kūrimas (mažiau kodo rašyti). , mažiau projektavimo dokumentų, mažiau saugos pataisų) ir pagerinti „Chrome“ saugumą (daugiau kodo eilučių be saugos klaidų atmintyje, mažesnis kodo klaidų tankis). Be to, bendrovė yra įsitikinusi, kad galime naudoti trečiųjų šalių Rust bibliotekas, kad pasiektume šį tikslą.

2022 m. pradžioje „Chromium“ komanda jau buvo eksperimentavusi su „Rust“ ir po kelių mėnesių padarė išvadą, kad ši kalba iš pradžių netinka kaip C++ pakaitalas sudėtingoms užduotims su asinchroniniu kodu, kuris turi veikti kartu su esamu kodu.

Todėl planuojamas „Rust“ naudojimas „Chromium“ iš pradžių yra akivaizdžiai ribotas . Viena vertus, sąveika vyks tik viena kryptimi: nuo C++ prie „Rust“. Kita vertus, iš pradžių leidžiama naudoti tik trečiųjų šalių bibliotekas. Jos veikia kaip atskiri komponentai ir yra nepriklausomos nuo vidinių „Chromium“ komponentų. Bibliotekos turi turėti paprastą API, skirtą konkrečiai užduočiai. Tada „Chromium“ komanda peržiūrės bibliotekas.

Galiausiai verta paminėti, kad pridėjus palaikymą „Chromium“, „Rust“ kodas nuo kitų metų bus perkeltas į „Chrome“ dvejetainius failus . Šį sprendimą daugiausia lėmė saugumo problemos: „Rust“ siūlo didesnį saugumą rašant į atmintį nei „C++“ ir draudžia potencialiai žalingą elgesį, pvz., neįrašytų kintamųjų skaitymą, prieigą prie reikšmių, viršijančių masyvų nustatytas ribas, nulinių arba negaliojančių rodyklių dereferenciją ir negaliojančių iteratorių naudojimą.

Jei norite sužinoti daugiau, išsamią informaciją galite rasti toliau pateiktoje nuorodoje.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje