Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проект SoLo развивает загрузчик системных so-библиотек для полностью статических Linux-программ"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Проект SoLo развивает загрузчик системных so-библиотек для полностью статических Linux-программ"  +/
Сообщение от opennews (??), 20-Авг-26, 17:08 
Опубликован проект SoLo, позволяющий полностью статическим Linux-программам, собранным с musl, загружать через dlopen() установленные в системе glibc-библиотеки, в первую очередь GPU-драйверы. Обычно статическая сборка несовместима с драйверами Vulkan и OpenGL, которые дистрибутивы поставляют в виде разделяемых библиотек, собранных с glibc. SoLo снимает это ограничение при помощи встроенного в исполняемый файл загрузчика ELF и прослойки, транслирующей вызовы glibc в musl-рантайм процесса — сам glibc в процесс не загружается, второго libc в процессе не появляется. Код написан на C++ и распространяется под лицензией MIT...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=66103

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 20-Авг-26, 17:08   +3 +/
"Tested on AMD radv, radeonsi, Intel, and NVIDIA GPUs under Linux, on Apple M1 under Asahi Linux, on Android under Termux, and on WSL with Mesa's dzn driver over Direct3D 12" - это что, теперь можно 1 бинарь для всего этого барахла изготавливать?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #5

2. Сообщение от Malinovsky (?), 20-Авг-26, 17:11   –1 +/
Shitty забавный терминал, хоть и немного нестабильный после сборки, но забавно как это выглядит. Чтобы уменьшить размер загружаемого файла можно собрать его с musl и при необходимости он заработает на glibc с со всеми подушечками где надо установленными, чтобы программа ни дай бог не грохнулась. На Musl все работает или падает и третьего не дано. Много раз приходилось чинить в musl версии Void исходники, чтобы все собралось и заработало. Вроде это все и прикол, но musl давно пора в массы и не только на роутерах с OpenWRT.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #9

3. Сообщение от Malinovsky (?), 20-Авг-26, 17:13   +/
Ога, да, а еще он на несколько мегабайт может быть легче - превед glibc оверхеду и следственно пожиранию оперативной памяти.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #7, #25

4. Сообщение от pg83 (ok), 20-Авг-26, 17:14   –1 +/
> хоть и немного нестабильный после сборки

Ну ты шли ишью в github, автор оперативно исправляет!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #8, #30

5. Сообщение от sage (??), 20-Авг-26, 17:19   +1 +/
Видимо, для всего что может загрузить твой бинарь, предоставить функции ядра, и с чем может работать musl.

То есть винда и макось мимио, а для большей части линуксов это не слишком полезно.

Точнее смысл не в том, чтобы запускать бинарь. А в том чтобы делать полностью статичную линковку, но с возможностью обращаться ко внешним so-шкам.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #14

6. Сообщение от Аноним (6), 20-Авг-26, 17:24   +3 +/
Ещё один нейрослоп-проект, класс!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15

7. Сообщение от sage (??), 20-Авг-26, 17:25   +3 +/
Где оверхед от glibc? Оно в одном экземпляре хранится на диске, и в одном экземпляре в оперативке, на все загрузившие её процессы.
Или у вас миллион контейнеров на одном хосте с разными системами? Ну тогда удачи весь софт пересобрать с musl, и грузите копии всего статического кода.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #11, #12

8. Сообщение от Malinovsky (?), 20-Авг-26, 17:26   –1 +/
Никогда таким не занимался. Вот ежели баг с железом, тогда в багзиллу пишу, но это считанные разы было. Когда у тебя Gentoo или еще что-то из исходников собрано разработчики ядра тебя вежливо посылают лесом. И все. Потому что им нравится когда ядро собрал их местный Peter Phil, а всем остальным они не доверяют. Я даже драйвер не просил исправить для Creative AE-7, потому что там сходу - пришлите Creative AE-7 мне в США или изучите мега адовый дебаг.
У меня есть эмуляторы терминала, которые работают. Вот если пойду мады гонять с tintin++ или вроде того, тогда ну может быть. Но меня устраивает скорость работы Wayfire 0.11 на вулкане с UHD770. Я просто чую что под капотом у shitty пачка багов крутится. Их и без меня должны распознать. Я уже на внутреннем ощущении определяю работает ли программа нормально и обычно все сходится. Ну потому что заедания в доли секунды даже на древних эмуляторах не бывает. А пока он не прикрутит нормальную опцию копирования текста как в konsole или lxterminal его shitty останется не у дел. Потому что мне что, заморачиваться с буфером обмена отдельно только ради копирования текста? Я не настолько упертый. Собрать из исходников могу, но упарываться не вижу смысла.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #10

