, projekt Chromium će podržati korištenje C++ Rust biblioteka trećih strana u Chromiumu
Google je nedavno objavio da tim koji stoji iza Chromium projekta radi na dodavanju Rust alata za produkciju u svoj sustav za izgradnju.
Za one koji još uvijek nisu svjesni Rusta, trebali bi ga dobro zapamtiti jer je ovaj programski jezik, koji je Mozilla razvila posebno za upotrebu u pisanju preglednika, počeo prodirati i biti prihvaćen u mnogim važnim projektima, a jedan od njih je Rust kernel Linux.
To će nam omogućiti uključivanje Rust koda u Chromeovu binarnu datoteku tijekom sljedeće godine. Cilj je započeti s malim i postaviti jasna očekivanja za koje će se knjižnice uzeti u obzir kada budu spremne.
Logično je, dakle, da i Chromium konačno počinje razvijati ovu tehnologiju. Za Google, uvođenje Rusta u Chromium ispunit će cilj pružanja lakšeg i sigurnijeg načina za postizanje "pravila dva", koje se sastoji od ubrzanja razvoja i poboljšanja sigurnosti Chromea. Nadalje, poboljšava sigurnost uklanjanjem memorijskih pogrešaka i smanjenjem gustoće grešaka u kodu.
Znamo da C++ i Rust mogu jako dobro raditi zajedno, zahvaljujući alatima kao što su cxx, autocxx bindgen, cbindgen, diplomat i (eksperimentalni) crubit. Međutim, postoje i ograničenja. Možemo očekivati da će se oblik ovih ograničenja s vremenom promijeniti s novim ili poboljšanim alatima, ali odluke i opisi ovdje temelje se na trenutnom stanju tehnologije.
Odluka je donesena kao dio inicijative za sprječavanje pojave memorijskih pogrešaka u Chromeovoj kodnoj bazi. Prema statistikama objavljenim prije dvije godine, 70% kritičnih i opasnih sigurnosnih problema u Chromiumu uzrokovano je memorijskim pogreškama.
Korištenje Rust jezika, koji se fokusira na sigurno upravljanje memorijom i omogućuje automatsko upravljanje memorijom, smanjit će rizik od ranjivosti uzrokovanih problemima poput pristupa memorijskom području nakon što je oslobođeno i prelijevanja međuspremnika.
Cilj uvođenja Rusta u Chromium je pružiti lakši (bez IPC-a) i sigurniji (manje složen C++ općenito, bez sigurnosnih grešaka memorije u sandboxu) način da se zadovolji pravilo dva, kako bi se ubrzao razvoj (manje koda za pisanje , manje dizajnerskih dokumenata, manje sigurnosnih zakrpa) i za poboljšanje sigurnosti (više redaka koda bez sigurnosnih grešaka u memoriji, manja gustoća grešaka koda) Chromea. Osim toga, tvrtka je uvjerena da možemo koristiti Rust biblioteke trećih strana za postizanje ovog cilja.
Početkom 2022. godine, Chromium tim je već eksperimentirao s Rustom i nakon nekoliko mjeseci zaključio da jezik u početku nije prikladan kao zamjena za C++ za složene zadatke s asinkronim kodom koji mora raditi uz postojeći kod.
Stoga je planirana upotreba Rusta u Chromiumu u početku očito ograničena . S jedne strane, interoperabilnost će ići samo u jednom smjeru: od C++ do Rusta. S druge strane, u početku je dopuštena samo upotreba biblioteka trećih strana. One funkcioniraju kao samostalne komponente i neovisne su o internim komponentama Chromiuma. Biblioteke moraju imati jednostavan API za svoj specifični zadatak. Chromium tim će zatim pregledati biblioteke.
Konačno, vrijedi spomenuti da će dodavanje podrške u Chromium omogućiti prenošenje Rustovog koda na Chromeove binarne datoteke počevši od sljedeće godine. Odluka je prvenstveno potaknuta sigurnosnim problemima: Rust nudi veću sigurnost pri pisanju u memoriju od C++ i zabranjuje potencijalno štetna ponašanja poput čitanja nepisanih varijabli, pristupa vrijednostima izvan ograničenja postavljenih nizovima, dereferenciranja null ili nevažećih pokazivača i korištenja nevažećih iteratora.
Ako ste zainteresirani saznati više, detalje možete pronaći na sljedećoj poveznici.