Linuxi tuumasse 6.18 on vastu vÔetud Androidi Binder IPC teostus, mis on kirjutatud Rustis.

Linuxi tuumiku koodibaasi, mille pĂ”hjal loodakse versioon 6.18, on vastu vĂ”etud Binderi vaheprotsesside suhtlemise mehhanismi rakendus, mis on kirjutatud Rusti keeles. Binderit kasutatakse Androidis protsessidevahelise suhtlemise ja kaugekutsuvate meetodite korraldamiseks (ĂŒks Androidi protsess vĂ”ib kutsuda vĂ€lja meetodi vĂ”i funktsiooni teises Androidi protsessis, kasutades Binderit, et tuvastada, kutsuda ja edastada argumendid protsesside vahel). Binderi kood on Rustis ĂŒmber kirjutatud projekti raames, mille eesmĂ€rk on suurendada turvalisust, edendada turvalise programmeerimise praktikaid ja parandada mĂ€luhalduse probleemide tuvastamise efektiivsust Androidis (umbes 70% kĂ”ikidest Androidis tuvastatud ohtlikest haavatavustest on pĂ”hjustatud mĂ€luhalduse vigadest).

Rust'i kasutamine on vĂ”imaldanud lahendada mĂ”ned Binderi arendajate silmitsi seisnud probleemid, sealhulgas viitamise arvu loendamise, lukustuse ja piiride kontrollimisega seotud vead, samuti vĂ€hendada oluliselt vigade töötlemise keerukust. Binderi rakendus Rustis on funktsionaalsuse poolest samavÀÀrne algse C variandiga, lĂ€bides kĂ”ik AOSP (Android Open-Source Project) testid ja seda saab kasutada Androidi tööversioonide loomiseks. Hoolimata keerukatest vĂ”imalustest ja keeruliste omandi mĂ”istetega objektide toetamisest on Rustis tehtud draiver vĂ€iksem kui C variant — 5,5 versus 5,8 tuhat koodirida.

Commit'i kirjelduses mainib autor jĂ€rgmisi motiive Binderi ĂŒmber kirjutamiseks:

  • Binder, on arenenud juba 15 aastat ja selle aja jooksul on selle funktsionaalus ja keerukus oluliselt suurenenud — projekt asub kĂ”igi Androidi komponentide ristteel ja katab mitmeid ĂŒlesandeid, mis ĂŒletavad IPC piire:
    • Ă”ige analĂŒĂŒs ja tehingute sisu töötlemine, mis vĂ”ib sisaldada mitut erinevat tĂŒĂŒpi objekti (nt viitade, failikĂ€sitlejate), kes omavahel suhtlevad;
    • kasutajaruumi niitide basseinide suuruse kontroll ja tehingute mÀÀramine niitidele viisil, mis vĂ€ldib omaette lukustusi, kui basseinides olevad niidid on otsa saanud;
    • objektide viitamiselugemide jĂ€lgimine, mida jagavad mitmed protsessid, saates viitamise muutmine Ă”igesti protsesside vahel;
    • vea kaheksa viga tekkimise stsenaariumi kĂ€sitlemine ning 13 erineva blokeeringu, 7 lingi loenduri ja aatomiliste muutujate ĂŒhendamine. Selliseid ĂŒlesandeid peab ta tĂ€itma vĂ”imalikult kiiresti ja tĂ€pselt.
  • Vanasse koodi on kogunenud mĂ€rkimisvÀÀrne tehniline vĂ”lg, mis on keerukam nii vigade leidmisel kui ka edasises arenduses. NĂ€iteks tuumikus on suuri funktsioone ĂŒle tuhande koodirea, kahtlased veahaldusmeetodid ja keerulised struktuurid.
  • Binder on Androidi jaoks kriitilise tĂ€htsusega komponent, kuna platvormi elemendid, mis töötavad isoleeritud liivakasti keskkondades, nagu Chrome'i renderdustoiming ja SW Codec, pÀÀsevad sellele otse ligi ning Binderis olev haavatavus vĂ”imaldab mööda minna isoleerimisest. Suur keerukus koos tehnilise vĂ”laga teeb Binderi kĂ”rge turvataseme hoidmise vĂ€ga keeruliseks.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster