Профиль: Аноним (вход | регистрация) не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.ru/opennews/art.shtml?num=66103

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

Оглавление

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

1. Сообщение от Аноним (1), 20-Авг-26, 17:08   +6 +/
"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   –5 +/
Ога, да, а еще он на несколько мегабайт может быть легче - превед glibc оверхеду и следственно пожиранию оперативной памяти.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #7, #25

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

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

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

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

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

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

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

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

8. Сообщение от Malinovsky (?), 20-Авг-26, 17:26   –2 +/
Никогда таким не занимался. Вот ежели баг с железом, тогда в багзиллу пишу, но это считанные разы было. Когда у тебя 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   –2 +/
Ну напиши мне сюда, я починю. А что не так с буфером обмена?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #13

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

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

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, #67, #90

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

29. Сообщение от Malinovsky (?), 20-Авг-26, 18:24   –1 +/
> Лень лезть смотреть сколько там занимают сошки от 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 Ответы: #65

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

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

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

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

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

Почему?

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

34. Сообщение от Malinovsky (?), 20-Авг-26, 18:51   –1 +/
Если использовать точку зрения потребителя да, а вот ежели сменить за создателя, то как это улучшает жизнь людей? Вот у меня есть плата с ограничением в 2.25 гиб оперативки. Может и можно убрать ограничение, но это надо постараться, чтобы из DDR2 выцарапать объем при 2-х модулях доступных, но 8 гигов можно заиметь. Для P4 неактуально - musl, роутер, принт сервер, ретро игры - в общем ничего серьезного.

А атомным ноутбукам много что можно сделать в современных реалиях - перевод рендера на Vulkan, использование Wayfire/Sway, оптимизация опций загрузки с отключением патчей безопасности, но больше чем -O3 сомнительно ставить. там еще можно -flto покрутить, например -flto=thin или auto, если поможет и прочие параметры, но мало что реально повлияет. У большинства хорошо, если +10% производительности будет.

Просто ради прикола делать мелкие бинари через -Os чаще нет смысла когда нужна скорость.
Так что по итогу это что-то вроде этого будет как строка под абзацем, хотя clang тоже может сделать все, но я чаще пользовался gcc. Тут может быть разница уровня - в GCC все работает стабильно, в clang периодически падает. Надо проверять, поэтому не могу советовать clang. Недостаточно опыта с ним. Все же это агрессивные оптимизации, которые работали у меня стабильно. Поэтому я не понимаю тех кто боится их использовать. Бояться надо страха в случае с компиляцией.

gcc -O3 -flto -march=native

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

36. Сообщение от Ivan_83 (ok), 20-Авг-26, 19:01   –1 +/
Шо, на гитхубе не нашлось ни одной годной реализации, обязхательно всю гадость тащить в стандарт?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #41

40. Сообщение от Аноним (42), 20-Авг-26, 20:20   –1 +/
>установленные в системе glibc-библиотеки, в первую очередь GPU-драйверы

В Linux GPU драйверы это не glibc-библиотеки, а ядерные модули, которые для каждого устройства создают файл в /dev/. Linux (UNIX) следует принципу "всё есть файл", в частности, в любое устройство можно просто писать с помощью read/write.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #47, #52, #56, #57

41. Сообщение от Аноним (42), 20-Авг-26, 20:22   +/
Есть, в проекте glib.

Но аффтар же целился избавиться от gnu.

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

42. Сообщение от Аноним (42), 20-Авг-26, 20:27   +1 +/
>использование Wayfire/Sway

ЛПП.

Wayland тормозит намного больше, чем x11.

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

43. Сообщение от Malinovsky (?), 20-Авг-26, 20:49   +1 +/
Выражайтесь ясней. Причем тут лекарственное поражение печени?
А иксы у меня давно проверены на браузерах - иксы тормозней. Доказано Pinterest с разогнанной памятью многократно. Этот сайт такой тормознутый что ему просто памяти в Gear 1 недостаточно в большинстве своем. Поэтому имея жесткий минимум резко уходит в отрыв именно Wayland, потому что Vulkan батенька. Вы забыли про Vulkan!
На иксах все сильно медленнее даже если память разогнана.
Это полная и безоговорочная победа Wayland и мне все равно кто там что бухтеть собрался.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #44

