The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..., opennews (ok), 20-Окт-17, (0) [смотреть все]

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


30. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Васян (?), 20-Окт-17, 19:36 
Друзья, а подскажите пожалуйста, с этой либой если вместо glibc всё линкуется, то меньше памяти занимают программы и быстрее работают?

Извините за глупый может вопрос.

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

35. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 20-Окт-17, 20:24 
> Друзья, а подскажите пожалуйста, с этой либой если вместо glibc всё линкуется,
> то меньше памяти занимают программы

В некоторых случаях действительно могут занимать меньше места. Но абсолютное большинство программ, помимо libc, используют и другие библиотеки, так что на практике выигрыш может быть незаметен.

> и быстрее работают?

Это вряд ли. Обычно либо меньше памяти, либо быстрее работать.

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

36. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –1 +/
Сообщение от Аноним (-), 20-Окт-17, 21:24 
> В некоторых случаях действительно могут занимать меньше места. Но абсолютное большинство программ, помимо libc, используют и другие библиотеки, так что на практике выигрыш может быть незаметен.

На самом деле абсолютно все библиотеки в таком случае прийдётся линковать с musl. Поэтому выйгрыш может быть значительный. В противном случае будет статическая линковка.

> Это вряд ли. Обычно либо меньше памяти, либо быстрее работать.

Не забывайте про буфер TLB. Чем больше памяти используется, тем чаще будут попадания мимо кеша TLB, тем меньше будет производительность. Скорее всего частично по этой причине продукты, написанные на java очень медленно работают по сравнению с аналогами на Си или даже C++.

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

37. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +1 +/
Сообщение от Аноним (-), 20-Окт-17, 21:42 
> На самом деле абсолютно все библиотеки в таком случае прийдётся линковать с musl. Поэтому выйгрыш может быть значительный.

Во-первых, "вы*и*грыш" и "придётся". Во-вторых, нет никакой разницы, с какой libc слинкована библиотека, сама-то она столько же памяти откушает (в пределах погрешности).

> В противном случае будет статическая линковка.

В противном чему случае? И почему она непременно будет?

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

47. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 21-Окт-17, 11:06 
> В противном чему случае? И почему она непременно будет?

Если Вы захотите в дистрибутиве, где используется одна libc-библиотека использовать другую libc-библиотеку. И то, будут большие проблемы, если вы попытаетесь использовать стандартные библиотеки дистрибутива.

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

51. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 21-Окт-17, 13:26 
Не знаю, где ты нашёл какие-то проблемы.
$ ldd hello_glibc 
    linux-vdso.so.1 (0x00007ffe5cbbc000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcf069ba000)
    /lib64/ld-linux-x86-64.so.2 (0x000055e8aa317000)
$ ldd hello_musl
./hello_musl: error while loading shared libraries: /usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header
$ musl-ldd hello_musl
    /lib/ld-musl-x86_64.so.1 (0x5560ca667000)
    libc.so => /lib/ld-musl-x86_64.so.1 (0x5560ca667000)
$ ./hello_glibc
hi!
$ ./hello_musl
hi!
$

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

53. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 21-Окт-17, 15:21 
И? Я не вижу использования какой-либо библиотеки, зависимой от libc у Вас в hello_musl. Hello World на musl и я могу написать, тут проблем никаких не будет.
Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 21-Окт-17, 23:43 
Библиотеки, разумеется, тоже надо будет пересобрать. А видеть надо было не их использование, а отсутствие статической линковки, несмотря на наличие в системе двух разных libc.
Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 22-Окт-17, 11:41 
Ага, а теперь подумаем дальше. Предположим Вам требуется фреймворк какой-то, ну пересоберёте Вы все библиотеки, потратите много времени, а потом окажется, что у Вас используется ПО, которое от этого фреймворка зависит. Вы психанёте и, скорее всего, статическую линковку использовать будете, т. к. со сборкой с rpath может не везде оказаться просто.
Ответить | Правка | Наверх | Cообщить модератору

64. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 22-Окт-17, 14:22 
Если ты не понял из приведённого выше примера, я использую дистрибутив, разработчики которого осилили multilib. Библиотека, собранная с musl и установленная в /usr/lib/x86_64-linux-musl, спокойно может сосуществовать с библиотекой, собранной с glibc и установленной в /usr/lib/x86_64-linux-gnu. Так что поводов психовать нет.
Ответить | Правка | Наверх | Cообщить модератору

65. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 22-Окт-17, 15:08 
Ну, если только на пересборке N-й библиотеки...
Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –1 +/
Сообщение от asdasdasd (?), 20-Окт-17, 23:07 
Только вот в той-же libc есть математическая библиотека, где используется векторизация, SSE, AVX и прочее и прочее. Так вот, если делать так, чтоб максимально меньше памяти занимало, то все это идет лесом.
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

40. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –2 +/
Сообщение от asdasdasd (?), 20-Окт-17, 23:08 
> Только вот в той-же libc есть математическая библиотека, где используется векторизация,
> SSE, AVX и прочее и прочее. Так вот, если делать так,
> чтоб максимально меньше памяти занимало, то все это идет лесом.

А ну еще выравнивание памяти сильно память отъедает, только вот в скорости выигрывает. Оптимизации под конвеер (пустые nop'ы все дела) тоже память не экономят.

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

46. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Zarat (ok), 21-Окт-17, 11:05 
> А ну еще выравнивание памяти сильно память отъедает, только вот в скорости
> выигрывает. Оптимизации под конвеер (пустые nop'ы все дела) тоже память не
> экономят.

Ну есть мнение, что выравнивание за счет увеличения памяти, на архитектурах с внешним CISC-ом и внутренним RISC-ом (практически все современные i386 x86-64), в скорости не выигрывают (за исключением некоторого небольшого подмножества случаем). И выравнивать - это просто дань традиции и потому, что в gcc не поменяны настройки по умолчанию для режимов оптимизации в соответствии с вовременными реалиями

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

41. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –2 +/
Сообщение от angra (ok), 21-Окт-17, 01:09 
> Друзья, а подскажите пожалуйста, с этой либой если вместо glibc всё линкуется,
> то меньше памяти занимают программы и быстрее работают?

В случае _статической_ линковки занимают меньше места, работают в среднем чуть медленнее или в редких случаях могут не работать вовсе. Однако сравнение не совсем корректно, так как статическая линковка с glibc является проблемой, ряд функций из нее требуют наличия отдельно установленной glibc той же версии в системе. Так что дело не столько в меньшем размере, сколько вообще в наличии возможности полноценной статической линковки.
Основное предназначение musl это контейнеры и embed. Использовать ее для "улучшения" полноценного десктопа удел условного "школоло"


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

49. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –1 +/
Сообщение от Аноним (-), 21-Окт-17, 11:26 
Вы, наверное, ошиблись, - занимают больше места. Потому как вероятность, что другой такой библиотеки (в зависимостях установленного ПО) не будет в дистрибутиве - нулевая.
Ответить | Правка | Наверх | Cообщить модератору

50. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –1 +/
Сообщение от angra (ok), 21-Окт-17, 12:58 
Еще раз для особо одаренных. Оно не для замены glibc в ваших дистрах, оно совсем для другого, ключевые слова(статическая линковка, контейнеры, embed) можешь погуглить, но если не поймешь, то спрашивай, объясню с примерами.
Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 21-Окт-17, 15:27 
> Еще раз для особо одаренных. Оно не для замены glibc в ваших
> дистрах, оно совсем для другого, ключевые слова(статическая линковка, контейнеры, embed)
> можешь погуглить, но если не поймешь, то спрашивай, объясню с примерами.

Я Вам не про замену, а про статическую линковку говорил. Для каждого приложения статически слинкованная libc приведёт к огромному размеру установленного ПО.

А вот Вам про замену в наших дистрибутивах:
https://alpinelinux.org/posts/Alpine-Linux-has-switched-to-m...
https://ru.wikipedia.org/wiki/Alpine_Linux
Я использую Docker, поэтому использую как минимум один дистрибутив, который уже перешёл на musl.

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

57. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –1 +/
Сообщение от angra (ok), 21-Окт-17, 23:26 
> Я Вам не про замену, а про статическую линковку говорил. Для каждого приложения статически слинкованная libc приведёт к огромному размеру установленного ПО.

Спасибо, кэп, я же за двадцать лет опыта программистом ни за что не догадался бы. А теперь напряги извилины и подумай, зачем всё-таки иногда используют статическую линковку.

> Я использую Docker, поэтому использую как минимум один дистрибутив, который уже перешёл на musl.

И как и большинство любителей докера неспособен смотреть в корень. Во-первых, в alpine по прежнему есть glibc, так как не все программы нормально работают с musl, о чем я говорил с самого начала. Во-вторых, причина малого размера контейнера alpine в первую очередь в busybox, а не в musl. Поставь туда весь набор софта из debootstrap и получишь совсем небольшую разницу. musl же экономит 7.4MB однократно на .so и целых 28KB на каждую программу.

Ну и отдельно отмечу, что я говорил про десктопные дистры, к коим alpine не относится. А относится он как раз к задаче контейнеров. Или ты не в курсе даже о том, что докер это одно из решений контейнеризации?

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

59. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +1 +/
Сообщение от Led (ok), 22-Окт-17, 00:40 
> Во-первых, в alpine по прежнему есть glibc

Нет.

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

60. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –4 +/
Сообщение от angra (ok), 22-Окт-17, 04:47 
Посмотрел, действительно уже нет. Приходится людям с какой-нибудь из реп на гитхабе ставить ее.
Ответить | Правка | Наверх | Cообщить модератору

63. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 22-Окт-17, 12:00 
> Посмотрел, действительно уже нет. Приходится людям с какой-нибудь из реп на гитхабе
> ставить ее.

Зачем? Посмотрел, вроде поддерживаются GNU-расширения языка. Поэтому никто даже не почувствует разницы между библиотеками, если одну на другую в дистрибутиве поменять.

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

68. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от angra (ok), 23-Окт-17, 09:39 
Для использования бинарников, слинкованных с glibc.


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

69. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  –1 +/
Сообщение от Аноним (-), 23-Окт-17, 21:03 
Подразумевается скачанных? ln может всё-таки?
Ответить | Правка | Наверх | Cообщить модератору

71. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 23-Окт-17, 21:26 
Прошу прощения, ляпнул не подумавши, здесь моих текущих знаний недостаточно. Кажется, это повод почитать на досуге про процесс линковки и таблицы символов. Извините.
Ответить | Правка | Наверх | Cообщить модератору

66. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +1 +/
Сообщение от Led (ok), 22-Окт-17, 16:30 
> Приходится людям с какой-нибудь из реп на гитхабе ставить ее.

Нет.

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

62. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 22-Окт-17, 11:57 
У Вас может быть и есть 20 лет опыта, но я не вижу профессионализма. То, что Вы не можете признавать свои ошибки и спокойно это воспринимать (попытки доказать, что всё равно были правы, но Вам неправильно поняли), а также не задаёте вопросов в духе "имелось в виду это, либо это?" и "почему?". Это уже показатель, что у Вас merge request'ы не используются. А дальше логические цепочки доведут и до качества кода. Прав я?
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

67. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от angra (ok), 23-Окт-17, 09:38 
> То, что Вы не можете признавать свои ошибки и спокойно это воспринимать (попытки доказать, что всё равно были правы, но Вам неправильно поняли)

И где же у меня ошибка, кроме как с наличием glibc в современном alpine, которую я признал?

> а также не задаёте вопросов в духе "имелось в виду это, либо это?" и "почему?"

Если ТЫ не понимаешь, о чем я говорю, то это ТЫ должен задавать мне такие вопросы, а не наоборот. Я могу спросить лишь другое: "ты домашнее задание по поиску usecase для статической линковки выполнил?"

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

70. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от Аноним (-), 23-Окт-17, 21:15 
Мне было интереснее узнать ответ на свой последний вопрос. Насчёт merge request'ов. Впрочем ответ я уже не увижу, а у Вас по вечерам будут поводы для раздумий о всём своём накопленном опыте. Люди, которые умеют быстро обучаться могут за 3 года получить больше опыта, чем спорщики за 20 лет, если всё время правильно направлять. Я, например, сейчас такого обучаю. Я не собираюсь указывать, где и в чём Вы ошибались, просто дружеский совет о том, что можно и не пытаться красоваться, резко реагировать на все высказывания, фамильярничать. Всегда найдётся человек, кто знает больше Вас. Это не обязательно буду я, это может быть любой случайный зевака, решивший узнать текущее мнение народа. А умение быстро обучаться предполагает не восприятие в штыки любой новой информации, а диалог, в ходе которого люди выясняют правильную точку зрения и пытаются правильно понять друг друга. В заметной части случаев ярые споры рождаются из-за непонимания, когда обе стороны пытаются доказать одну и ту же точку зрения разными словами.
Ответить | Правка | Наверх | Cообщить модератору

72. "Выпуск стандартной Си-библиотеки Musl 1.1.17 с устранением у..."  +/
Сообщение от angra (ok), 24-Окт-17, 03:50 
Молодец, следуешь правилам демагога, когда нечего ответить по сути, надо либо переходить на личности, либо срываться в словоблудие. Вот только меня спор ради спора не интересует. Гуляй.
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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