9. Сообщение от sage (??), 20-Авг-26, 17:27   +/
> все работает или падает и третьего не дано

А вам хочется чего-то промежуточного? Чтобы оно вроде запускалось, но потом в случайные моменты падало по непонятным причинам?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #24

10. Сообщение от pg83 (ok), 20-Авг-26, 17:29   –1 +/
Ну напиши мне сюда, я починю. А что не так с буфером обмена?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #13

11. Сообщение от Malinovsky (?), 20-Авг-26, 17:30   –1 +/
Вы наверное бинарники никогда не видели какой размер имеют без всякой статики бинарники glibc, отчего и сам Void musl меньше памяти требует. В общем и целом это в процентах довольно значительный объем когда цель - сделать рабочее окружение для сборки из исходников без лютого избытка оперативной памяти, прямо как в наши дни когда память уже скоро буквально будет на вес золота, а пока лишь половину от его стоимости имеет.
Я со сборкой из исходников много лет опыта имею и Void musl прекрасно себя проявил. По крайней мере на моем компе с 12900K когда нет нужды делать вид что glibc хоть чем-то интересна на домашнем компе, кроме сборки OpenOffice. Когда я его трогал последний раз он был намертво приколочен к glibc. Это был спортивный интерес. Меня вполне устраивает LibreOffice.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #16, #18, #19

12. Сообщение от Аноним (19), 20-Авг-26, 17:31   +/
>Или у вас миллион контейнеров на одном хосте с разными системами?

Вот это. Чтобы надёжно собирать софт под любой линукс, надо статическую либц, либо собирать на slackware. Собирают, как правило, на ubuntu. Результат сваливается с мисматчем глибцов - и тут придётся по манам LFS собирать глибцы, тулчейн, а потом ещё и либы.

Так как глибцы нормально не пришпандорить, да потом ещё и с глибц мисматчем не прилинковаться к нужным либам, вот эта штука позволит собирать только бинарник, а сошки тянуть прилинкованные к глибцам.

Можно будет раздавать софт вне контейнеров.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #20

13. Сообщение от Malinovsky (?), 20-Авг-26, 17:32   –1 +/
Ну он работает только внутри терминалов через Ctrl+Insert, Shift+Insert. Вставить скажем в браузер или в kate не получится, а это основной пример когда буфер обмена работает. Большинство эмуляторов терминалов сломаны на деле. Я потыкаю может новую версию и скажу, но мне это без особой надобности. Просто буду иметь ввиду.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

14. Сообщение от Аноним (19), 20-Авг-26, 17:33   +/
>То есть винда и макось мимио

В теории, musl как раз внутри APE живет на обоих. Если сделать эмулятор vcrt и что там в макоси, можно APE линковать одновременно и к линуксовым либам, и не к линуксовым.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #23

15. Сообщение от pg83 (ok), 20-Авг-26, 17:35   +/

  ┌─────────────┐
  │             │
  │   ███ ███   │
  │  █████████  │
  │ ███████████ │
  │█████████████│
  │█████████████│
  │ ███████████ │
  │  █████████  │
  │   ███████   │
  │    █████    │
  │     ███     │
  │      █      │
  │             │
  └─────────────┘

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

16. Сообщение от sage (??), 20-Авг-26, 17:36   +/
Лень лезть смотреть сколько там занимают сошки от glibc, на какой-нибудь убунте. Слоп-машина такое выдает:

> A standard compiled, unstripped libc.so shared library is roughly 10 MB to 12 MB, while a stripped, release-ready version drops down to about 2 MB to 3 MB. A full installation package (which bundles locales, international character converters, and timezone databases) generally requires between 20 MB and 45 MB of disk

Вам символы и локали не нужны? Или даже 2-3 Мегабайта жалко?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #29

17. Сообщение от Xasd1 (?), 20-Авг-26, 17:39   +1 +/
> Код написан на C++

а на нормальном языке программирования (C) почему было не написать?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21

18. Сообщение от Аноним (18), 20-Авг-26, 17:39    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #28

19. Сообщение от Аноним (19), 20-Авг-26, 17:41   +/
Глибцы не настолько жирнее musl, чтобы на 8+ гигабайтных системах оверхед чувствовался. Это всё ещё экономия на спичках, пока в репозиториях валяются брёвна на Java, JS и Python.

А вот если взять одноплатник с гигом памяти или печатную машинку на core2duo (или что там, днищебуки с впаянной рамой, где могут и 4 гига оставить?), тогда да.

Днищебукам нужны решения с упором на -Os в CFLAGS, musl и, возможно, zram/zswap. Вроде, armbian таким занимался.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

20. Сообщение от sage (??), 20-Авг-26, 17:42   +/
> надо статическую либц

Это НИКОГДА не надо делать. Для сборки под старые системы нужно нормальный кросскомпилятор использовать, который грузит системную glibc, без использования новых функций. Если контейнер крутит софт, который от сишной либы не зависит, то с ней вообще линковаться не надо, ни динамически, ни статически.

(но, конечно, from scratch лень делать - это же работать надо)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #22, #32

21. Сообщение от pg83 (ok), 20-Авг-26, 17:43   +/
Жизнь слишком коротка, чтобы писать еще одну хештаблицу для С. Вот завезут в стандарт - тогда поговорим.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

22. Сообщение от Аноним (22), 20-Авг-26, 17:49   +/
Это очень хорошо, когда под конкретную старую систему собираешь, а если просто хочешь, чтобы крутилось по возможности везде?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #26

23. Сообщение от sage (??), 20-Авг-26, 17:49   +/
На винде не работают линусовые so-шки. Сабж предназначен как раз для загрузки их вулкана.

Чтобы оно работало на винде нужно как минимум PE загрузчик DLL поддержать. И dyld-ов на маке.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

24. Сообщение от Malinovsky (?), 20-Авг-26, 17:56   +/
По-моему и так понятно что подпорки от glibc это как раз оно. Меня вполне устраивает musl, который если падает, то падает, а не делает вид что все нормально. Это как винда, которая делает вид что ваша мышка работает когда на деле там идет дикий спам ошибок и мышь почти сдохла. На винде это выглядит как некоторые глюки мыши, а на линуксе курсор прыгает в разные стороны. Так и так мышка практически сдохла. Сенсор накрылся. Делать с ней что-то это все равно что потратить 200 тысяч рублей на уколы собачке, которой 16 лет и тогда она может быть поживет еще немножко. Я прекрасно понимаю что например кошечек выживает сколько-то на какую-то площадь, даже в городе, а не то что я злой, потому что не бегаю спасать кошечек целыми днями. Они плодятся с большим запасом. Это их стратегия выживания. У людей, точнее у человечества во главу угла был поставлен разум. Мне аргументы уровня девочек с большими наивными глазами, которые увидел хирурга за работой не очень хочется разбирать ан атомы, чтобы стало понятно, что вот это уже край и дальше начнется совсем деградация. И во этот плюшевый подход это glibc. Он нравится маленьким девочкам. А musl просто делает то как оно сказано ему делать и не выдумывает. Разработчик сказал - он сделал. Мне нравится отсутствие собственной жизни приложений. Это как раз то чего не должно быть, поэтому я всеми руками за musl.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #27

25. Сообщение от Аноним (25), 20-Авг-26, 17:56   +/
> превед glibc оверхеду

Musl уже научился не тормозить софт так, что им пользоваться невозможно? Вот уж где оверхед.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

26. Сообщение от sage (??), 20-Авг-26, 17:57   +/
Оно и будет работать везде, что новее чем эта старая система. Если только сами не придумаете как себе сломать ABI. Смысл таргетиться на предыдущие версии ядра и glibc в том, что старые системные вызовы не удаляются и функции из glibc остаются. Да, их поддержка на новых системах будет работать через костыли совместимости (уже встроенные в систему), но альтернатива только поднимать требования к системе, и собирать под неё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

