Le projet SoLo développe un chargeur de bibliothèques so pour des programmes Linux entièrement statiques.

Le projet SoLo a été publié, permettant aux programmes Linux entièrement statiques, construits avec musl, de charger via dlopen() les bibliothèques glibc installées sur le système, en particulier les pilotes GPU. En général, la compilation statique est incompatible avec les pilotes Vulkan et OpenGL, qui sont fournis sous forme de bibliothèques partagées compilées avec glibc. SoLo lève cette restriction grâce à un chargeur ELF intégré dans l'exécutable et à un intermédiaire traduisant les appels de glibc vers le runtime musl du processus — glibc lui-même n'est pas chargé dans le processus, et une seconde libc n'apparaît pas dans le processus. Le code est écrit en C++ et est distribué sous licence MIT.

Le référentiel comprend un exemple visuel : un exécutable statique, qui n'a ni interpréteur ni section dynamique, trouve le pilote installé sur le système de manière standard pour Vulkan, le charge avec ses dépendances, exécute un shader de calcul et enregistre le résultat dans un PNG. Dans le cadre de l'intégration continue, l'exemple est vérifié sur Alpine, Fedora et Ubuntu avec des paquets Lavapipe issus des dépôts standards de ces distributions. Cette approche est déjà utilisée en pratique — elle génère les versions de l'émulateur de terminal Shitty.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster