LINUX.ORG.RU

Первый публичный релиз musl

 , , , ,


0

5

В списке рассылки uClibc Рич Фелкер (Rich Felker) объявил о первом публичном выпуске musl — новой реализации библиотек общего назначения языка C. Основные отличия от существующих решений:

  • В отличие от glibc, musl легче и конструктивно проще. Компиляция musl из исходных кодов на Intel Atom D510 занимает менее 40 секунд. Поддержка локалей ограничена UTF-8, что позволяет применять более прямые подходы и улучшает производительность. stdio также проще, меньше и, во многих случаях, ощутимо быстрее. В терминах big-O большинство используемых операций musl сопоставимы с glibc. При этом все алгоритмы более оптимальны по использованию памяти, в частности, многие операции, потенциально рискующие не завершиться из-за нехватки памяти в glibc, удачно сработают в musl, благодаря её более эффективному распределению O(1).
  • В отличие от dietlibc, разработчики не стремятся урезать каждый возможный байт, жертвуя производительностью и корректностью. musl не пытается отвратить вас от использования stdio, тредов, регулярных выражений и т.д., а стремится сделать эти элементы эффективными (размер бинарников, потребление памяти в рантайме и производительность).
  • В отличие от uClibc, musl имеет стабильное, хорошо определённое ABI. Особое внимание было уделено тому, чтобы не создавать лишних зависимостей между компонентами библиотеки, таким образом, при статической линковке будет использован только необходимый код.
  • В отличие от Google Bioinc (Android libc), musl не жертвует совместимостью со стандартами ради уменьшения размера библиотеки и не основан на старом коде BSD.
  • В отличие от всех вышеупомянутых реализаций, musl объединяет все стандартные функции в одну библиотеку (.a или .so), что значительно уменьшает время запуска, количество используемой памяти, упрощает процесс обновления и нивелирует риски несовпадения версий.

На данный момент musl реализует следующие стандарты:

  • ISO C99;
  • IEEE754;
  • POSIX 2008 base;
  • большую часть XSI и других из группы POSIX;
  • никаких заметных усилий на поддержку устаревших SVID и BSD направлено не было.

Целевая аудитория:

  • разработчики встраиваемых систем;
  • разработчики легковесных дистрибутивов Linux;
  • разработчики rescue disk;
  • любой, кто хочет собрать статически слинкованный бинарник для безболезненной установки на любой ОС с ядром Linux;
  • любой, чья программа может вызываться десятки или сотни тысяч раз в секунду и ей необходим минимальный оверхэд по времени старта и используемой памяти.

Текущий выпуск работает на платформе x86 с ядром Linux не старее 2.6 (список платформ будет увеличен в следующих релизах).

Полный набор .a имеет размер 160k, а .so — 220k. Подробную сравнительную таблицу возможностей musl и других реализаций можно посмотреть на сайте проекта.

Скачать

>>> Подробности

Больше велосипедов, хороших и разных!

d1337r ()
Ответ на: комментарий от d1337r

Ознакомьтесь в словарях с понятиями «эволюция», «развитие», и «новые технологии, основанные на трудах предшественников». Я понимаю, что обезьянкам-виндузятникам как дали 10 лет назад XP, так они в неё будут до посинения тыкаться, пусть она и тормозная и небезопасная и не поддерживает много чего современного.

anonymous ()

Хорошо, но x86-only, а такому самое первое место — на какой-нибудь ARM'овой или MIPS'овой платке.

Надеюсь на анонс будущих релизов, когда оно будет более портируемое.

anonymous ()

После прочтения новости захотелось раскурить LFS и вкрутить туда эту штуку =)

Lonli-Lokli ★★ ()
Ответ на: комментарий от DoctorSinus

и да, если заменить в системе glibc на musl, то придётся перекомпилировать всё?)

DoctorSinus ★★★★★ ()

Мне нравится

Судя по описанию эта библиотека - весьма адекватная замена glibc.
Кстати, когда я узнал, что glibc не оптимизирована по O(), был шокирован. Что за убожество!

Sergey_MSU ()
Ответ на: комментарий от Lonli-Lokli

по ссылке есть список софта, который автор уже собирал с использованием musl. Там не так много, так что спешить не стоит.

silw ★★★★★ ()
Ответ на: комментарий от DoctorSinus

glibc несовместима сама с собой. Ответ, думаю, очевиден.

eugene2k ()

годный вброс

Поддержка локалей ограничена UTF-8

не погорячились? Хотя...

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

ИМХО в самый раз, олдфаги всё равно использовать не станут.

Lonli-Lokli ★★ ()

>имплементаций

Обеднел русский язык, обеднел

pylin ★★★★★ ()

> glibc не оптимизирована по O() Как это ни странно, алгоритм, выглядящий «лучше» с точки зрения порядка сложности, не всегда является лучшим для конкретной задачи. Пример? http://www.mail-archive.com/freebsd-current@freebsd.org/msg125335.html
--
Фразы вроде употребленной топикстартером «оптимизированы в big-O» лучше не использовать, это неграмотное употребление. «Big-O» это нотация, в ней можно «выразить» или «записать».

