Google nastavlja svoj rad na prenosu Androida na Rust 

Rust-Android

Google već radi na migraciji različitih Android komponenti na Rust

Već nekoliko mjeseci, Ovdje smo na blogu podijelili neke od vijesti ističe podršku i prihvatanje koju je imao Rđa u različitim projektima i razvojima, od kojih su mnogi teškaši, recimo Linux, Windows, pa čak i Android.

Uprkos velikom prihvatanju od strane velikih momaka, promena na Rust nije laka, jer čak i da bi bio prihvaćen kao drugi programski jezik u Linux kernelu, morao je da prođe kroz dosta stvari da bi Linus Torvalds pokušao. odobrenje.

U slučaju Google-a, to nije izuzetak i već nekoliko mjeseci Google je uveo Rust u mnoge svoje projekte i android je jedna od njih iu kojoj je sprovedena prilično kontrolisana faza migracije, budući da je u sklopu nastojanja da ojača sigurnost kritičnih softverskih komponenti platforme, sada Google je objavio da je završio posao migracije firmvera "VM (pVM) zaštićeni Android Virtualization Framework" u Rust.

Ovaj firmver Koristi se za organizaciju rada virtuelnih mašina koje pokreće pVM hipervizor sa Androida. Ranije je firmver napisan u C i implementiran na U-Boot bootloader, u čijem su kodu ranije pronađene ranjivosti uzrokovane problemima s memorijom.

Hipervizor pVM preuzima kontrolu u ranoj fazi pokretanja y pruža potpunu izolaciju memorije virtuelne mašine od okruženja domaćina, sprečavanje pristupa sa host sistema zaštićenim virtuelnim mašinama koje obrađuju osetljive podatke. Firmver pvmfm (Zaštićeni firmver virtuelne mašine) preuzima kontrolu odmah nakon pokretanja virtuelne mašine, verifikuje generisano okruženje i odlučuje da prekine pokretanje ako se otkriju problemi sa integritetom ili generiše sertifikat za pokretanje sistema za gostujući sistem ako postoji lanac poverenja.

Prepisivanje Rust čini lakšim i sigurnijim pridržavanje Googleovog "pravila dva" kako bi komponente Android sistema bile bezbedne. Prema ovom pravilu, bilo koji dodat kod mora ispuniti najviše dva od tri uslova: rad s nepotvrđenim ulaznim podacima, korištenje nesigurnog programskog jezika (C/C++) i pokretanje s povišenim privilegijama. Ovo pravilo implicira da kod za obradu eksternih podataka mora biti sveden na najmanje privilegije (izolovan) ili napisan u bezbednom programskom jeziku. Prema Google statistici, otprilike 70% svih identificiranih opasnih ranjivosti u Androidu nastaje zbog grešaka pri radu s memorijom.

Među poteškoćama koje se javljaju u procesu razvoja komponenti niskog nivoa kao što su kontroleri u jeziku Rust, spominje se potreba za radom sa pokazivačima u nesigurnom načinu rada, budući da je Rust stvoren razmišljajući o korištenju memorije dodijeljene u jeziku. .

Među nedostacima, Također je vrijedno istaknuti potreba za poboljšanom sintaksom za pristup poljima strukture i indeksima niza kroz jednostavne pokazivače bez kreiranja referenci, kao i ograničenja za kreiranje sigurnih veza na nesigurne operacije koje mogu uzrokovati nedefinirano ponašanje i koje ne može provjeriti kompajler.

Vrijedi napomenuti da je novi firmver prepisan u Rust uključeno u Android 14 a univerzalne biblioteke kreirane tokom procesa razvoja firmvera se pakuju kao paketi i prenose u Rust zajednicu. Rezultirajuća veličina koda u poređenju sa prethodnom verzijom pVM firmvera koja je zauzimala 220 kB, novi kod zauzima 460 kB, ali nove funkcije dodane u prepisanu verziju, zahvaljujući kojoj je bilo moguće riješiti se nekih drugih komponenti koje se koriste prilikom pokretanja.

Kao rezultat toga, ukupna veličina svih starih i novih komponenti prtljažnika pokazala se usporedivom. Treba napomenuti da kada je veličina važnija od performansi, rezultati uporedivi sa onima u jeziku C mogu se postići omogućavanjem dodatnih modova optimizacije veličine u kompajleru, odbacivanjem nepotrebnih zavisnosti i ne korišćenjem formatera stringova.

Konačno ako ste zainteresirani da saznate više o tome, detalje možete provjeriti u sljedeći link.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.