44. Сообщение от Аноним (19), 20-Авг-26, 20:55   +/
>Вы забыли про Vulkan!

Мы его используем для игр. Это когда отключаешь у иксов финтифлюшки, лезущие в видеокарту (и композитинг, ага) и выжимаешь фепесы.

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

45. Сообщение от Аноним (45), 20-Авг-26, 21:00   +3 +/
В glib сплошная шизофрения и ни строки нормального кода
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #50

47. Сообщение от Malinovsky (?), 20-Авг-26, 21:24   +/
Идеологию "все есть файл" использует Plan9. Нынче 9front, но обычно в дистрибутивах линукс часто есть штука для тех кто желает адаптироваться сначала под названием pla9port.

https://9front.org/

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

50. Сообщение от Ivan_83 (ok), 20-Авг-26, 21:56   +2 +/
Там скорее свой диалект/секта, примерно как у крестов с бустом.
Но не могу не признать, что glib от гнома удобна при написании кода.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #101

51. Сообщение от Аноним (52), 20-Авг-26, 22:08   +/
Доколе эта бесовщина твориться будет. То у тебя одна версия и ты не можешь поставить более новую или более старую, то у тебя огромное количество библиотек дублируется передублируется. Нужно что то придумать. Но даже в не знаю что. Ну в маках и Винде как то решили же.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #63, #69, #94

52. Сообщение от Аноним (52), 20-Авг-26, 22:09   +3 +/
Попиши в rtx 5070
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #108

53. Сообщение от Аноним (53), 20-Авг-26, 22:22   +1 +/
> кроме сборки OpenOffice. Когда я его трогал последний раз
> он был намертво приколочен к glibc. Это был спортивный интерес.

В таких случаях можно глянуть в бсдшные репы. Патчи там обычно кладутся в files
https://cgit.freebsd.org/ports/tree/editors/openoffice-4/files

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

56. Сообщение от Аноним (56), 20-Авг-26, 22:31   +/
> в любое устройство можно просто писать с помощью read/write

Нет, низзя... Есть специальные "файлы", взаимодействие с которыми осуществляется через другой набор управляющих функций.

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

57. Сообщение от Аноним (56), 20-Авг-26, 22:33   +/
> "всё есть файл" ... read/write

Немного подскажу: попробуй установить скорость ком-порта через read/write :)

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

62. Сообщение от Аноним (62), 21-Авг-26, 00:47   +/
Но привязка там, всё равно, к /dev/ttySx.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

63. Сообщение от Аноним (62), 21-Авг-26, 00:51   –3 +/
Ага, решили, DLL-hell. В Линуксе .so-шки хоть могут включать номер версии в имя либы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #66, #68, #78

64. Сообщение от Аноним (64), 21-Авг-26, 01:02   +/
> Чтобы оно работало на винде нужно как минимум PE загрузчик DLL поддержать.

Зачем? Виндовые аналоги dlopen(), dlsym() и dlclose() являются частью WinAPI, находятся в системной "kernel32.dll" и от способа линковки к libc никак не зависят.

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

65. Сообщение от Норм (?), 21-Авг-26, 01:37   +/
У вас компиляция глибц 8 гигабайт отьедает?
Вы такое что-то намудрили что капец.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #84

66. Сообщение от Я (??), 21-Авг-26, 02:43   +5 +/
Нет никакого dll-hell в Винде - либо все библиотеки включены exe, кроме системных, либо часть включены в exe, а часть лежат рядом с exe. На это всё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

67. Сообщение от Я (??), 21-Авг-26, 02:43   +/
> а на нормальном языке программирования (C) почему было не написать?

Лень.

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

68. Сообщение от Жив (?), 21-Авг-26, 02:44   +4 +/
Только в винде dll hell уже 20 лет нету, а в линуксе dependency hell и по сей день жив
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #82

69. Сообщение от Жив (?), 21-Авг-26, 02:46   +1 +/
>Доколе эта бесовщина твориться будет.

До тех пор, пока не поймете что идея дедубликации несистемных либ глубоко порочна

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

70. Сообщение от Жив (?), 21-Авг-26, 02:48   –2 +/
Лол, даже нейрослопщики на уровне концепций мыслят лучше линуксоидов и успешно решают glibc-hell

Сложно придумать оскорбление для линуксоидов сильнее

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

71. Сообщение от Аноним (71), 21-Авг-26, 03:36   –1 +/
Полезная штука, я кое-что для static everywhere подсмотрел у них

https://github.com/unxed/static-everywhere

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

72. Сообщение от Аноним (72), 21-Авг-26, 04:01   +1 +/
Мисье, у вас какой-то странный musl
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #75

73. Сообщение от pg83 (ok), 21-Авг-26, 04:53   +/
Я сам изготавливать не планирую, у меня винды нет с 99 года, и не предвидится. Но я готов принять в дар патчи, если кто-то хочет заняться!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

74. Сообщение от Аноним (74), 21-Авг-26, 08:06   +/
Потому что это сломает локали, PAM, nss. А если не использовать сабж, то и юзерспейсную часть драйвера видеокарты. А ещё программисты ленивые, и используют so для реализации плагинов (хотя стоило бы процессы и IPC).

Даже если не уходить в полную статику, всё равно будут проблемы. Попробуйте, например, поставить nix на не-NixOS систему и запустить с его помощью какую-нибудь нетривиальную декстопную программу - шрифты и иконки будут выглядеть странно, opengl в ряде случаев отвалится, интеграции с dbus имеют шанс поломаться. Всё это, конечно же, можно починить в каждом отдельном случае симлинками и переменными окружения, но, на мой взгляд, вполне удачно демонстрирует, что будет, если в системе окажется по несколько экземпляров частей того, что обычно называют платформой.

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

75. Сообщение от Аноним (74), 21-Авг-26, 08:08   +/
Нет, это просто некоторый странный софт тащит в комплекте с собой оптимизированные слинкованные с glibc зависимости. А если glibc в системе нет, то начинает собирать их из исходников, попутно теряя фичи из-за неустановленных dev-пакетов, что приводит к тормозам как во время установки, так и в рантайме (из-за отсутствия этих самых фич).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

76. Сообщение от Аноним (76), 21-Авг-26, 09:09   +1 +/
> Обычно статическая сборка несовместима с драйверами Vulkan и OpenGL, которые дистрибутивы поставляют в виде разделяемых библиотек, собранных с glibc.

Статическая сборка несовместима много с чем. Например, с MP. И вместо того, чтобы городить костыли в борьбе с ветряными мельницами, нужно делать компиляцию на стороне клиента с имеющимися у него системными библиотеками. Если проект небольшой, то времени займет немного. А в качестве portable [кросс-]компилятора можно использовать компоненты Zig, поставляя их в составе своего установочного пакета. Насчет размера - в дистрибутив добавится мегабайт 15 от Zig и убавятся все свои бинарники.

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

77. Сообщение от Аноним (77), 21-Авг-26, 09:22   +/
Есть ioctl() для задания параметров взаимодействия, но это не меняет сути. Драйвера в linux это не userspace библиотеки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

78. Сообщение от Смузихеб забывший пароль (?), 21-Авг-26, 10:47   +/
вот так годами пользуешься виндой, порой проги пишешь
а там, оказывается, какой-то длл-хелл
и версии либам никакие не нужны. То, что лежит рядом с ехе - приоритетней. Усьо
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

79. Сообщение от Смузихеб забывший пароль (?), 21-Авг-26, 10:55   +/
> нужно делать компиляцию на стороне клиента

ну это уже практически модули nodejs у которых есть нативщина под капотом

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

80. Сообщение от _kp (ok), 21-Авг-26, 11:45   +/
>> грузит системную glibc, без использования новых функций.

Так задача именно уйти от системных библиотек. :)
Системные библиотреки точно не невмнестимы как с дистрибутивами ровестниками, так и с самим собой предыдущих версий.
Сейчас Linux превратили в АД зависимостей и несовместимостей, если ПО не шло с дистрибутивом его приходится перекомпилировать, что б хотя бы запустилось, или мучиться с лагающими контейнерами.  
Вот, и изобретают велосипеды, одни - контейнеры переписывают, другие - от системных библиотек бегукт...

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

