Ukugqwala kufakwe phakathi kwezilimi eziyinhloko zokuthuthukiswa kwenkundla ye-Android

I-Google isimemezele ukufakwa kolimi lwezinhlelo ze-Rust phakathi kwezilimi ezivunyelwe ukuthuthukisa inkundla ye-Android. I-Rust language compiler yafakwa esihlahleni somthombo we-Android emuva ngo-2019, kodwa ukusekelwa kwalolu limi kwahlala kuwukuhlola. Ezinye zezingxenye zokuqala ze-Rust ezihlelelwe i-Android zifaka ukusetshenziswa okusha kwendlela yokuxhumana ye-Binder interprocess kanye nesitaki se-Bluetooth.

Ukwethulwa kweRust kwenziwa njengengxenye yephrojekthi yokuqinisa ukuphepha, ukukhuthaza amasu okuhlela aphephile kanye nokukhulisa ukusebenza kahle kokuhlonza izinkinga lapho usebenza ngenkumbulo ku-Android. Kuyaphawulwa ukuthi cishe u-70% wabo bonke ubuthakathaka obuyingozi obukhonjwe ku-Android bubangelwa amaphutha lapho usebenza ngenkumbulo. Ukusebenzisa i-Rust, egxile ekuphepheni kwenkumbulo nasekulawuleni inkumbulo okuzenzakalelayo, kuzonciphisa ingcuphe yokuba sengozini ebangelwa amaphutha enkumbulo njengokufinyelela ngemva kwamahhala kanye nokugcwala kwebhafa.

Ukugqwala kuphoqelela ukuphepha kwenkumbulo ngesikhathi sokuhlanganisa ngokuhlolwa kwereferensi, ubunikazi bento kanye nokulandelela impilo yonke yento (izikophu), kanye nokuhlola ukulunga kokufinyelela kwenkumbulo ngesikhathi sokusebenza. I-Rust iphinde inikeze ukuvikeleka ekuchichimeni okuphelele, idinga ukuthi amanani aguquguqukayo aqaliswe ngaphambi kokusetshenziswa, ibe nokuphathwa kwamaphutha okungcono kulabhulali evamile, isebenzisa umqondo wezithenjwa ezingaguquleki nokuguquguqukayo ngokuzenzakalelayo, futhi inikeza ukuthayipha okuqinile okuqinile ukuze kuncishiswe amaphutha anengqondo.

Ku-Android, ukuphepha kwenkumbulo kunikezwa ngezilimi esezivele zisekelwa i-Kotlin ne-Java, kodwa azilungele ukuthuthukisa izingxenye zesistimu ngenxa yokuphakama okuphezulu. I-Rust yenza kube nokwenzeka ukufeza ukusebenza eduze nezilimi ze-C ne-C++, ezivumela ukuthi isetshenziselwe ukuthuthukisa izingxenye ezisezingeni eliphansi zeplathifomu kanye nezingxenye zokusebenzelana nehadiwe.

Ukuze kuqinisekiswe ukuvikeleka kwekhodi ye-C ne-C++, i-Android isebenzisa ukuhlukaniswa kwe-sandbox, ukuhlaziya okumile, nokuhlola okungaqondakali. Amandla okuhlukaniswa kwebhokisi lesihlabathi anomkhawulo futhi afinyelele umkhawulo wamakhono awo (ukuqhubeka nokuhlukana phakathi kwezinqubo akunakwenzeka ngokombono wokusetshenziswa kwensiza). Imikhawulo yokusebenzisa i-sandbox ihlanganisa izindleko ezinkulu kanye nokwenyuka kokusetshenziswa kwenkumbulo okubangelwa isidingo sokuzala izinqubo ezintsha, kanye nokubambezeleka okwengeziwe okuhlobene nokusetshenziswa kwe-IPC.

Ngesikhathi esifanayo, i-sandbox ayiqedi ukukhubazeka kukhodi, kodwa inciphisa kuphela izingozi futhi yenza kube nzima ukuhlasela, njengoba ukuxhashazwa kudinga ukukhonjwa kokukodwa, kodwa ukukhubazeka okuningana. Izindlela ezisekelwe ekuhlolweni kwekhodi zilinganiselwe ngoba ukuze kubonakale amaphutha, kuyadingeka ukudala izimo ukuze inkinga ibonakale. Akunakwenzeka ukumboza zonke izinketho ezingenzeka, ngakho-ke amaphutha amaningi awabonwa.

Ezinqubweni zesistimu ku-Android, i-Google ithobela "umthetho wokubili", ngokuya ngawo noma iyiphi ikhodi eyengeziwe akumelwe ihlangabezane nezimo ezingeqile kwezimbili kwezintathu: ukusebenza ngedatha yokufaka engaqinisekisiwe, kusetshenziswa ulimi lokuhlela olungaphephile (C/C++), kanye ukusebenza ngaphandle kokuhlukaniswa okuqinile kwebhokisi lesihlabathi (ukuba namalungelo aphakeme). Lo mthetho usikisela ukuthi ikhodi yokucubungula idatha yangaphandle kufanele yehliswe ibe amalungelo amancane (ihlukaniswe) noma ibhalwe ngolimi lokuhlela oluvikelekile.

I-Google ayihlosile ukubhala kabusha ikhodi ekhona kakade ye-C/C++ ku-Rust, kodwa ihlela ukusebenzisa lolu limi ukuze kwakhiwe ikhodi entsha. Kunengqondo ukusebenzisa i-Rust ukuthola ikhodi entsha ngoba, ngokwezibalo, izimbungulu eziningi zivela kukhodi entsha noma esanda kuguqulwa. Ikakhulukazi, cishe u-50% wamaphutha enkumbulo atholiwe ku-Android atholwa kukhodi ebhalwe ngaphansi konyaka odlule.

Ukugqwala kufakwe phakathi kwezilimi eziyinhloko zokuthuthukiswa kwenkundla ye-Android


Source: opennet.ru

Engeza amazwana