Chromium-projekti tukee Rust-kirjastojen käyttöä

Kromi

, Chromium-projekti tukee kolmannen osapuolen C++ Rust -kirjastojen käyttöä Chromiumissa

Google paljasti uutisia hiljattain, että Chromium-projektin takana oleva tiimi työskentelee Rust-työkaluketjun lisäämiseksi tuotannosta rakennusjärjestelmääsi.

Niiden, jotka eivät vielä ole tietoisia Rustista, kannattaa muistaa se hyvin, koska tämä ohjelmointikieli, jonka Mozilla on kehittänyt käytettäväksi selaimen kirjoittamiseen, on alkanut tunkeutua ja tulla hyväksyttyjen monissa tärkeissä projekteissa, joista yksi on Rust Kernel. Linux.

Tämän ansiosta voimme sisällyttää Rust-koodin Chromen binaariin seuraavan vuoden aikana. Tavoitteena on aloittaa pienestä ja asettaa selkeät odotukset, mitä kirjastoja harkitaan, kun ne ovat valmiita.

Joten on selvää, että Chromium alkaa vihdoin ottaa käyttöön myös tätä tekniikkaa. Googlelle Rust in Chromium täyttää tavoitteen tarjota helpompi ja turvallisempi tapa noudattaa kahden sääntöä, joka on nopeuttaa kehitystä ja parantaa Chromen turvallisuutta sekä parantaa turvallisuutta ja poistaa muistivirheitä. ja virhetiheyden vähentäminen koodissa.

Tiedämme, että C++ ja Rust voivat toimia erittäin hyvin yhdessä sellaisten työkalujen ansiosta, kuten cxx, autocxx bindgen, cbindgen, diplomat ja (kokeellinen) crubit. On kuitenkin myös rajoituksia. Voimme odottaa näiden rajoitusten muodon muuttuvan ajan myötä uusien tai parannettujen työkalujen myötä, mutta tässä esitetyt päätökset ja kuvaukset perustuvat tekniikan nykytilaan.

Päätös otettiin osana aloitetta muistivirheiden estämiseksi Chromen koodikannassa. Kaksi vuotta sitten toimitettujen tilastojen mukaan 70 % Chromiumin kriittisistä ja vaarallisista tietoturvaongelmista johtuu muistivirheistä.

Rust-kielen käyttö, joka keskittyy turvalliseen muistinhallintaan ja tarjoaa automaattisen muistinhallinnan, se vähentää haavoittuvuuksien riskiä, ​​jonka aiheuttavat ongelmat, kuten muistialueen käyttö sen vapauttamisen jälkeen ja puskurin ylivuoto.

Rustin tuomisen Chromiumiin tavoitteena on tarjota helpompi (ei IPC:tä) ja turvallisempi (vähemmän monimutkainen C++ yleensä, ei hiekkalaatikkomuistin turvallisuusvirheitä) tapa täyttää kahden sääntö, jotta kehitystä nopeuttaisi (vähemmän kirjoitettavaa koodia). , vähemmän suunnitteluasiakirjoja, vähemmän suojauskorjauksia) ja parantaa Chromen turvallisuutta (enemmän koodirivejä ilman suojausvirheitä muistissa, pienempi koodivirhetiheys). Lisäksi yhtiö luottaa siihen, että voimme käyttää kolmannen osapuolen Rust-kirjastoja saavuttaaksemme tämän tavoitteen.

Vuoden 2022 alussa Chromium-tiimi oli jo kokeillut Rustia ja muutaman kuukauden kuluttua tuli johtopäätökseen että kieli ei alun perin sovellu C++-korvaukseksi monimutkaisiin tehtäviin asynkronisella koodilla, jonka on toimittava olemassa olevan koodin rinnalla.

Näin ollen, Ruostin suunniteltu käyttö Chromiumissa on aluksi selvästi rajoitettu. Ensinnäkin interop toimii vain yhdellä tavalla: C++:sta Rustiin. Toisaalta vain kolmannen osapuolen kirjastojen käyttö on aluksi sallittua. Nämä toimivat itsenäisinä komponentteina ja ovat riippumattomia Chromiumin sisäisistä komponenteista. Kirjastoilla tulisi olla yksinkertainen sovellusliittymä tiettyä tehtävääsi varten. Chromium-tiimi tutkii sitten kirjastot.

Lopuksi on syytä mainita se sellaisenaan tuen lisääminen Chromiumiin sallii Rust-koodin siirtymisen Chromen binääriin ensi vuodesta alkaen. Päätöksessä tarkastellaan pääasiassa turvallisuuskysymystä: Rust tarjoaa paremman suojan muistiin kirjoitettaessa kuin C++ ja estää mahdollisesti haitallisen käytöksen, kuten kirjoittamattomien muuttujien lukemisen, taulukoiden asettamien rajojen ylittämisen, nolla- tai virheellisten osoittimien viittauksen poistamisen, ohitettujen iteraattorien käytön. .

Jos olet kiinnostunut tietämään siitä lisää, voit tutustua yksityiskohtiin Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.