Në kernelin Linux 6.18 është pranuar implementimi Binder IPC për Android, i shkruar në Rust

Në kodin themelor të kernelit Linux, mbi të cilin formohet versioni 6.18, është pranuar implementimi i mekanizmit të komunikimit ndërprocesor Binder, i shkruar në Rust. Binder përdoret në Android për të organizuar ndërveprimin midis proceseve dhe thirrjen e metodave nga distanca (një proces Android mund të thërrasë një metodë ose funksion në një proces tjetër Android, duke përdorur Binder për identifikimin, thirrjen dhe kalimin e argumenteve ndërmjet proceseve). Kodi i Binder është ridizajnuar në Rust si pjesë e një projekti për forcimin e sigurisë, promovimin e praktikave të sigurt të programimit dhe përmirësimin e efikasitetit të identifikimit të problemeve me menaxhimin e memories në Android (rreth 70% e të gjitha vulnerabiliteteve të rrezikshme të zbuluara në Android shkaktohen nga gabime në menaxhimin e memories).

Përdorimi i Rust ka lejuar zgjidhjen e disa problemeve me të cilat përballeshin zhvilluesit e Binder, duke përfshirë gabime të lidhura me numërimin e referencave, bllokimet dhe kontrollin e kufijve, si dhe për të reduktuar ndjeshëm kompleksitetin e trajtimit të gabimeve. Implementimi i Binder në Rust është i ngjashëm në funksionalitet me versionin origjinal në gjuhën C, kalon të gjitha testet AOSP (Projekti i Burimeve të Hapura Android) dhe mund të përdoret për të krijuar versione funksionale të firmware-it Android. Pavarësisht mundësive të avancuara dhe mbështetjes për objekte me semantikë të komplikuar të pronësisë, driveri në Rust rezultoi më i vogël se versioni në C - 5.5 kundrejt 5.8 mijë rreshtave të kodit.

Në përshkrimin e commit-it, autori përmend motivet e mëposhtme për ridizenjimin e Binder:

  • Binder ka ekzistuar pĂ«r 15 vjet dhe gjatĂ« kĂ«saj kohe funksionaliteti dhe kompleksiteti i tij janĂ« rritur ndjeshĂ«m - projekti ndodhet nĂ« ndĂ«rfaqen e tĂ« gjitha komponenteve tĂ« Android dhe mbulon shumĂ« detyra qĂ« kalojnĂ« pĂ«rtej IPC:
    • analizĂ« dhe transformim tĂ« saktĂ« tĂ« pĂ«rmbajtjes sĂ« transaksioneve, tĂ« cilat mund tĂ« pĂ«rmbajnĂ« disa objekte tĂ« llojeve tĂ« ndryshme (p.sh., tregues, deshifrues skedarĂ«sh), qĂ« ndĂ«rveprojnĂ« me njĂ«ri-tjetrin;
    • kontrolli i madhĂ«sisĂ« sĂ« grupeve tĂ« threads nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit dhe sigurimi i caktimit tĂ« transaksioneve nĂ« threads nĂ« mĂ«nyrĂ« qĂ« tĂ« shmangen bllokimet reciproke kur threads nĂ« grup shterojnĂ«;
    • ndjekja e numĂ«ruesve tĂ« referencave tĂ« objekteve qĂ« ndahen nga disa procese, duke dĂ«rguar saktĂ«sisht ndryshimet e numĂ«ruesve tĂ« referencave midis proceseve;
    • pĂ«rpunimi i skenarĂ«ve tĂ« shumtĂ« tĂ« ndodhjes sĂ« gabimeve dhe kombinimi i 13 bllokimeve tĂ« ndryshme, 7 numĂ«ruesve tĂ« lidhjeve dhe variablave atomikĂ«. Gjithashtu, ai duhet tĂ« kryejĂ« detyra tĂ« tilla sa mĂ« shpejt dhe saktĂ« tĂ« jetĂ« e mundur.
  • NĂ« kodin e vjetĂ«r u grumbullua njĂ« borxh teknik i dukshĂ«m, i cili e komplikon kaq shumĂ« si gjetjen e gabimeve ashtu edhe zhvillimin e mĂ«tejshĂ«m. PĂ«r shembull, nĂ« bĂ«rthamĂ« hasen funksione tĂ« mĂ«dha me mĂ« shumĂ« se njĂ« mijĂ« rreshta kodi, metoda tĂ« dyshimta tĂ« trajtimit tĂ« gabimeve dhe struktura tĂ« ngatĂ«rruara.
  • Binder Ă«shtĂ« njĂ« komponent kritik pĂ«r sigurinĂ« e Android, pasi elementet e platformĂ«s qĂ« punojnĂ« nĂ« mjedise tĂ« izoluara si procesi i renderimit nĂ« Chrome dhe SW Codec kanĂ« akses tĂ« drejtpĂ«rdrejtĂ« tek ai, dhe njĂ« dobĂ«si nĂ« Binder do tĂ« mund tĂ« anashkalonte izolimin. Kompleksiteti i lartĂ« sĂ« bashku me borxhin teknik e vĂ«shtirĂ«sojnĂ« shumĂ« ruajtjen e njĂ« niveli tĂ« lartĂ« sigurie nĂ« Binder.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster