, toetab Chromiumi projekt kolmandate osapoolte C++ Rust teekide kasutamist Chromiumis
Google teatas hiljuti , et Chromiumi projekti taga olev meeskond töötab oma ehitussüsteemile Rusti tööriistaketi lisamise nimel.
Neile, kes pole veel Rustist teadlikud, peaksid nad seda hästi meeles pidama, sest see programmeerimiskeel, mille Mozilla töötas välja spetsiaalselt brauseri kirjutamiseks, on hakanud immitsema ja võetud vastu paljudes olulistes projektides, millest üks on Rust Kernel. Linux.
See võimaldab meil järgmise aasta jooksul lisada Rusti koodi Chrome'i binaarfaili. Eesmärk on alustada väikesest ja seada selged ootused, millistele raamatukogudele nende valmimisel mõeldakse.
Seega on loogiline, et Chromium hakkab lõpuks samuti seda tehnoloogiat arendama. Google'i jaoks täidab Rusti kasutuselevõtt Chromiumis eesmärgi pakkuda lihtsamat ja turvalisemat viisi "kahe reegli" saavutamiseks, mis seisneb arenduse kiirendamises ja Chrome'i turvalisuse parandamises. Lisaks parandab see turvalisust, kõrvaldades mäluvead ja vähendades koodi vigade tihedust.
Teame, et C++ ja Rust saavad väga hästi koos töötada tänu sellistele tööriistadele nagu cxx, autocxx bindgen, cbindgen, diplomat ja (eksperimentaalne) crubit. Siiski on ka piiranguid. Võime eeldada, et nende piirangute kuju uute või täiustatud tööriistadega aja jooksul muutub, kuid siinsed otsused ja kirjeldused põhinevad tehnoloogia praegusel seisukorral.
Otsus tehti osana algatusest, mille eesmärk on vältida mäluvigade ilmumist Chrome'i koodibaasis. Kaks aastat tagasi esitatud statistika kohaselt on 70% Chromiumi kriitilistest ja ohtlikest turvaprobleemidest tingitud mäluvigadest.
Rusti keele kasutamine, mis keskendub turvalisele mäluhaldusele ja pakub automaatset mäluhaldust, vähendab haavatavuste ohtu, mis on põhjustatud sellistest probleemidest nagu mälupiirkonnale juurdepääs pärast selle vabastamist ja puhvri ületäitumine.
Rusti Chromiumi toomise eesmärk on pakkuda lihtsamat (ilma IPC-ta) ja turvalisemat (üldiselt vähem keerukas C++, ilma liivakastimälu turvavigadeta) viis kahe reegli täitmiseks, et kiirendada arendust (vähem kirjutada koodi , vähem kujundusdokumente, vähem turvapaiku) ja Chrome'i turvalisuse parandamiseks (rohkem koodiridu ilma turvavigadeta mälus, väiksem koodivigade tihedus). Lisaks on ettevõte kindel, et saame selle eesmärgi saavutamiseks kasutada kolmandate osapoolte Rust teeke.
2022. aasta alguses oli Chromiumi meeskond juba Rustiga katsetanud ja mõne kuu pärast jõudis järeldusele, et keel ei sobi esialgu C++ asendajaks keerukate ülesannete jaoks, mis vajavad asünkroonset koodi ja peavad töötama koos olemasoleva koodiga.
Seetõttu on Rusti kavandatud kasutamine Chromiumis esialgu selgelt piiratud . Ühelt poolt toimub koostalitlusvõime ainult ühes suunas: C++-st Rustini. Teisest küljest on esialgu lubatud kasutada ainult kolmandate osapoolte teeke. Need toimivad iseseisvate komponentidena ja on Chromiumi sisemistest komponentidest sõltumatud. Teekidel peab olema oma konkreetse ülesande jaoks lihtne API. Seejärel vaatab Chromiumi meeskond teegid üle.
Lõpuks väärib mainimist, et Chromiumi toe lisamine võimaldab Rusti koodi alates järgmisest aastast Chrome'i binaarfailidesse portida . Otsuse peamiseks põhjuseks on turvalisuse kaalutlused: Rust pakub mällu kirjutamisel suuremat turvalisust kui C++ ja keelab potentsiaalselt kahjulikud käitumised, näiteks kirjutamata muutujate lugemine, massiivide seatud piiridest väljaspool asuvatele väärtustele juurdepääs, null- või kehtetutele pointeritele viitamise lõpetamine ja kehtetute iteraatorite kasutamine.
Kui olete huvitatud lisateabe saamisest, leiate üksikasjad järgmiselt lingilt.