
UGoogle sele esebenza ngokufuduka kwamacandelo ahlukeneyo e-Android ukuya kwiRust
Kwiinyanga ezininzi ngoku, Siye sabelana ngezinye zeendaba apha kwiblogi iimbalasane ngenkxaso nolwamkelo oluye lwanalo Umhlwa kwiiprojekthi ezahlukeneyo kunye nophuhliso, uninzi lwazo zinobunzima obunzima, yithi iLinux, Windows kunye ne-Android.
Ngaphandle kokwamkelwa okukhulu ngabafana abakhulu, ukutshintshela kwiRust akukho lula, kuba nokuba yamkelwe njengolwimi lwesibini lwenkqubo kwiLinux Kernel, kwafuneka ukuba idlule kwizinto ezimbalwa ukuze uLinus Torvalds azame. imvume.
Kwimeko kaGoogle, oku akukhange kube yinto eyahlukileyo kwaye kwiinyanga ezininzi ngoku, uGoogle uye wazisa iRust kwiiprojekthi zayo ezininzi kwaye. Android yenye yazo kwaye inqanaba lokufuduka elilawulwa ngokufanelekileyo liye laqhutywa, ekubeni njengenxalenye yemizamo yayo yokuqinisa ukhuseleko lwamacandelo abalulekileyo esoftware yeqonga, ngoku UGoogle ubhengeze ukuba uwugqibile umsebenzi wokufuduka ye-firmware "I-Android Virtualization Framework's ekhuselweyo iVM (pVM)" ukuya kwiRust.
Le firmware Isetyenziselwa ukuququzelela ukusebenza koomatshini benyani abaqaliswe yi-pVM hypervisor evela kwi-Android. Ngaphambili, i-firmware yabhalwa kwi-C kwaye yaphunyezwa phezulu kwe-U-Boot bootloader, apho ubuthathaka bekhowudi obubangelwa iingxaki zememori zifunyenwe ngaphambili.
Isiphathamandla I-pVM ithatha ulawulo kwinqanaba lokuqala lokuqalisa y inikeza ukwahlulwa okupheleleyo kwenkumbulo yomatshini wenyani kwindawo engqonge inginginya, ukuthintela ufikelelo olusuka kwisixokelelwano senginginya ukuya koomatshini abakhuselweyo abaqhuba idata enovakalelo. I-pvmfm (iFirmware yoMatshini oKhuselweyo oKhuselweyo) ithatha ulawulo ngoko nangoko emva kokuqalisa umatshini wenyani, iqinisekisa imeko-bume eyenziweyo kwaye igqibe ekubeni ilahle ukuqala ukuba iingxaki zemfezeko zichongiwe okanye ivelisa isatifikethi sokuqalisa senkqubo yeendwendwe ukuba ikhonkco lentembeko.
Ukubhalwa kwakhona kwe Umhlwa wenza kube lula kwaye kukhuseleke ngakumbi ukuthobela "umgaqo wesibini" kaGoogle ukugcina amacandelo Android inkqubo ekhuselekileyo. Ngokwalo mgaqo, nayiphi na ikhowudi eyongeziweyo kufuneka ihlangabezane neemeko ezingaphezulu kwezibini ezintathu: sebenza ngedatha yegalelo elingaqinisekanga, sebenzisa ulwimi lweprogram olungakhuselekanga (C / C ++), kwaye uqhube ngamalungelo aphakamileyo. Lo mgaqo uthetha ukuba ikhowudi yokucubungula idatha yangaphandle kufuneka incitshiswe ibe ngamalungelo amancinci (odwa) okanye ibhalwe ngolwimi olukhuselekileyo lweprogram. Ngokwezibalo zikaGoogle, malunga ne-70% yazo zonke izinto ezichongiweyo ezinobungozi kwi-Android zibangelwa ziimpazamo xa usebenza ngememori.
Phakathi kobunzima obuvela kwinkqubo yokuphuhlisa amacandelo aphantsi njengabalawuli kulwimi lwe-Rust, imfuneko yokusebenza kunye nezikhombisi kwimo engakhuselekanga ikhankanywe, ekubeni i-Rust idalwe ngokusetyenziswa kwememori eyabelwe ngolwimi engqondweni. Umhlwa.
Phakathi kwezinto ezingalunganga, Kukwafanelekile ukugqamisa i Isidingo sophuculo lwesivakalisi sokufikelela kwiindawo zesakhiwo kunye nezalathisi zoluhlu ngokusebenzisa izikhombisi ezilula ngaphandle kokudala iireferensi, kunye nokulinganiselwa ekudaleni amakhonkco akhuselekileyo kwimisebenzi engakhuselekanga enokubangela ukuziphatha okungachazwanga kwaye ayikwazi ukutshekishwa ngumqambi.
Kuyafaneleka ukukhankanya ukuba i-firmware entsha ibhalwe kwakhona kwi-Rust ifakwe kwi-Android 14 kunye namathala eencwadi endalo yonke adalwe ngexesha lenkqubo yophuhliso lwe-firmware apakishwe njengepakethe kwaye afakwe kuluntu lwaseRust. Isiphumo sobungakanani bekhowudi xa kuthelekiswa nohlobo lwangaphambili lwe-firmware ye-pVM ethathe i-220 kB, ikhowudi entsha ithatha i-460 kB, kodwa iimpawu ezintsha ezongeziweyo kuguqulelo olubhalwe ngokutsha, enkosi apho kwakunokwenzeka ukulahla amanye amacandelo asetyenziswe ngexesha lokuqalisa.
Ngenxa yoko, ubungakanani obupheleleyo bawo onke amacandelo amadala kunye namatsha e-trunk aye anokuthelekiswa. Kufuneka kuqatshelwe ukuba xa ubukhulu bubaluleke ngaphezu kokusebenza, iziphumo ezifaniswa nezo zolwimi lwe-C zinokufezekiswa ngokuvumela iindlela ezongezelelweyo zokuphucula ubungakanani kwi-compiler, ukulahla ukuxhomekeka okungadingekile, kunye nokusebenzisa iifomathi zentambo.
Gqibela ukuba unomdla wokwazi okungakumbi ngayo, ungazijonga iinkcukacha kwi ukulandela ikhonkco.