SoLo projekts attīsta sistēmas so bibliotēku ielādētāju pilnīgi statiskām Linux programmām

Tika publicēts SoLo projekts, kas ļauj pilnīgi statiskām Linux programmām, kas izveidotas ar musl, ielādēt caur dlopen() sistēmā instalētās glibc bibliotēkas, galvenokārt GPU draiverus. Parasti statiskā kompilācija ir nesaderīga ar Vulkan un OpenGL draiveriem, kurus distribūcijas piegādā kā koplietošanas bibliotēkas, izstrādātas ar glibc. SoLo novērš šo ierobežojumu, izmantojot iebūvēto izpildāmā faila ELF ielādētāju un starpslāni, kas transkribē glibc izsaukumus musl procesa laikā — pats glibc procesā neielādējas, otrā libc procesā neparādās. Kods ir rakstīts C++ valodā un tiek izplatīts saskaņā ar MIT licenci.

Repozitorijā ir vizuāls piemērs: statisks izpildāmais fails, kurā nav ne interpretētāja, ne dinamiskās sekcijas, parastajā veidā atrod instalēto sistēmā draiveri, ielādē to kopā ar atkarībām, izpilda aprēķinu šematu un saglabā rezultātu PNG formātā. Nepārtraukto integrāciju ietvaros piemērs tiek pārbaudīts uz Alpine, Fedora un Ubuntu ar Lavapipe pakotnēm no šo distribūciju noklusējuma repozitorijiem. Pieeja jau tiek izmantota praksē — tā veido termināļa emulatora Shitty izlaišanas versijas.

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster