Projekt Chromium podporí používanie knižníc Rust

Chróm

, projekt Chromium bude podporovať používanie knižníc C++ Rust tretích strán v prehliadači Chromium

Spoločnosť Google nedávno oznámila , že tím stojaci za projektom Chromium pracuje na pridaní produkčnej verzie nástrojov Rust do svojho systému zostavovania.

Pre tých, ktorí stále nevedia o Ruste, mali by si to dobre zapamätať, pretože tento programovací jazyk, ktorý vyvinula Mozilla špeciálne na použitie pri písaní prehliadača, sa začal presakovať a byť akceptovaný v mnohých dôležitých projektoch, medzi ktoré patrí napr. Rust Kernel. Linux.

To nám umožní zahrnúť Rust kód do binárky Chrome v priebehu budúceho roka. Cieľom je začať v malom a stanoviť jasné očakávania, na ktoré sa budú brať knižnice, keď budú pripravené.

Je preto logické, že aj Chromium konečne začína s vývojom tejto technológie. Pre Google bude zavedenie Rustu v Chromiu splnením cieľa, ktorým je poskytnutie jednoduchšieho a bezpečnejšieho spôsobu dosiahnutia „pravidla dvoch“, ktoré spočíva v zrýchlení vývoja a zlepšení bezpečnosti prehliadača Chrome. Okrem toho sa tým zlepšuje bezpečnosť elimináciou chýb v pamäti a znížením hustoty chýb v kóde.

Vieme, že C++ a Rust môžu veľmi dobre spolupracovať vďaka nástrojom ako cxx, autocxx bindgen, cbindgen, diplomat a (experimentálny) crubit. Existujú však aj obmedzenia. Môžeme očakávať, že tvar týchto obmedzení sa časom zmení s novými alebo vylepšenými nástrojmi, no rozhodnutia a popisy tu vychádzajú zo súčasného stavu technológie.

Toto rozhodnutie bolo prijaté ako súčasť iniciatívy na zabránenie zobrazovaniu chýb pamäte v kódovej základni prehliadača Chrome. Podľa štatistík poskytnutých pred dvoma rokmi je 70 % kritických a nebezpečných bezpečnostných problémov v prehliadači Chromium spôsobených chybami pamäte.

Používanie jazyka Rust, ktorý sa zameriava na bezpečnú správu pamäte a poskytuje automatickú správu pamäte, zníži riziko zraniteľností spôsobených problémami, ako je prístup k oblasti pamäte po jej uvoľnení a pretečenie vyrovnávacej pamäte.

Cieľom prinesenia Rustu do Chromia je poskytnúť jednoduchší (bez IPC) a bezpečnejší (menej zložitý C++ vo všeobecnosti, žiadne chyby bezpečnosti pamäte v karanténe) na splnenie pravidla dvoch, aby sa urýchlil vývoj (menej kódu na písanie , menej návrhových dokumentov, menej bezpečnostných opráv) a na zlepšenie zabezpečenia (viac riadkov kódu bez bezpečnostných chýb v pamäti, nižšia hustota chýb v kóde) prehliadača Chrome. Okrem toho je spoločnosť presvedčená, že na dosiahnutie tohto cieľa môžeme použiť knižnice Rust tretích strán.

Začiatkom roka 2022 tím Chromium už experimentoval s jazykom Rust a po niekoľkých mesiacoch dospel k záveru, že jazyk spočiatku nie je vhodný ako náhrada za C++ pre zložité úlohy s asynchrónnym kódom, ktorý musí fungovať popri existujúcom kóde.

Preto je plánované použitie Rustu v prehliadači Chromium spočiatku jednoznačne obmedzené . Na jednej strane bude interoperabilita smerovať iba jedným smerom: z C++ do Rustu. Na druhej strane je spočiatku povolené iba používanie knižníc tretích strán. Tieto fungujú ako samostatné komponenty a sú nezávislé od interných komponentov prehliadača Chromium. Knižnice musia mať pre svoju špecifickú úlohu jednoduché API. Tím Chromium potom knižnice skontroluje.

Na záver stojí za zmienku, že pridanie podpory v prehliadači Chromium umožní portovanie kódu Rustu do binárnych súborov prehliadača Chrome od budúceho roka. Rozhodnutie je primárne motivované bezpečnostnými obavami: Rust ponúka väčšiu bezpečnosť pri zápise do pamäte ako C++ a zakazuje potenciálne škodlivé správanie, ako je čítanie nezapísaných premenných, prístup k hodnotám mimo limitov stanovených poľami, dereferencovanie nulových alebo neplatných ukazovateľov a používanie neplatných iterátorov.

Ak máte záujem dozvedieť sa viac, podrobnosti nájdete na nasledujúcom odkaze.


Pridať ako preferovaný zdroj v Google