SoLo: Ein .so-Loader für statische Linux-Binaries
Solo – a .so loader for static Linux binaries
SoLo ist ein ELF-Loader und eine glibc-ABI-Brücke, die es vollständig statischen, mit musl gelinkten Binaries ermöglicht, zur Laufzeit die vorhandenen GPU-Treiber des Systems zu laden. Das Projekt demonstriert dies mit einem Vulkan-Beispiel, das einen Compute-Shader ausführt und das Ergebnis als PNG speichert. Der Loader unterstützt x86-64 und aarch64, löst Symbole mit Versionsinformationen auf, behandelt TLS und IFUNC und bietet eine glibc-Kompatibilitätsschicht, die auf musl aufbaut. In der CI werden über 2.100 Shared Objects aus den 1.000 am häufigsten installierten Debian-Paketen geladen. SoLo unterscheidet sich von anderen Ansätzen, da es keine zweite libc in den Prozess bringt und eine einzige TLS-Welt beibehält.
Das Versenden einer Distribution, weil man eine System-.so-Datei benötigt, ist keine Portabilität. SoLo liefert eine normale, überprüfbare ausführbare Datei und leiht sich nur die Komponente, die wirklich zum Host gehört: seinen Hardware-Treiber.