81. Сообщение от Джон Титор (ok), 21-Авг-26, 13:00    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору

82. Сообщение от Аноним (90), 21-Авг-26, 13:00   –1 +/
В Линуксе ты можешь положить рядом несколько версий одной и той же библиотеки. Да и, наверное, в xBSD тоже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #102

83. Сообщение от Аноним (83), 21-Авг-26, 13:10   +/
Обнаружен богатенький буратино с большим количеством RAM. И это в такое трудное для компьютеров время!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

84. Сообщение от Malinovsky (?), 21-Авг-26, 13:11   +/
Я не намудрил, а описал свой опыт использования ноутбука у которого распаяно 8 гигабайт оперативной памяти. Пример на основе браузерного движка, который используется в Goldendict - прекрасная программа, которую написал наш соотечественник, незаменимая во многих случаях когда языки учите. Так вот ей требуется движок qtwebengine для Goldendict-ng.
Это лишь пример тяжелой компиляции когда 8 гигабайт оперативной памяти недостаточно или хватает впритык. Когда перевод происходит постоянно ускорение работы программы снижает задержку и делает отзывчивость системы высокой. То есть цель вполне адекватная - снизить задержку и ускорить перевод. Когда учите японский в каком-нибудь LibreOffice он даже грамотно будет выделять слова на японском, как раз для перевода в большинстве случаев. Иногда там мрак творится с переводом, потому что значений может быть множество как и у корейцев у которых звук И это 20+ значений на один звук повешено.
Тем не менее компиляция все еще востребована и легко идет при достаточном количестве оперативной памяти. Glibc тут является одной из последних капель как тяжелый рабочий стол, который и так ненужен, поэтому вместо того, чтобы пользоваться легким рабочим столом у людей часто Plasma или вообще Gnome.
Первая понятная привычная среда для выходцев с венды. Вторая клон интерфейса макоси с необычным поведением, которое впрочем тоже нормальное. Проблема лишь в системных различиях - потребление памяти,  еще плазма умеет в системные настройки и не делает вид что их нет, а вот аутисты из ред хата делают вид что только гном может настроить систему. Он как резанный орет что у вас все сломано, подключения по вайфаю нет и все прочее когда все у вас работает на самом деле. Поэтому гном потерял давно доверие и пользоваться им нет смысла, потому что он лжет. Для других людей это не важно, а я считаю человеческие качества важными у разработчиков и мириться с наглой ложью нет желания.
Надеюсь теперь понятно что к чему. Напечатанное ведь надо же не просто прочесть, но и правильно понять.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

85. Сообщение от Malinovsky (?), 21-Авг-26, 13:19   +/
Как будто я не в курсе про то что в игре. Я же Vulkan использую в том числе для встройки когда парная графика в деле, чтобы и рабочий стол рисовать и браузер через webrender рисовал все сразу, но при этом требовал минимум напряга процессора и повышал отклик. В играх у меня порой повышение производительности помимо прибавки от использования Wayland - уж разработчики The isle Evrima знают толк в том как навертеть много всего, чтобы игра вообще могла не запускаться, так что часто иксы еще и отстают по скорости, хотя там тоже рабочий стол вообще на встройку вынесен. Считайте мой способ продвинутой версией того что вы там творите. Вот тут, если что объяснено в деталях что происходит в системе когда парная графика в деле, раз уж ноутбуководы неспособны ничего заметить. Мне больше всего нравится сниженный инпут лаг, потому что когда задержка ввода большая в шутерах творится какая-то фигня из-под ногтей и начинаются промахи на ровном месте.

https://vkvideo.ru/video-239700498_456239019

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

