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.