SoLo專案已發布,實現了完全靜態的 Linux使用 musl 建置的程式必須透過 dlopen() 載入系統上安裝的 glibc 函式庫,主要是 GPU 驅動程式。靜態連結通常與 Vulkan 和 OpenGL 驅動程式不相容,而這些驅動程式通常以共用程式庫的形式提供,並使用 glibc 建置。 SoLo 透過使用內建於可執行檔中的 ELF 載入器以及將 glibc 呼叫轉換為 musl 進程執行檔的層來克服這一限制。 glibc 本身不會被載入到進程中,也不會在進程中加入第二個 libc 函式庫。該程式碼使用 C++ 編寫,並以 MIT 許可證發布。
該程式碼庫包含一個視覺化範例:一個不包含解釋器或動態部分的靜態可執行文件,使用標準的 Vulkan 方法查找系統上已安裝的驅動程序,載入驅動程式及其依賴項,執行計算著色器,並將結果儲存為 PNG 格式。作為持續整合的一部分,該範例已在 Alpine、Fedora 和 [此處應填寫系統版本] 上進行了測試。 Ubuntu 使用這些發行版標準倉庫的 Lavapipe 軟體包。這種方法已經投入使用——它被用於創建 Shitty 終端模擬器的發布版本。
來源: opennet.ru