triampurum ()
Ответ на: комментарий от anonymous

>Хорошо, но x86-only,

по ссылке арм на очереди.

AVL2 ★★★★★ ()

ебииилдов...

anonymous ()

Прикольно, хоть и не поддерживает C++... :)

Ждём релиза для x86_64.

cruxish ★★★★ ()

> программа может вызываться десятки или сотни тысяч раз в секунду

например?

в отличии от glibc

ну стыдно же, на главной-то...

muon ★★★ ()

Составившему новость благодарность за чёткое описание отличий от существующих решений.

JackYF ★★★★ ()

>благодаря лучшей реализации пространства O(1)

Пространство O(1)? Что это за херня такая?

Zenom ★★★ ()

Люди работают, это хорошо. Даже если эта библиотека не будет использоваться сама по себе, годные идеи будут портированы в glibc.

Vudod ★★★★★ ()

>многие операции, которые могут не завершиться из-за условий out-of-memory в glibc, удачно сработают в musl, благодаря лучшей реализации пространства O(1).

ЧТО? Что это? Что это делает на моем ЛОРе?

А разработчики только оптимизировали асимптотическую сложность или еще и применяли здравый смысл?

Dimanc ★★ ()
Ответ на: комментарий от DoctorSinus

По ссылкам ходить мама не разрешает?

anonymous ()

Баг с подсчетом синуса исправлен, или тоже из глибц скопипастили?

anonymous ()
Ответ на: комментарий от AVL2

очень хорошо, иначе то говна мамонта не избавиться.

thunar ★★★★★ ()
Ответ на: комментарий от anonymous

В ФАКе написано, что мат. функций C99 нет. Похоже, что там вообще нет мат. функций. Надо поставить, посмотреть.
Вообще штука интересная. Надо будет пощупать.

anonymous ()

21й век, а они всё клонируют дебильные сишные либы. /facepalm

d9d9 ★★★ ()

>позволяет применять более прямые подходы
порвало в клочья

WARNING ★★★★ ()

Очень интересная новость.
Но из-за

Полный набор .a имеет размер 160k, а .so 220k.

пролетает наверное мимо мелкого embedded =) Впрочем, будем смотреть.

GAMer ★★★★★ ()

>> Поддержка локалей ограничена UTF-8, что позволяет применять более прямые подходы

стабильное, хорошо определенное ABI

Вот это очень хорошо.

sergej ★★★★★ ()

> Поддержка локалей ограничена UTF-8

АААААААААААааааааааааа!!!! ПАМАГИТЕ!!!! O_O

shaplov ★★ ()
Ответ на: комментарий от namezys

опять огороженный GPL

Это очень хорошо, что новые проекты стали делать под вменяемою современною лицензией. И да, там специально написано, что совместимость с BSD старьём не планируется.

Vudod ★★★★★ ()
Ответ на: комментарий от shaplov

Поддержка локалей ограничена UTF-8

АААААААААААааааааааааа!!!! ПАМАГИТЕ!!!! O_O

Не волнуйтесь, за вами уже едут.

Vudod ★★★★★ ()
Ответ на: комментарий от Vudod

Лицензии не бывают вменяемыми, код следует делать общественным достоянием.

anonymous ()
Ответ на: комментарий от GAMer

пролетает наверное мимо мелкого embedded =)

а на такой мелкий embedded линух вообще запустится? Потом полный бинарь, а ты можешь не всё собирать.

true_admin ★★★★★ ()
Ответ на: комментарий от GAMer

>пролетает наверное мимо мелкого embedded =) Впрочем, будем смотреть.
Busybox (uclibc). Или что вы имеете в виду под словом «мелкий»? 64K RAM?

markevichus ★★★ ()

С О() нотацией намудрили, что за «оптимизированы в big-O» и «пространства O(1)»?

frey ★★ ()

>...Поддержка локалей ограничена UTF-8...
Надеюсь - не ограниченым latin-only набором? Они все эти «смешные закорючки», не используемые на территории USA не выкинули?

Pronin ★★★★ ()
Ответ на: комментарий от frey

уже разъяснили, корректору отписал, должен поправить.

silw ★★★★★ ()

КАК Я РАД!

Сабж. ждём ебилдов.

uju ★★ ()

Хм... Вопросов куча, конечно. Про кроссплатформенное компилирование софта ввиду «х86 онли» я даже и не спрашиваю.

Но вот вопрос - оно хотя бы само себя сможет собрать?

Типа: берем обычный линукс, компилим мусли, потом гцц со статической линковкой в мусли, потом этой новой гцц попробовать собрать мусли снова. Справится? И вообще с отсутствующей поддержкой математических функций С99 тот же гцц соберется ли? :)

И еще... Как «Поддержка локалей ограничена UTF-8» сочетается с явно серверным применением «программа может вызываться десятки или сотни тысяч раз в секунду и ей необходим минимальный оверхэд по времени старта и используемой памяти»??? Очевидно, эти ваши Apche/MySQL/PHP/{вставить сюда любимый список программ} как раз и используют механизм локалей глибс для себя. Так что... они вообще соберутся хотя бы??? :)


su ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.