**SoLo** 是一套解决方案,用于发布完全静态、基于 musl 链接的 Linux 可执行文件,并使其能够加载并交互使用宿主机安装的基于 glibc 链接的 GPU 驱动(Vulkan/OpenGL)。
标准的静态二进制文件由于缺乏基于 glibc 的动态加载器,无法使用硬件加速驱动。SoLo 通过嵌入自身的 ELF 加载器以及 glibc 到 musl 的 ABI 桥接机制解决了这一问题。SoLo 不依赖容器或辅助 libc 运行时,而是将宿主机提供的共享对象直接映射到进程中,并在现有的 musl 运行时中解析其 glibc 依赖项。
**主要特性:**
* **真正的可移植性:** 以单一的标准静态二进制文件形式发布,无需任何依赖,避免了 AppImage 或容器带来的臃肿。
* **统一的运行时:** 与强制两个冲突的 libc 实例共存的“重定向(detour)”或“拆分运行时”方法不同,SoLo 维护了一个单一的 TLS(线程本地存储)环境。
* **强大的兼容性:** 支持跨边界的 C++ 异常、延迟 PLT 绑定和符号版本控制等复杂需求。该方案已针对超过 2,100 个 Debian 共享对象进行了严格测试。
* **可检测性:** `backtrace` 和 `dladdr` 等工具可以在静态段和已加载段之间无缝工作。
SoLo 将静态软件与系统硬件驱动之间的“高墙”转化为一层可靠且可测试的兼容层。