Google meneruskan kerjanya untuk mengalihkan Android ke Rust 

Rust-Android

Google sedang mengusahakan pemindahan komponen Android yang berbeza kepada Rust

Selama beberapa bulan ini, Kami telah berkongsi beberapa berita di sini di blog sorotan tentang sokongan dan penerimaan yang dimilikinya Karat dalam projek dan pembangunan yang berbeza, yang mana kebanyakan mereka adalah kelas berat, katakan Linux, Windows dan juga Android.

Walaupun mendapat sambutan hebat oleh orang besar, perubahan kepada Rust bukanlah mudah, kerana walaupun untuk diterima sebagai bahasa pengaturcaraan kedua dalam Linux Kernel, ia perlu melalui beberapa perkara untuk Linus Torvalds mencubanya. kelulusan.

Dalam kes Google, ini tidak menjadi pengecualian dan selama beberapa bulan sekarang, Google telah memperkenalkan Rust dalam banyak projek dan Android adalah salah satu daripadanya dan di mana peringkat penghijrahan yang cukup terkawal telah dijalankan, kerana sebagai sebahagian daripada usahanya untuk mengukuhkan keselamatan komponen perisian kritikal platform, kini Google mengumumkan bahawa ia telah menyelesaikan kerja migrasi daripada perisian tegar "VM (pVM) yang dilindungi Android Virtualization Framework" kepada Rust.

Firmware ini Ia digunakan untuk mengatur pengendalian mesin maya yang dilancarkan oleh hipervisor pVM daripada Android. Sebelum ini, perisian tegar telah ditulis dalam C dan dilaksanakan di atas pemuat but U-Boot, di mana kelemahan kod yang disebabkan oleh masalah ingatan ditemui sebelum ini.

Pegawai penyelia pVM mengambil kawalan pada peringkat awal permulaan y menyediakan pengasingan lengkap memori mesin maya daripada persekitaran hos, menghalang akses daripada sistem hos kepada mesin maya yang dilindungi yang memproses data sensitif. Perisian tegar pvmfm (Perisian Tegar Mesin Maya Dilindungi) mengambil kawalan serta-merta selepas but mesin maya, mengesahkan persekitaran yang dijana dan memutuskan untuk membatalkan but jika masalah integriti dikesan atau menjana sijil but untuk sistem tetamu jika rantaian amanah.

Penulisan semula Karat menjadikannya lebih mudah dan selamat untuk mematuhi "peraturan dua" Google untuk memastikan komponen sistem Android selamat. Mengikut peraturan ini, sebarang kod tambahan mesti memenuhi tidak lebih daripada dua daripada tiga syarat: bekerja dengan data input yang tidak sah, menggunakan bahasa pengaturcaraan yang tidak selamat (C/C++) dan dijalankan dengan keistimewaan yang tinggi. Peraturan ini menunjukkan bahawa kod untuk memproses data luaran mesti dikurangkan kepada keistimewaan paling sedikit (terpencil) atau ditulis dalam bahasa pengaturcaraan yang selamat. Menurut statistik Google, kira-kira 70% daripada semua kelemahan berbahaya yang dikenal pasti dalam Android adalah disebabkan oleh ralat semasa bekerja dengan memori.

Antara kesukaran yang timbul dalam proses membangunkan komponen peringkat rendah seperti pengawal dalam bahasa Rust, keperluan untuk bekerja dengan penunjuk dalam mod tidak selamat disebut, kerana Rust dicipta dengan menggunakan memori yang diperuntukkan dalam bahasa dalam fikiran. karat.

Antara keburukan, Ia juga bernilai menyerlahkan keperluan untuk sintaks yang lebih baik untuk mengakses medan struktur dan indeks tatasusunan melalui petunjuk mudah tanpa membuat rujukan, serta had untuk mencipta pautan selamat pada operasi tidak selamat yang boleh menyebabkan tingkah laku tidak ditentukan dan tidak boleh disemak oleh pengkompil.

Perlu dinyatakan bahawa perisian tegar baru ditulis semula dalam Rust disertakan dalam Android 14 dan perpustakaan universal yang dicipta semasa proses pembangunan perisian tegar dibungkus sebagai pakej dan dialihkan kepada komuniti Rust. Saiz kod yang terhasil berbanding versi sebelumnya bagi perisian tegar pVM yang menduduki 220 kB, kod baharu menduduki 460 kB, tetapi ciri baharu ditambah pada versi yang ditulis semula, berkat yang mungkin untuk menyingkirkan beberapa komponen lain yang digunakan semasa but.

Akibatnya, jumlah saiz semua komponen batang lama dan baru ternyata setanding. Perlu diingat bahawa apabila saiz lebih penting daripada prestasi, hasil yang setanding dengan bahasa C boleh dicapai dengan mendayakan mod pengoptimuman saiz tambahan dalam pengkompil, membuang kebergantungan yang tidak perlu dan tidak menggunakan pemformat rentetan.

Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butiran di pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.