После 10 месяцев разработки представлен релиз стандартной Си-библиотеки Musl 1.2.5, предоставляющей реализацию libc, которая подходит для применения как на стационарных ПК и серверах, так и на мобильных системах, сочетая полноценную поддержку стандартов (как в Glibc) с небольшим размером, низким потреблением ресурсов и высокой производительностью (как в uClibc, dietlibc и Android Bionic). Имеется поддержка всех обязательных интерфейсов C99 и POSIX 2008, а также частично C11 и набор расширений для многопоточного программирования (POSIX threads), управления памятью и работы с локалями. Код Musl поставляется под свободной лицензией MIT...Подробнее: https://www.opennet.me/opennews/art.shtml?num=60702
> В DNS-резолвере реализована обработка ответов с длинными последовательностями CNAME. Решена проблема, из-за которой отбрасывались некоторые большие ответы, передаваемые через TCP.И это поделие используют в докер-контейнерах?!
> И это поделие используют в докер-контейнерах?!Да типун тебе на язык, пользуются исключительно только твоей реализацией ну и еще пропихнутыми CoreOS-ями, все ведь любят - больше зависимостей в каждый докер
У musl с DNS весело
https://www.opennet.me/opennews/art.shtml?num=59069 Выпуск стандартной Си-библиотеки Musl 1.2.4
> В DNS-резолвер добавлена возможность отправки запроса по TCP в случае неудачного обращения по UDP, что решило проблему с запросом больших DNS-записей и наладило совместимость с рекурсивными DNS-серверами, не поддерживающими отдачу части результата в обрезанных UDP-ответах. Попутно устранено ещё несколько недоработок, связанных с DNS, таких как невозможность раздельной обработки состояний NODATA и NXDOMAIN.А сейчас в 1.2.5
> В DNS-резолвере реализована обработка ответов с длинными последовательностями CNAME. Решена проблема, из-за которой отбрасывались некоторые большие ответы, передаваемые через TCP.что в лоб, что по лбу....
Считаю musl хорошим проектом - альтернативные реализации нужны, а у неё ещё и лицензия по-настоящему свободная.Однако есть минус - очень популярен миф про её производительность - на самом деле musl медленнее Glibc в реальных задачах. Например, есть много случаев, когда "современные" разработчики (и на нативных, и на интерпретируемых языках) использовали шаблоны контейнеров на основе Alpine (или других дистрибутивов, где musl) и видели большие потери в производительности, вплоть до разницы в более чем 10 раз.
Ну это не миф. Это авторы затирали, что, мол, у нас код проще и быстрее. А толпы хомяков поверили, не будут же авторы врать.
Это блогеры синтетику нашли где обычный глибс быстрее и трындят на каждом углу. А такое с чем угодно можно найти даже с джаваскриптом. Это как с р-стом типа за границы буфера не выходит значит безопасТный.
Для начала придётся найти хоть что-то, в чём обычный глибц медленнее. Только когда среднее в итоге всё равно настолько быстрее, выводы тут напрашиваются вполне определённые. В синтетике быстрее быть дело не хитрое, кстати, вон Интел подтвердит.
> Это как с р-стом типа за границы буфера не выходит значит безопасТный.CVE-2021-28879 с вами не согласен, overflow не победим
Это докер по айо проседает. Надо хотя бы с хоста диск читать или оперы.
> а у неё ещё и лицензия по-настоящему свободнаяНет, там Expat/MIT.
MIT - это и есть свободная.
Насколько помню, в Musl медленный аллокатор. Можно использовать другой, например jemalloc, который может и медленней maloc из GLibc, но потребляет в разы меньше памяти.
да, это политика разработчиков. В стандартной библиотеке будет простой и надежный аллокатор, которого достаточно для большей части софта, а если нужна скорость - то вот вам на здоровье jemalloc, mimalloc, и что там еще есть. В пакете alpine есть даже специальный скрипт jemalloc.sh, устанавливающий его в LD_PRELOAD.
Для всякого аллокатора можно найти сценарий использования, когда он проиграет другому аллокатору. Так что политика разумная. Другое дело, что пользователи библиотеки почему-то не всегда озадачиваются выбором подходящего аллокатора или написанием своего, когда им нужна скорость.
> Например, есть много случаев, когда "современные" разработчики (и на нативных, и на интерпретируемых языках) использовали шаблоны контейнеров на основе Alpine (или других дистрибутивов, где musl) и видели большие потери в производительностиbind mount реальных дисков разработчики не пробовали?
> лицензия по-настоящему свободная.Опять двадцать пять.
MIT и т.п. — свобода для производителей ограничивать права пользователей (отсюда пропаганда пермиссив-лицензий со стороны корпораций),
GPL — свобода для потребителей (нельзя ограничивать пользователей в правах, что корпорациям очень не нравится, откуда и fud про несвободность и вирусность).
MIT и т.п. — свобода для разрабов, которые могут продавать результаты своего труда, а не ходит побираться по корпам.
GPL — мнимая свобода для потребл##дей, что совсем не мешает корпам зарабатывать и при этом вертеть их как хочетПоправил, не благодари
Они мнимые (права) потому что прошло то время когда васяны открывали Глибс с Емакс. Теперь кроме патчсетов под свежие либы и опакечивание сил у сообщества не хватает - время дорого им жаба душит.
И как же авторам продавать результаты своего труда под MIT лицензией, расскажите мне? Чем это отличается от зарабатывания на GPL? Двойное лицензирование, например, возможно в обоих случаях.А корпам зарабатывать вообще никто не запрещает. Главное, чтоб при этом они предоставляли эти самые свободы своим пользователям. И если они "вертят своих пользователей как хотят", то скорее всего никаких свобод тут и нет, и стоит просто отказаться от поддержки таких корпораций.
Если Musl не имеет поддержки х32,то можно ли yf y`v собрать Wine c wow64 для 32 битных приложений?
x32 и из ведра выпилили уже. Мсье видимо хотел сказать i386
Та ты понял о чём я говорил... Кажется нельзя так собрать. Нужно чтобы в системе была поддержка мультилиб.Печалька.
В Void Linux, где еще 1.1.24, когда ждать?
В Alpine Linux Edge уже прилетело.
Что приятно удивило (когда несколько лет назад пробовал эту альтернативу glibc) так это то, что код после компиляции получается в 10, а иногда и в 20 раз меньше объёмом. НО! По производительности математических расчётов иногда терял 20% по сравнению с glibc. Поэтому да, не панацея, но очень интересный и перспективный проект. И я лично его планирую проверять для каждого отдельного решения. Где-то нужен компактный код закинуть в прошивку, а где-то лучше использовать все возможности оптимизации современных CISC CPU для высокопроизводительных проектов.
> Добавлены функции preadv2() и pwritev2() […]. От preadv() и pwritev() новые функции отличаются наличием ещё одного аргументаПосле Лиспов и Кложуры от такого становится почему-то очень смешно. А когда понадобится ещё один аргумент передать, preadv3() и pwritev3() будут вводить, да? «У» в названии языка Си значит «удобство».
>После Лиспов и Кложуры от такого становится почему-то очень смешно.
>КложурыВот и видно, что настоящего лиспа ты не нюхал, иначе бы писал на сишные функции обвязки.
Пробовал в void linux. Вернулся на glibc. Musl не юзабелен если не хочешь вылавливать какие-то постоянные рандомные баги. Да и ваще вся шумиха больше напоминает тему gcc->clang и x11>wayland, т.е. корпорациями лицензия не нравится и они пропихивают угодное им.