86. Сообщение от Malinovsky (?), 21-Авг-26, 13:27   +/
Прикольно, да, что-то я подзабыл что можно попробовать взять готовое где-то, но я все делал руками, включая установку Samba 4 - хотелось домен контроллер завести и посмотреть заведется ли он на musl. Просто отвязка требует некоторого времени. Я вот руками пингую сервера когда надо собрать данные, чтобы снизить задержки с мобильном интернете о чем делал видео, потому что видео тоже начинают грузиться гораздо стабильнее как и предпросмотр картинок. Но главное сайты с видео все же.
Как доковыряю ВКвидео обновлю ссылку там. Все равно приходится что-то делать руками. Не доверяю я нейромоделям важную миссию. Это же интернет, но кажется ВКвидео субъективен и подсовывает разные адреса внутренним и внешним посетителям. Вот это подстава пользователям. Руками делать не так уж и странно. Странно как раз доверять нейромодели что-то. А FreeBSD и так можно пользоваться как Void, только FreeBSD стабильно работает при сборке ядра и мира.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

87. Сообщение от mrx (ok), 21-Авг-26, 13:52   +/
>  А ещё программисты ленивые, и используют so для реализации плагинов (хотя стоило бы процессы и IPC).

Отдельный процесс на каждый плагин?
Ну и всякие системные объекты, валидные только в рамках одного процесса, через IPC не передашь.

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

90. Сообщение от Аноним (90), 21-Авг-26, 14:11   +/
Потому что, написали на брлее нормальном.

PS Разработчики GCC тоже были вынуждены перейти на более нормальный, между прочим.

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

94. Сообщение от Malinovsky (?), 21-Авг-26, 14:54   +/
Мне кажется вы пишете про принцип KISS - Keep It Simply Simple. Это уровень OpenIndiana (Solaris 11). там системные билиотеки отделены от пользовательских и пользователь может творить что угодно - систему он не поломает. Это и есть одно из решений, потому что система стала намного сложнее, чем была изначально. В оригинальном UNIX не было динамически подключаемых библиотек. А венды еще десятилетия не было как операционной системы. Попробуйте Illumos, если вас задевает простое решение в использовании одинаковых библиотек везде, либо включение в статический бинарник всего ,всего и использование всяких Flatpak. Если неприятие сохраняется, тогда вас ждет освоение работы компьютерного железа, освоение настройки Linux, сборки из исходников и оптимизация использования мета дистрибутивов и тому подобное, потому что выходы есть из ситуации, но если эмоционировать, то проблему нельзя решить. те кто слабы идут на пользовательские дистрибутивы, едят что дают и не отсвечивают. Вор тут про мета дистрибутивы, а пока там информация переваривается можете заняться оптимизацией работы железа. Вероятно даже сменой процессора и переосмыслением подходов, которые никто навязывать не станет.

https://vkvideo.ru/video-239700498_456239030

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

95. Сообщение от Аноним (19), 21-Авг-26, 15:39    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

96. Сообщение от Аноним (96), 21-Авг-26, 16:03   +/
> Обычно статическая сборка несовместима с драйверами Vulkan и OpenGL, которые дистрибутивы поставляют в виде разделяемых библиотек, собранных с glibc

А зачем тогда разработчики этих программ используют статическую сборку, если знают что им нужен OpenGL и он не будет работать?

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

97. Сообщение от Аноним (97), 21-Авг-26, 16:33   –1 +/
А может кто-нибудь объяснить почему в ядре и его nolibc нету dlopen/sym/..., что приходится такую базовую вещь как загрузка динамических библиотек тащить хз откуда снаружи, наступая на всякие "GLIBC_2.38 not found", в результате всё что можно собрано статически, чтобы хоть как-то работало во всём этом зоопарке, а вот dll-hell при этом в виндовсе, ага.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #99, #100

98. Сообщение от Аноним (99), 21-Авг-26, 17:14   +/
Переживаю чтобы оно вирусную не подгружать...
Ответить | Правка | Наверх | Cообщить модератору

99. Сообщение от Аноним (99), 21-Авг-26, 17:30   +/
Пользователи дистрибутивов GNU/Linux этих проблем не замечают. Весь софт ставят с репозитория дистрибутива, официального или дополнительного (типа nofree).

Философия дистрибутивов утверждает, что пользователь должен создать недостающий пакет сам и поделится с другими. В этом случае проблем с библиотеками также нет.

