Rust Android plataforma garatzeko hizkuntza nagusien artean sartzen da

Google-k iragarri du Rust programazio lengoaia sartu duela Android plataforma garatzeko baimendutako lengoaien artean. Rust hizkuntzaren konpilatzailea Android iturburuen zuhaitzean sartu zen 2019an, baina hizkuntza honen laguntza esperimentala izaten jarraitu zuen. Android-erako aurreikusitako Rust lehen osagaietako batzuk Binder prozesuen arteko komunikazio mekanismoaren eta Bluetooth pilaren inplementazio berriak daude.

Rust-en sarrera segurtasuna indartzeko, programazio-teknika seguruak sustatzeko eta Android-en memoriarekin lan egitean arazoak identifikatzeko eraginkortasuna areagotzeko proiektu baten barruan egin zen. Kontuan izan da Android-en identifikatutako ahultasun arriskutsu guztien % 70 inguru memoriarekin lan egitean akatsek eragiten dutela. Memoriaren segurtasunean eta memoria automatikoaren kudeaketan zentratzen den Rust erabiliz, memoria-akatsek eragindako ahultasun arriskua murriztuko da, hala nola doako sarbidea eta buffer-a gainditzea.

Rust-ek memoriaren segurtasuna betetzen du konpilazio garaian erreferentzia-egiaztapenaren, objektuen jabetzaren eta objektuen bizitzaren jarraipenaren bidez (esparruak), eta exekuzioan memoria-sarbideen zuzentasuna ebaluatuz. Rust-ek zenbaki osoen gainezkatzeen aurkako babesa eskaintzen du, erabili aurretik aldagaien balioak abiarazi behar direla, liburutegi estandarrean erroreen kudeaketa hobea du, erreferentzia eta aldagai aldaezinen kontzeptua lehenespenez erabiltzen du eta idazketa estatiko sendoa eskaintzen du akats logikoak minimizatzeko.

Android-en, memoriaren segurtasuna dagoeneko onartzen diren Kotlin eta Java lengoaietan eskaintzen da, baina ez dira egokiak sistemaren osagaiak garatzeko gastu handia dela eta. Rust-ek C eta C++ lengoaietatik gertuko errendimendua lortzea ahalbidetzen du, eta horri esker, plataformaren maila baxuko zatiak eta hardwarearekin elkarreragiteko osagaiak garatzeko erabil daiteke.

C eta C++ kodearen segurtasuna bermatzeko, Android-ek sandbox isolamendua, analisi estatikoa eta proba lausoak erabiltzen ditu. Sandbox isolamenduaren gaitasunak mugatuak dira eta haien gaitasunen mugara iritsi dira (prozesuetan gehiago zatitzea ezinezkoa da baliabideen kontsumoaren ikuspuntutik). Sandbox erabiltzearen mugak gainkostu handiak eta prozesu berriak sortu beharrak eragindako memoria-kontsumoa areagotzea, baita IPC erabiltzearekin lotutako atzerapen gehigarriak ere.

Aldi berean, sandbox-ek ez ditu kodean ahultasunak ezabatzen, arriskuak murrizten eta erasoa zaildu besterik ez du egiten, ustiapenak ahultasun bat ez, hainbat ahultasun identifikatzea behar baitu. Kode proban oinarritutako metodoak mugatuak dira, akatsak identifikatzeko, arazoa agertzeko baldintzak sortu behar direlako. Ezin da aukera posible guztiak estali, beraz, akats asko oharkabean pasatzen dira.

Android-eko sistema-prozesuetarako, Google-k "biko araua" betetzen du, zeinaren arabera gehitutako edozein kodeek hiru baldintzaetatik bi baino gehiago bete behar dituzte: baliozkotu gabeko sarrerako datuekin lan egitea, seguru ez den programazio-lengoaia (C/C++) erabiltzea eta sandbox isolamendu zorrotzik gabe exekutatzen (pribilegio altuak izatea). Arau honek esan nahi du kanpoko datuak prozesatzeko kodea gutxieneko pribilegioetara (isolatuta) murriztu behar dela edo programazio-lengoaia seguru batean idatzi behar dela.

Google-k ez du Rust-en lehendik dagoen C/C++ kodea berridatzi nahi, baina lengoaia hau erabiltzeko asmoa du kode berria garatzeko. Zentzuzkoa da Rust erabiltzea kode berrietarako, izan ere, estatistikoki, akats gehienak kode berrietan edo aldatu berritan agertzen dira. Bereziki, Android-en detektatu diren memoria-akatsen %50 inguru duela urtebete baino gutxiago idatzitako kodean detektatzen dira.

Rust Android plataforma garatzeko hizkuntza nagusien artean sartzen da


Iturria: opennet.ru

Gehitu iruzkin berria