SoLo projekts izstrādā sistēmas SO bibliotēkas ielādētāju pilnīgi statiskai Linux-programmas

SoLo projekts ir publicēts, ļaujot pilnībā statisku LinuxProgrammām, kas veidotas ar musl, ir jāielādē sistēmā instalētās glibc bibliotēkas, izmantojot dlopen() , galvenokārt GPU draiverus. Statiskā saistīšana parasti nav saderīga ar Vulkan un OpenGL draiveriem, kuru distribūcijas tiek piegādātas kā koplietojamas bibliotēkas, kas veidotas ar glibc. SoLo pārvar šo ierobežojumu, izmantojot izpildāmajā failā iebūvētu ELF ielādētāju un slāni, kas tulko glibc izsaukumus musl procesa izpildlaikā. Pats glibc netiek ielādēts procesā, un procesam netiek pievienota otra libc. Kods ir rakstīts C++ valodā un izplatīts saskaņā ar MIT licenci.

Repozitorijā ir iekļauts vizuāls piemērs: statisks izpildāmais fails bez interpretētāja vai dinamiskās sadaļas izmanto standarta Vulkan metodi, lai atrastu sistēmā instalēto draiveri, ielādētu to kopā ar tā atkarībām, izpildītu aprēķinu ēnotāju un saglabātu rezultātu kā PNG failu. Nepārtrauktas integrācijas ietvaros piemērs tiek testēts uz Alpine, Fedora un Ubuntu ar Lavapipe pakotnēm no šo izplatījumu standarta krātuvēm. Šī pieeja jau tiek izmantota — tā tiek izmantota, lai izveidotu Shitty termināļa emulatora izlaiduma versijas.

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster