Projekt Chromium bo podpiral uporabo knjižnic Rust

krom

, bo projekt Chromium podpiral uporabo knjižnic C++ Rust drugih proizvajalcev v Chromiumu

Google je predstavil nedavno novica, da ekipa, ki stoji za projektom Chromium dela na dodajanju orodne verige Rust od proizvodnje do vašega gradbenega sistema.

Tisti, ki Rusta še ne poznajo, naj si ga dobro zapomnijo, saj je ta programski jezik, ki ga je razvila Mozilla posebej za uporabo pri pisanju brskalnika, začel prodirati in biti sprejet v številnih pomembnih projektih, eden od njih je Jedro Rust Linux.

To nam bo omogočilo vključitev kode Rust v Chromovo binarno datoteko v naslednjem letu. Cilj je začeti z majhnim in postaviti jasna pričakovanja, katere knjižnice bomo upoštevali, ko bodo pripravljene.

Zato je logično, da Chromium končno začenja uvajati tudi to tehnologijo. Za Google bo uvedba Rust v Chromium izpolnila cilj zagotavljanja enostavnejšega in varnejšega načina za izpolnjevanje pravila dveh, to je pospešitev razvoja in izboljšanje varnosti Chroma, poleg izboljšanja varnosti, odstranjevanja napak v pomnilniku in zmanjšanje gostote napak v kodi.

Vemo, da lahko C++ in Rust zelo dobro delujeta skupaj, zahvaljujoč orodjem, kot so cxx, autocxx bindgen, cbindgen, diplomat in (eksperimentalni) crubit. Vendar pa obstajajo tudi omejitve. Pričakujemo lahko, da se bo oblika teh omejitev sčasoma spremenila z novimi ali izboljšanimi orodji, vendar odločitve in opisi tukaj temeljijo na trenutnem stanju tehnologije.

Odločitev je bil sprejet kot del pobude za preprečevanje pojava napak v spominu v Chromovi kodni bazi. Po statističnih podatkih izpred dveh let je 70 % kritičnih in nevarnih varnostnih težav v Chromiumu posledica napak v pomnilniku.

Uporaba jezika Rust, ki se osredotoča na varno upravljanje pomnilnika in zagotavlja samodejno upravljanje pomnilnika, bo zmanjšal tveganje ranljivosti, ki jih povzročajo težave, kot je dostop do območja pomnilnika, potem ko je bilo to osvobojeno, in prekoračitev medpomnilnika.

Cilj uvedbe Rust v Chromium je zagotoviti lažji (brez IPC) in varnejši (manj zapleten C++ na splošno, brez varnostnih napak v pomnilniku v peskovniku) način za izpolnitev pravila dveh, da se pospeši razvoj (manj kode za pisanje , manj oblikovalskih dokumentov, manj varnostnih popravkov) in za izboljšanje varnosti (več vrstic kode brez varnostnih napak v pomnilniku, manjša gostota napak v kodi) Chroma. Poleg tega je podjetje prepričano, da lahko za dosego tega cilja uporabimo knjižnice Rust tretjih oseb.

V začetku leta 2022 je ekipa Chromium že eksperimentirala z Rust in po nekaj mesecih prišel do zaključka da jezik sprva ni primeren kot zamenjava za C++ za kompleksna opravila z asinhrono kodo, ki mora delovati skupaj z obstoječo kodo.

zato načrtovana uporaba Rust v Chromiumu je sprva očitno omejena. Prvič, interop bo šel samo v eno smer: od C++ do Rust. Po drugi strani pa je na začetku dovoljena samo uporaba knjižnic tretjih oseb. Te delujejo kot samostojne komponente in so neodvisne od Chromiumovih notranjih komponent. Knjižnice bi morale imeti preprost API za vašo specifično nalogo. Ekipa Chromium bo nato pregledala knjižnice.

Na koncu velja omeniti, da kot tak dodajanje podpore v Chromium bo kodi Rust omogočilo prenos v Chromove binarne datoteke z začetkom naslednjega leta. Odločitev se nanaša predvsem na vprašanje varnosti: Rust nudi večjo varnost pri pisanju v pomnilnik kot C++ in prepoveduje potencialno škodljiva vedenja, kot je branje nezapisanih spremenljivk, dostopanje prek meja, ki jih določajo polja, dereferenciranje ničelnih ali neveljavnih kazalcev, uporaba preglasenih iteratorjev .

Če vas zanima več o tem, si lahko ogledate podrobnosti V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.