Вот когда приволокли левый бинарь, тогда вопросы. К сабжу у меня также вопросы. Не вижу в нем смысла.

А система развивалась так чтобы быть максимально простой в целом:
CPU
Ядро OS
glibc
gcc
binutils
Не надо переусложнять ядро если данный функционал можно реализовать в системной библиотеке glibc.

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

100. Сообщение от Malinovsky (?), 21-Авг-26, 17:48   +/
Может, только это подъем уже существующей ветки обсуждений под видом отдельной. Объяснять где нет понимания думаю бессмысленно, поэтому технически - к авторам glibc, если уж прямо отвечать. Кому тут упало разбираться зачем какой-то упоротый чувак поставил nolibc, не имея навыков сборки системы? Путать wrapper с системной библиотекой это типовой пример действий новичков, которые тупят и не хотят читать документацию.

https://github.com/wtarreau/nolibc

Вот что значит wrapper

https://ru.wikipedia.org/wiki/%D0%92%D1%...

Очевидно отсутствие библиотеки Си можно использовать когда нет в ней нужды и нет системных вызовов, которые заложены в библиотеку и вместо этого используется полный формат команд вместо библиотеки. Вырываем код, ставим его вместо отсылок на библиотеку - получаем меньше исполняемый файл.
Musl и так генерирует относительно небольшие файлы. Можете поглядеть как OpenWRT работает пакетами и проверить их размер. Там килобайты совершеннейшая норма и упарываться совсем уж тяжелыми наркотиками типа nolibc необязательно.

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

101. Сообщение от Аноним (19), 21-Авг-26, 19:07   +/
Там кто-то из авторов альтернативных инитов запилил glib потоньше, без gobject.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #110

102. Сообщение от Аноним (19), 21-Авг-26, 19:10   +/
К этому и придём. Питон стабильно нужен трёх последних версий и последний 2.7, gcc и java тоже. Надо держать несколько glibc, а к ним ld-linux.so.

Несколько sysroot держать гораздо труднее нескольких тулчейнов, поэтому этот проект взлетит.

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

103. Сообщение от Аноним (109), 21-Авг-26, 19:46   +/
Не совсем понятно:
Это хуки в статический бинарник, что означает нарушение целостности?
Это подмена загрузчика в системе?
И то и другое дурно пахнет - мы вам тут калиточку просверлим ...
Ответить | Правка | Наверх | Cообщить модератору

104. Сообщение от Аноним (109), 21-Авг-26, 19:48   +/
Любители представлений понятно радуются и аплодируют.
Ответить | Правка | Наверх | Cообщить модератору

105. Сообщение от RM (ok), 21-Авг-26, 19:52   +/
там тащем-то тот же автор запилил целый дистрибутив Stalix на подходе musl + статическая линковка.
https://github.com/pg83/ix
на опеннете я нашел только одно упоминание https://www.opennet.ru/opennews/art.shtml?num=60053
Ответить | Правка | Наверх | Cообщить модератору

106. Сообщение от Аноним (109), 21-Авг-26, 19:52   –1 +/
SoLo = So Loser
и совсем не соло.
Ответить | Правка | Наверх | Cообщить модератору

107. Сообщение от Аноним (109), 21-Авг-26, 19:58   +/
Такого не бывает. Статичный означает неизменный. Динамически формируемый под everywhere это уже Не неизменный.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71

108. Сообщение от Аноним (109), 21-Авг-26, 20:04   +/
И не сможешь. Вместо того чтобы давать спецификации Вам дадут разделяемый код и скажут хватит с Вас.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

109. Сообщение от Аноним (109), 21-Авг-26, 20:06   +/
Берегите старые (без ИИ-агентов) версии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

110. Сообщение от Ivan_83 (ok), 21-Авг-26, 22:08   +/
Меня в таких проектах всегда смущает сектанство, которое в том числе через типы данных выпирает: gpointer, gint и прочее.
Кажется такая тема была популярна в начале 2000х, но сейчас как то в этом смысла нет вообще, да и мигрировать на нормальные типы можно было хоть с помощью sed.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101


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

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




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

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