Chromium-projektet vil understøtte brugen af ​​Rust-biblioteker

Chromium

, vil Chromium-projektet understøtte brugen af ​​tredjeparts C++ Rust-biblioteker i Chromium

Google afsløret nyhed for nylig, at holdet bag Chromium-projektet arbejder på at tilføje en Rust værktøjskæde fra produktion til dit byggesystem.

For dem, der stadig ikke er klar over Rust, bør de huske det godt, fordi dette programmeringssprog, som blev udviklet af Mozilla specifikt til brug ved skrivning af en browser, er begyndt at trænge ind og blive accepteret inden for mange vigtige projekter, hvoraf et af dem er Rustkerne. Linux.

Dette vil give os mulighed for at inkludere Rust-koden i Chrome-binæren i løbet af det næste år. Målet er at starte i det små og sætte klare forventninger til, hvilke biblioteker der kommer i betragtning, når de er klar.

Så det er naturligt, at Chromium endelig også begynder at udrulle den teknologi. For Google vil introduktionen af ​​Rust i Chrom opfylde målet om at give en nemmere og sikrere måde at overholde to-reglen, som er at fremskynde udviklingen og forbedre sikkerheden i Chrome, udover at forbedre sikkerheden, fjerne hukommelsesfejl og reducere tætheden af ​​fejl i koden.

Vi ved, at C++ og Rust kan arbejde meget godt sammen, takket være værktøjer som cxx, autocxx bindgen, cbindgen, diplomat og (eksperimentel) crubit. Der er dog også begrænsninger. Vi kan forvente, at formen af ​​disse begrænsninger vil ændre sig over tid med nye eller forbedrede værktøjer, men beslutningerne og beskrivelserne her er baseret på den nuværende teknologiske tilstand.

Beslutningen blev taget som en del af et initiativ for at forhindre hukommelsesfejl i at dukke op i Chrome-kodebasen. Ifølge statistikker leveret for to år siden, skyldes 70 % af kritiske og farlige sikkerhedsproblemer i Chromium hukommelsesfejl.

Brugen af ​​Rust-sproget, som fokuserer på sikker hukommelseshåndtering og giver automatisk hukommelsesstyring, vil det reducere risikoen for sårbarheder forårsaget af problemer såsom adgang til et hukommelsesområde, efter det er blevet frigivet, og bufferoverløb.

Målet med at bringe Rust til Chromium er at give en lettere (ingen IPC) og sikrere (mindre kompleks C++ generelt, ingen sandboxed hukommelse sikkerhedsfejl) måde at opfylde reglen om to, for at fremskynde udviklingen (mindre kode at skrive , færre designdokumenter, færre sikkerhedsrettelser) og for at forbedre sikkerheden (flere kodelinjer uden sikkerhedsfejl i hukommelsen, lavere kodefejltæthed) i Chrome. Derudover er virksomheden overbevist om, at vi kan bruge tredjeparts Rust-biblioteker til at nå dette mål.

I begyndelsen af ​​2022 havde Chromium-teamet allerede eksperimenteret med Rust og kom efter nogle måneder til konklusionen at sproget i første omgang er uegnet som C++-erstatning for komplekse opgaver med asynkron kode, der skal fungere sammen med eksisterende kode.

Derfor, planlagt brug af Rust i Chrom er klart begrænset i starten. For én ting vil interop kun gå én vej: fra C++ til Rust. På den anden side er det i første omgang kun tilladt at bruge tredjepartsbiblioteker. Disse fungerer som selvstændige komponenter og er uafhængige af Chromiums interne komponenter. Biblioteker bør have en simpel API til din specifikke opgave. Chromium-teamet vil derefter undersøge bibliotekerne.

Til sidst er det værd at nævne det som sådan tilføjelse af support i Chromium vil tillade Rust-kode at porte ind i Chrome binære filer starter næste år. Beslutningen ser hovedsageligt på spørgsmålet om sikkerhed: Rust giver større sikkerhed ved skrivning til hukommelsen end C++ og forbyder potentielt skadelig adfærd såsom læsning af uskrevne variabler, adgang ud over grænserne sat af arrays, dereferencing af nul eller ugyldige pointere, brug af tilsidesatte iteratorer .

Hvis du er interesseret i at vide mere om det, kan du konsultere detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.