27. Сообщение от sage (??), 20-Авг-26, 18:14   +/
> И во этот плюшевый подход это glibc.

Сложно обсуждать позицию разработчиков glibc, которую выдумал в эпитетах комментатор с опеннета. А вопрос то в чем был?

> А musl просто делает то как оно сказано ему делать и не выдумывает.

Это компьютер. В нем вещи делаются так как их запрограммировали. Хоть там мусл, хоть что.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

28. Сообщение от Malinovsky (?), 20-Авг-26, 18:18   –1 +/
Если серьезно, то ты бы для начала научился людей уважать. Судя по колчиеству ошибок ты явно не перечитывал свою криворукую печать, потому что тебе плевать как люди будут это читать. Даже с русским языком одна беда сплошнаая - там вместо чистого на древний манер выдано чистаго. Алё тоже разговорная лексика никуда не годится и служит лишь вступлением для выражения неуважения. заявлять что системная библиотека это библиотека чистаго Си это уже крышка поехала. А то что проги на Си люди порой намеренно писали с кривым алгоритмом, потому что тупые принимающие хотели, чтобы результат был не мгновенно ,а вот полоска не бежала, а ползла и пару минут комп рассчитывал ты не в курсе, потому что программировать не умеешь и не знаешь ничего про алгоритмы.
А бинарник С++ точно также быстро работает и может содержать код на Си и никто не запрещает им собрать сишные бинарники.
Все равно детальные ответы не получишь на свои наезды. Твой метод тупого наезда устарел. Ценной информации будет крайне мало и она вся будет относиться к чему-то вроде того как нужно вести себя в обществе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

29. Сообщение от Malinovsky (?), 20-Авг-26, 18:24   +/
> Лень лезть смотреть сколько там занимают сошки от glibc, на какой-нибудь убунте.
> Слоп-машина такое выдает:
>> A standard compiled, unstripped libc.so shared library is roughly 10 MB to 12 MB, while a stripped, release-ready version drops down to about 2 MB to 3 MB. A full installation package (which bundles locales, international character converters, and timezone databases) generally requires between 20 MB and 45 MB of disk
> Вам символы и локали не нужны? Или даже 2-3 Мегабайта жалко?

Вы просто забываете что все может иметь значение. Чтобы пройти компиляцию на 6 потоках qtwebengine надо допустим 8 гигабайт памяти, да и то он допустим полезет в файл или раздел подкачки. Как только это произойдет допустим 400 мегабайт там будут люто тормозить процесс компиляции, потому что механизма доставания из файла подкачки в процессе сборки люди не придумали. Тут вытеснение кеша из памяти и то сверхзадача, а тут надо понять что в памяти места много и можно отключить файл подкачки, чтобы содержимое перекочевало в память и продолжить собирать уже быстро.
Это надо мозги иметь разработчикам. У них же как правило вагоны памяти. На практике же у людей подобный действия надо проводить вручную на каком-нибудь ноутбуке. И мне пофиг кому та нравится пользоваться бинарными дистрибутивами, если моя сборка и настройка работает вдвое быстрее и даже Pentium n4200 чувствует себя бодро в современном интернете. Так что память может иметь крайне важное значение  если надо вышеописанные действия сделать раз или два или 6 раз, то что лучше? на мой взгляд преимуществ от glibc против оптимизации системы и кода недостаточно, чтобы ей пользоваться.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

30. Сообщение от sage (??), 20-Авг-26, 18:25   +/
pg83, привет!

А поддержку винды в shitty навайбкодить получится? Или оно никогда не планируется?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

31. Сообщение от Аноним (31), 20-Авг-26, 18:38   +/
Очередной ии-слоп? Скоро народ будет шарахаться от софта, в контрибьютерах которого ии-агенты и искать в описании слова «Created without AI», лол.
Ответить | Правка | Наверх | Cообщить модератору

32. Сообщение от Аноним (19), 20-Авг-26, 18:42   +/
>Это НИКОГДА не надо делать.

Почему?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру