Chromium projekat će podržati korištenje Rust biblioteka

hrom

, Chromium projekat će podržati korištenje C++ Rust biblioteka treće strane u Chromiumu

Google predstavio vijesti nedavno da je tim iza Chromium projekta radi na dodavanju Rust alata od proizvodnje do vašeg sistema izgradnje.

Za one koji još uvijek nisu svjesni Rust-a, trebali bi ga dobro zapamtiti jer je ovaj programski jezik, koji je Mozilla razvila posebno za korištenje u pisanju pretraživača, počeo da prodire i da bude prihvaćen u mnogim važnim projektima, jedan od njih je Rust Kernel. Linux.

Ovo će nam omogućiti da uključimo Rust kod u Chrome binarni program tokom sljedeće godine. Cilj je započeti s malim i postaviti jasna očekivanja za koja će se biblioteke uzeti u obzir kada budu spremne.

Dakle, logično je da Chromium konačno počinje da uvodi i tu tehnologiju. Za Google, uvođenje Rust-a u Chromium će ispuniti cilj pružanja lakšeg i sigurnijeg načina da se uskladi s pravilom dva, a to je ubrzanje razvoja i poboljšanje sigurnosti Chromea, pored poboljšanja sigurnosti, uklanjanja memorijskih grešaka i smanjenje gustine grešaka u kodu.

Znamo da C++ i Rust mogu vrlo 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 vremenom promijeniti s novim ili poboljšanim alatima, ali odluke i opisi ovdje su zasnovani na trenutnom stanju tehnologije.

Odluka je poduzeta kao dio inicijative da se spriječi pojavljivanje grešaka u memoriji u bazi koda Chrome. Prema statistikama objavljenim prije dvije godine, 70% kritičnih i opasnih sigurnosnih problema u Chromiumu nastaje zbog grešaka u memoriji.

Upotreba Rust jezika, koji se fokusira na sigurno upravljanje memorijom i pruža automatsko upravljanje memorijom, smanjit će rizik od ranjivosti uzrokovanih problemima kao što je pristup području memorije nakon što je oslobođeno i prelivanje bafera.

Cilj dovođenja Rusta u Chromium je pružiti lakši (bez IPC-a) i sigurniji (manje složen C++ općenito, bez sigurnosnih grešaka u zaštićenoj memoriji) 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 linija koda bez sigurnosnih grešaka u memoriji, manja gustina grešaka koda) Chrome-a. Osim toga, kompanija je uvjerena da možemo koristiti Rust biblioteke treće strane da bismo postigli ovaj cilj.

Početkom 2022. Chromium tim je već eksperimentirao sa Rustom i, nakon nekoliko mjeseci, došao do zaključka da je jezik u početku neprikladan kao C++ zamjena za složene zadatke sa asinhronim kodom koji mora raditi zajedno sa postojećim kodom.

Zbog toga, planirana upotreba Rusta u Chromiumu je u početku jasno ograničena. Kao prvo, interop će ići samo u jednom pravcu: od C++ do Rusta. S druge strane, u početku je dozvoljena samo upotreba biblioteka trećih strana. One rade kao samostalne komponente i neovisne su o Chromiumovim internim komponentama. Biblioteke bi trebale imati jednostavan API za vaš specifični zadatak. Chromium tim će zatim pregledati biblioteke.

Na kraju, vrijedno je spomenuti i to kao takvo dodavanje podrške u Chromiumu omogućit će prijenos Rust koda u Chrome binarne datoteke počevši od sljedeće godine. Odluka se uglavnom bavi pitanjem sigurnosti: Rust nudi veću sigurnost prilikom pisanja u memoriju nego C++ i zabranjuje potencijalno štetna ponašanja kao što je čitanje nepisanih varijabli, pristupanje izvan granica postavljenih nizovima, dereferenciranje null ili nevažećih pokazivača, korištenje nadjačanih iteratora .

Ako ste zainteresovani da saznate više o tome, možete pogledati detalje Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.