A Chromium projekt támogatja a Rust könyvtárak használatát

Króm

, a Chromium projekt támogatja a harmadik féltől származó C++ Rust könyvtárak használatát a Chromiumban

A Google bemutatta a közelmúltban hír, hogy a Chromium projekt mögött álló csapat egy Rust eszközlánc hozzáadásán dolgozik a gyártástól az összeállítási rendszerig.

Aki még mindig nem ismeri a Rustot, annak jól emlékezzen rá, mert ez a programozási nyelv, amelyet a Mozilla kifejezetten böngészőírásra fejlesztett ki, számos fontos projektben kezdett beszivárogni és elfogadott lenni, ezek egyike a Rust Kernel. Linux.

Ez lehetővé teszi számunkra, hogy a következő évben beépítsük a Rust kódot a Chrome binárisba. A cél az, hogy kicsiben kezdjük el, és világos elvárásokat fogalmazzunk meg, hogy mely könyvtárakat veszik figyelembe, amikor készen állnak.

Magától értetődik tehát, hogy a Chromium végre elkezdi ezt a technológiát is bevezetni. A Google számára a Rust in Chromium bevezetése teljesíti azt a célt, hogy könnyebben és biztonságosabban megfeleljen a kettős szabálynak, ami a Chrome fejlesztésének felgyorsítása és biztonságának javítása, a biztonság javítása és a memóriahibák eltávolítása mellett. és a hibasűrűség csökkentése a kódban.

Tudjuk, hogy a C++ és a Rust nagyon jól együtt tud működni olyan eszközöknek köszönhetően, mint a cxx, autocxx bindgen, cbindgen, diplomat és (kísérleti) crubit. Vannak azonban korlátok is. Arra számíthatunk, hogy ezeknek a korlátoknak az alakja idővel megváltozik az új vagy továbbfejlesztett eszközökkel, de az itt hozott döntések és leírások a technológia jelenlegi állásán alapulnak.

A döntés a memóriahibák megjelenésének megakadályozását célzó kezdeményezés részeként jött létre a Chrome kódbázisában. A két évvel ezelőtti statisztikák szerint a Chromium kritikus és veszélyes biztonsági problémáinak 70%-a memóriahibákra vezethető vissza.

A Rust nyelv használata, amely a biztonságos memóriakezelésre összpontosít és automatikus memóriakezelést biztosít, csökkenti az olyan problémák által okozott sebezhetőségek kockázatát, mint például egy memóriaterület elérése annak felszabadítása után és a puffer túlcsordulása.

A Rust Chromiumra való bevezetésének célja, hogy egyszerűbb (nincs IPC) és biztonságosabb (általánosságban kevésbé bonyolult C++, nincs sandbox memória biztonsági hiba) megoldást nyújtson a kettős szabálynak való megfelelésre, a fejlesztés felgyorsítása érdekében (kevesebb kód írható). , kevesebb tervezési dokumentum, kevesebb biztonsági javítás) és a Chrome biztonságának javítása (több kódsor biztonsági hibák nélkül a memóriában, alacsonyabb kódhiba-sűrűség). Ezenkívül a vállalat biztos abban, hogy harmadik fél Rust könyvtárait használhatjuk e cél eléréséhez.

2022 elején a Chromium csapata már kísérletezett a Rusttal és néhány hónap múlva arra a következtetésre jutott hogy a nyelv kezdetben alkalmatlan C++ helyettesítésére olyan aszinkron kóddal rendelkező összetett feladatoknál, amelyeknek a meglévő kóddal együtt kell működniük.

Ezért, a Rust in Chromium tervezett használata kezdetben egyértelműen korlátozott. Egyrészt az interop csak egy irányba megy: a C++-tól a Rustig. Másrészt kezdetben csak harmadik féltől származó könyvtárak használata engedélyezett. Ezek önálló összetevőként működnek, és függetlenek a Chromium belső összetevőitől. A könyvtáraknak rendelkezniük kell egy egyszerű API-val az adott feladathoz. A Chromium csapata ezután megvizsgálja a könyvtárakat.

Végül érdemes megemlíteni, hogy ilyen támogatás hozzáadása a Chromiumhoz lehetővé teszi a Rust kód áthelyezését a Chrome binárisokba jövő évtől. A döntés elsősorban a biztonság kérdésével foglalkozik: a Rust nagyobb biztonságot nyújt a memóriába íráskor, mint a C++, és tiltja az olyan potenciálisan káros viselkedéseket, mint az íratlan változók olvasása, a tömbök által meghatározott határokon túli hozzáférés, a null vagy érvénytelen mutatók hivatkozásának megszüntetése, felülírt iterátorok használata. .

Ha többet szeretne megtudni róla, tájékozódhat a részletekről A következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.