Chromium-prosjektet skal støtte bruken av Rust-biblioteker

Chromium

, vil Chromium-prosjektet støtte bruken av tredjeparts C++ Rust-biblioteker i Chromium

Google annonserte nylig at teamet bak Chromium-prosjektet jobber med å legge til en produksjonsbasert Rust-verktøykjede i byggesystemet sitt.

For de som fortsatt ikke er klar over Rust, bør de huske det godt fordi dette programmeringsspråket, som ble utviklet av Mozilla spesielt for bruk til å skrive en nettleser, har begynt å sive inn og bli akseptert i mange viktige prosjekter, et av dem er Rustkjerne. Linux.

Dette vil tillate oss å inkludere Rust-koden i Chrome-binæren i løpet av det neste året. Målet er å starte i det små og sette klare forventninger til hvilke bibliotek som skal vurderes når de er klare.

Det er derfor logisk at Chromium endelig begynner å utvikle denne teknologien også. For Google vil introduksjonen av Rust i Chromium oppfylle målet om å tilby en enklere og sikrere måte å oppnå «to-regelen» på, som består av å akselerere utviklingen og forbedre Chromes sikkerhet. Videre forbedrer det sikkerheten ved å eliminere minnefeil og redusere feiltettheten i koden.

Vi vet at C++ og Rust kan fungere veldig bra sammen, takket være verktøy som cxx, autocxx bindgen, cbindgen, diplomat og (eksperimentell) crubit. Det er imidlertid også begrensninger. Vi kan forvente at formen på disse begrensningene vil endre seg over tid med nye eller forbedrede verktøy, men beslutningene og beskrivelsene her er basert på den nåværende teknologien.

Beslutningen ble tatt som en del av et initiativ for å forhindre at minnefeil vises i Chromes kodebase. Ifølge statistikk levert for to år siden skyldes 70 % av kritiske og farlige sikkerhetsproblemer i Chromium minnefeil.

Bruk av Rust-språket, som fokuserer på sikker minnehåndtering og tilbyr automatisk minnehåndtering, vil redusere risikoen for sårbarheter forårsaket av problemer som tilgang til et minneområde etter at det har blitt frigjort og bufferoverløp.

Målet med å bringe Rust til Chromium er å tilby en enklere (ingen IPC) og sikrere (mindre kompleks C++ generelt, ingen minnesikkerhetsfeil i sandkasse) måte å tilfredsstille regelen om to, for å fremskynde utviklingen (mindre kode å skrive , færre designdokumenter, færre sikkerhetsoppdateringer) og for å forbedre sikkerheten (flere kodelinjer uten sikkerhetsfeil i minnet, lavere kodefeiltetthet) i Chrome. I tillegg er selskapet overbevist om at vi kan bruke tredjeparts Rust-biblioteker for å nå dette målet.

Tidlig i 2022 hadde Chromium-teamet allerede eksperimentert med Rust , og etter noen måneder konkluderte de med at språket i utgangspunktet ikke er egnet som erstatning for C++ for komplekse oppgaver med asynkron kode som må fungere sammen med eksisterende kode.

Derfor er den planlagte bruken av Rust i Chromium tydelig begrenset i starten . På den ene siden vil interoperabiliteten bare gå i én retning: fra C++ til Rust. På den annen side er det i utgangspunktet kun tillatt å bruke tredjepartsbiblioteker. Disse fungerer som frittstående komponenter og er uavhengige av Chromiums interne komponenter. Bibliotekene må ha et enkelt API for sin spesifikke oppgave. Chromium-teamet vil deretter gjennomgå bibliotekene.

Til slutt er det verdt å nevne at det å legge til støtte i Chromium vil tillate at Rust-kode kan porteres til Chrome-binærfiler fra neste år. Beslutningen er først og fremst drevet av sikkerhetshensyn: Rust tilbyr større sikkerhet ved skriving til minne enn C++ og forbyr potensielt skadelig atferd som å lese uskrevne variabler, få tilgang til verdier utover grensene som er satt av arrayer, dereferanse av null- eller ugyldige pekere og bruk av ugyldige iteratorer.

Hvis du er interessert i å lære mer, finner du detaljene på lenken nedenfor.


Legg til som foretrukket kilde i Google