Chromium-projektet kommer att stödja användningen av Rust-bibliotek

krom

, kommer Chromium-projektet att stödja användningen av tredjeparts C++ Rust-bibliotek i Chromium

Google presenteras nyheter nyligen att teamet bakom Chromium-projektet arbetar med att lägga till en Rust verktygskedja från produktion till ditt byggsystem.

För de som fortfarande inte är medvetna om Rust bör de komma ihåg det väl eftersom detta programmeringsspråk, som utvecklats av Mozilla speciellt för att användas i att skriva en webbläsare, har börjat sippra in och accepteras inom många viktiga projekt, ett av dem är Rustkärna. Linux.

Detta gör att vi kan inkludera Rust-koden i Chrome-binären under nästa år. Målet är att börja smått och sätta tydliga förväntningar på vilka bibliotek som kommer att övervägas när de är klara.

Så det är naturligt att Chromium äntligen börjar rulla ut den tekniken också. För Google kommer introduktionen av Rust i Chromium att uppfylla målet att tillhandahålla ett enklare och säkrare sätt att följa tvåregeln, som är att påskynda utvecklingen och förbättra säkerheten för Chrome, förutom att förbättra säkerheten, ta bort minnesfel och minska tätheten av fel i koden.

Vi vet att C++ och Rust kan fungera mycket bra tillsammans, tack vare verktyg som cxx, autocxx bindgen, cbindgen, diplomat och (experimentell) crubit. Men det finns också begränsningar. Vi kan förvänta oss att formen på dessa begränsningar kommer att förändras över tid med nya eller förbättrade verktyg, men besluten och beskrivningarna här är baserade på det aktuella teknikläget.

Beslut togs som en del av ett initiativ för att förhindra att minnesfel uppstår i Chrome-kodbasen. Enligt statistik som lämnades för två år sedan beror 70 % av kritiska och farliga säkerhetsproblem i Chromium på minnesfel.

Användningen av språket Rust, som fokuserar på säker minneshantering och ger automatisk minneshantering, kommer det att minska risken för sårbarheter orsakade av problem som att komma åt ett minnesområde efter att det har frigjorts och buffertspill.

Målet med att föra Rust till Chromium är att tillhandahålla ett enklare (ingen IPC) och säkrare (mindre komplex C++ i allmänhet, inga sandlådeminnessäkerhetsbuggar) sätt att uppfylla tvåregeln, för att påskynda utvecklingen (mindre kod att skriva) , färre designdokument, färre säkerhetskorrigeringar) och för att förbättra säkerheten (fler rader kod utan säkerhetsbuggar i minnet, lägre kodbuggdensitet) för Chrome. Dessutom är företaget övertygat om att vi kan använda tredje parts Rust-bibliotek för att uppnå detta mål.

I början av 2022 hade Chromium-teamet redan experimenterat med Rust och kom efter några månader till slutsatsen att språket initialt är olämpligt som en C++-ersättning för komplexa uppgifter med asynkron kod som måste fungera vid sidan av befintlig kod.

Därför, planerad användning av Rust i Chromium är klart begränsad till en början. För en sak kommer interop bara gå åt ett håll: från C++ till Rust. Å andra sidan är till en början endast användning av tredje parts bibliotek tillåten. Dessa fungerar som fristående komponenter och är oberoende av Chromiums interna komponenter. Bibliotek bör ha ett enkelt API för din specifika uppgift. Chromium-teamet kommer sedan att undersöka biblioteken.

Slutligen är det värt att nämna det som sådant Lägga till stöd i Chromium gör att Rust-kod kan portas till Chrome-binärfiler med start nästa år. Beslutet tittar huvudsakligen på frågan om säkerhet: Rust erbjuder större säkerhet när man skriver till minnet än C++ och förbjuder potentiellt skadliga beteenden som att läsa oskrivna variabler, åtkomst bortom gränserna som satts av arrayer, dereferenciering av noll eller ogiltiga pekare, användning av åsidosatta iteratorer .

Om du är intresserad av att veta mer om det kan du konsultera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.