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

Chromium

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

Google avduket nyheter nylig at teamet bak Chromium-prosjektet jobber med å legge til en Rust-verktøykjede fra produksjon til byggesystemet ditt.

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.

Så det er naturlig at Chromium endelig begynner å rulle ut den teknologien også. For Google vil introduksjonen av Rust i Chromium oppfylle målet om å tilby en enklere og tryggere måte å overholde to-regelen, som er å fremskynde utviklingen og forbedre sikkerheten til Chrome, i tillegg til å forbedre sikkerheten, fjerne minnefeil og redusere tettheten av feil 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.

Avgjørelsen ble tatt som en del av et initiativ for å forhindre at minnefeil oppstår i Chrome-kodebasen. I følge statistikk som ble levert for to år siden, skyldes 70 % av kritiske og farlige sikkerhetsproblemer i Chromium minnefeil.

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

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 kom etter noen måneder til konklusjonen at språket i utgangspunktet er uegnet som C++-erstatning for komplekse oppgaver med asynkron kode som må fungere sammen med eksisterende kode.

Derfor, planlagt bruk av Rust i Chromium er klart begrenset i begynnelsen. For én ting vil interop bare gå én vei: 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. Biblioteker bør ha en enkel API for din spesifikke oppgave. Chromium-teamet vil deretter undersøke bibliotekene.

Til slutt er det verdt å nevne det som sådan ved å legge til støtte i Chromium vil Rust-kode kunne porteres inn i Chrome-binærfiler starter neste år. Avgjørelsen ser hovedsakelig på spørsmålet om sikkerhet: Rust gir større sikkerhet når du skriver til minnet enn C++ og forbyr potensielt skadelig atferd som å lese uskrevne variabler, tilgang utover grensene satt av arrays, dereferering av null eller ugyldige pekere, bruk av overstyrte iteratorer .

Hvis du er interessert i å vite mer om det, kan du se detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.