Rust inosanganisirwa pakati pemitauro mikuru yekusimudzira Android platform

Google yakazivisa kubatanidzwa kweRust programming mutauro pakati pemitauro inotenderwa kugadzira iyo Android platform. Iyo Rust mutauro compiler yakaverengerwa mu Android sosi yemuti kumashure muna 2019, asi rutsigiro rwemutauro uyu rwakaramba ruchiyedza. Zvimwe zvekutanga Rust zvikamu zvakarongerwa Android zvinosanganisira mitsva yekushandisa yeBinder interprocess yekutaurirana michina uye iyo Bluetooth stack.

Kuunzwa kweRust kwakaitwa sechikamu chepurojekiti yekusimbisa chengetedzo, kukurudzira nzira dzakachengeteka dzekuronga uye kuwedzera kugona kwekuona matambudziko kana uchishanda nendangariro mu Android. Zvinocherechedzwa kuti inosvika makumi manomwe muzana ezvese zvine njodzi kusagadzikana kwakaonekwa mu Android kunokonzerwa nekukanganisa kana uchishanda nendangariro. Kushandisa Rust, iyo inotarisana nekuchengetedza ndangariro uye otomatiki ndangariro manejimendi, kunoderedza njodzi yekusagadzikana kunokonzerwa nekukanganisa kwendangariro sekunge mushure-yemahara kupinda uye buffer overruns.

Rust inomanikidza kuchengetedza ndangariro panguva yekuunganidza kuburikidza nereferensi yekutarisa, muridzi wechinhu uye chinhu chehupenyu hwese tracking (scopes), uye nekuongorora iko kurongeka kwendangariro kunowanikwa panguva yekumhanya. Ngura inopawo dziviriro kubva pahuwandu hwekufashukira, inoda kuti misiyano itange isati yashandiswa, ine zvirinani kubata muraibhurari yakajairwa, inoshandisa iyo pfungwa yezvisingachinjiki mareferensi uye akasiyana nekusarudzika, uye inopa yakasimba static typing kuderedza zvikanganiso zvine musoro.

Mu Android, kuchengetedza ndangariro kunopihwa mumitauro yakatotsigirwa Kotlin neJava, asi haina kukodzera kuvandudza masisitimu masystem nekuda kwepamusoro. Rust inoita kuti zvikwanisike kuita basa padyo neC uye C ++ mitauro, iyo inobvumira kuti ishandiswe kugadzira yakaderera-chikamu chepuratifomu uye zvikamu zvekudyidzana nehardware.

Kuti ive nechokwadi chekuchengetedzwa kweC uye C++ kodhi, Android inoshandisa sandbox yekuzviparadzanisa nevamwe, static ongororo, uye fuzzing kuyedza. Kugona kwekuzviparadzanisa nejecha rejecha kune mashoma uye asvika pamuganho wekugona kwavo (kumwe kupatsanurwa kuita maitiro hazvigoneke kubva pakuona kwekushandisa zviwanikwa). Kuganhurirwa kwekushandisa bhokisi rejecha kunosanganisira kudhura kukuru kwepamusoro uye kuwedzera kwechiyeuchidzo kushandiswa kunokonzerwa nekudiwa kwekuita maitiro matsva, pamwe nekumwe kunonoka kunoenderana nekushandiswa kweIPC.

Panguva imwecheteyo, bhokisi rejecha haribvisi kusagadzikana mukodhi, asi rinongoderedza njodzi uye kuomesa kurwisa, sezvo kushandiswa kunoda kuzivikanwa kwete imwe chete, asi akati wandei. Nzira dzakavakirwa pakuongorora kodhi dzinogumira pakuti kuti uone zvikanganiso, zvinodikanwa kugadzira mamiriro ekuti dambudziko rizviratidze. Hazvigoneki kuvhara zvese zvinogoneka sarudzo, saka zvikanganiso zvakawanda hazvionekwe.

Nezve masystem system mu Android, Google inoteedzera "mutemo wezviviri", zvichienderana nekuti chero yakawedzerwa kodhi haifanirwe kusangana nemamiriro maviri kubva matatu: kushanda neiyo isina kuvharwa data yekuisa, uchishandisa isina kuchengetedzeka programming mutauro (C/C ++), uye kumhanya pasina kuomarara bhokisi rejecha (kuva neropafadzo dzakakwirira). Mutemo uyu unoreva kuti kodhi yekugadzirisa data yekunze inofanira kuderedzwa kusvika kune ropafadzo shoma (yakasarudzika) kana kunyorwa mumutauro wakachengeteka wechirongwa.

Google haina chinangwa chekunyora kodhi iripo yeC/C++ muRust, asi inoronga kushandisa mutauro uyu kugadzira kodhi nyowani. Zvine musoro kushandisa Rust yekodhi nyowani nekuti, nenhamba, mabhugi mazhinji anoonekwa mune nyowani kana ichangobva kuchinjwa kodhi. Kunyanya, ingangoita 50% yezvikanganiso zvakaonekwa mu Android zvinoonekwa mukodhi yakanyorwa isingasviki gore rapfuura.

Rust inosanganisirwa pakati pemitauro mikuru yekusimudzira Android platform


Source: opennet.ru

Voeg