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

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

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

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

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

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

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

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

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

>>> Скачать

©  Linux.org.ru