Již několik měsíců, Některé novinky jsme sdíleli zde na blogu zdůrazňuje podporu a přijetí, které má Rez v různých projektech a vývoji, z nichž mnohé jsou těžké váhy, řekněme Linux, Windows a dokonce i Android.
Navzdory velkému přijetí velkými kluky není změna na Rust snadná, protože dokonce aby byl přijat jako druhý programovací jazyk v linuxovém jádře, musel projít několika věcmi, aby to Linus Torvalds zkusil. odsouhlasení.
V případě Google to není výjimkou a Google již několik měsíců představuje Rust v mnoha svých projektech a Android je jedním z nich a ve kterém byla provedena poměrně kontrolovaná fáze migrace, protože v rámci svého úsilí o posílení bezpečnosti kritických softwarových komponent platformy nyní Google oznámil, že dokončil práci na migraci firmwaru „Chráněný virtuální počítač Android Virtualization Framework (pVM)“ na Rust.
Tento firmware Slouží k organizaci provozu virtuálních strojů spouštěných hypervisorem pVM z Androidu. Dříve byl firmware napsán v C a implementován nad zavaděčem U-Boot, v jehož kódu byly dříve nalezeny zranitelnosti způsobené problémy s pamětí.
Hypervisor pVM přebírá kontrolu v rané fázi spuštění y poskytuje úplnou izolaci paměti virtuálního stroje od hostitelského prostředí, zamezení přístupu z hostitelského systému k chráněným virtuálním strojům, které zpracovávají citlivá data. Firmware pvmfm (Protected Virtual Machine Firmware) převezme kontrolu ihned po spuštění virtuálního stroje, ověří vygenerované prostředí a rozhodne se přerušit spouštění, pokud jsou zjištěny problémy s integritou, nebo vygeneruje spouštěcí certifikát pro hostující systém, pokud se jedná o řetězec důvěry.
Přepisování Rust usnadňuje a je bezpečnější dodržovat „pravidlo dvou“ společnosti Google aby byly součásti systému Android v bezpečí. Podle tohoto pravidla nesmí jakýkoli přidaný kód splňovat více než dvě ze tří podmínek: pracovat s neověřenými vstupními daty, používat nebezpečný programovací jazyk (C/C++) a spouštět se zvýšenými oprávněními. Toto pravidlo znamená, že kód pro zpracování externích dat musí být omezen na nejmenší oprávnění (izolován) nebo napsán v zabezpečeném programovacím jazyce. Podle statistik Google je přibližně 70 % všech identifikovaných nebezpečných zranitelností v Androidu způsobeno chybami při práci s pamětí.
Mezi potížemi, které vznikají v procesu vývoje nízkoúrovňových komponent, jako jsou řadiče v jazyce Rust, je zmíněna potřeba pracovat s ukazateli v nebezpečném režimu, protože Rust je vytvořen s ohledem na použití paměti alokované v jazyce. Rez.
Mezi nevýhody patří Za zmínku také stojí potřeba vylepšené syntaxe pro přístup k polím struktury a indexům polí prostřednictvím jednoduchých ukazatelů bez vytváření odkazů, stejně jako omezení vytváření bezpečných odkazů na nebezpečné operace, které mohou způsobit nedefinované chování a kompilátor je nemůže zkontrolovat.
Za zmínku stojí, že nový firmware přepsaný v Rustu součástí systému Android 14 a univerzální knihovny vytvořené během procesu vývoje firmwaru jsou zabaleny jako balíčky a přeneseny do komunity Rust. Výsledná velikost kódu ve srovnání s předchozí verzí firmwaru pVM, která zabírala 220 kB, nový kód zabírá 460 kB, ale nové funkce přidané do přepsané verze, díky čemuž bylo možné se zbavit některých dalších komponent používaných při bootování.
Ve výsledku se ukázalo, že celková velikost všech starých a nových součástí kufru je srovnatelná. Je třeba poznamenat, že když je velikost důležitější než výkon, lze dosáhnout výsledků srovnatelných s výsledky jazyka C povolením dalších režimů optimalizace velikosti v kompilátoru, odstraněním zbytečných závislostí a nepoužíváním formátovačů řetězců.
Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následující odkaz.