Das Projekt SoLo entwickelt einen Bootloader für systemweite so-Bibliotheken für vollständig statische Linux-Programme.

Das Projekt SoLo ermöglicht es vollständig statischen Linux-Programmen, die mit musl erstellt wurden, über dlopen() die im System installierten glibc-Bibliotheken, insbesondere GPU-Treiber, zu laden. Normalerweise ist eine statische Verknüpfung mit Vulkan- und OpenGL-Treibern, die von den Distributionen als gemeinsam genutzte Bibliotheken, die mit glibc erstellt wurden, bereitgestellt werden, nicht kompatibel. SoLo beseitigt diese Einschränkung durch einen im ELF-Binärformat integrierten Loader und eine Schicht, die glibc-Aufrufe in die musl-Laufzeit des Prozesses übersetzt – glibc wird dabei nicht in den Prozess geladen und es erscheint keine zweite libc im Prozess. Der Code ist in C++ geschrieben und wird unter der MIT-Lizenz vertrieben.

Im Repository ist ein anschauliches Beispiel enthalten: eine statische ausführbare Datei, die keinen Interpreter und keinen dynamischen Abschnitt enthält, findet den im System installierten Treiber auf die für Vulkan typische Weise, lädt ihn zusammen mit den Abhängigkeiten, führt den Berechnungs-Shader aus und speichert das Ergebnis in PNG. Im Rahmen der kontinuierlichen Integration wird das Beispiel auf Alpine, Fedora und Ubuntu mit den Lavapipe-Paketen aus den offiziellen Repositories dieser Distributionen getestet. Der Ansatz wird bereits praktisch eingesetzt - er bildet die Release-Builds des Terminalemulators Shitty.

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster