SoLo научил статические Linux-бинарники запускать системные драйверы GPU
Опубликован открытый проект SoLo, решающий фундаментальную проблему запуска графических драйверов в полностью изолированных статических приложениях. Традиционно программы, собранные со стандартной библиотекой musl без динамических зависимостей, не могли использовать системные драйверы Vulkan и OpenGL, поскольку дистрибутивы поставляют их в виде разделяемых библиотек, скомпилированных под glibc. Разработка снимает это ограничение за счет внедрения компактного загрузчика ELF прямо в исполняемый файл и трансляции вызовов glibc в уже существующий musl-рантайм без необходимости загружать в процесс вторую копию системной библиотеки.
Архитектурная чистота решения исключает конфликты двух libc в одном адресном пространстве, сохраняя все преимущества компактного распространения программ единым файлом. В качестве практического доказательства работоспособности авторы подготовили статический бинарник без динамических секций, который успешно обнаруживает системный драйвер Vulkan, загружает его зависимости, выполняет вычисления шейдера и сохраняет итоговый PNG-файл. Технология написана на C++, распространяется под свободной лицензией MIT, проходит регулярные тесты в Alpine, Fedora и Ubuntu, а также уже применяется для формирования релизных сборок эмулятора терминала Shitty.
Linux / Линукс 🥸
Post #12549
2.84K
- 👍 18
- ❤ 4
- 😈 2