muslстандартна бібліотека мови C (libc), орієнтована для використання в Linux на вбудованих і мобільних пристроях. Бібліотека відрізняється невеликим розміром, високою продуктивністю, безпекою, простотою і дотриманням стандартів. Автором проекту є Рич Фелкер (Rich Felker), учасник проекту Openwall і член групи Austin Group, що розвиває і підтримує стандарти POSIX. Перший стабільний випуск 1.0 побачив світ у березні 2014.[1] Початковий код Musl поставляється під вільною ліцензією MIT, що допускає використання бібліотеки і у власницьких проектах.

musl
Тип стандартна бібліотека мови C
Розробник Rich Felker (dalias) та інші
Перший випуск 20 березня 2014[1]
Стабільний випуск 1.1.14[2] (22 лютого 2016; 8 років тому (2016-02-22))
Платформа x86, x86 64, ARM, MIPS, Microblaze, PowerPC
Операційна система Linux 2.6 або пізніші
Мова програмування C[3]
Ліцензія MIT License[4]
Репозиторій git.musl-libc.org/cgit/musl
Вебсайт www.musl-libc.org

musl є універсальною реалізацією libc і підходить для застосування як на стаціонарних ПК і серверах, так і на мобільних системах, поєднуючи повноцінну підтримку стандартів, властиву для повновагих бібліотек, таких як Glibc (GNU C library), з невеликим розміром, низьким споживанням ресурсів і високою продуктивністю, властивим спеціалізованим варіантам libc для вбудованих систем, таких як uClibc, dietlibc і Android Bionic. Musl надає повну підтримку всіх обов'язкових інтерфейсів C99 і POSIX 2008, а також частково C11 і набір розширень, що набули поширення в Linux-оточеннях. У тому числі бібліотека надає засоби для багатониткового програмування (POSIX threads), управління пам'яттю і роботи з локаллю.

Musl підтримує роботу тільки в Linux і може працювати з ядрами Linux, починаючи з випуску 2.6.39. Офіційно підтримуються наступні архітектури: i386, x86 64, ARM (armv4t і новіше), MIPS, PowerPC і Microblaze. Експериментальна підтримка забезпечена для SuperH (SH) і x32. З компіляторів підтримуються GCC 3.4.6+, Clang 3.2+, PCC 1.1.0+ і CParser/firm. При статичному зв'язуванні всі компоненти musl займають приблизно 400 Кб, при динамічному - 500 Кб (для порівняння в Glibc 1.5 Мб і 2 Мб). Мінімальний розмір статично зібраної програми становить 1.8 Кб, Hello World - 13k (в Glibc - 508 Кб), при динамічному зв'язуванні додається 20 Кб. По продуктивності, musl в основному близька до Glibc, за винятком операцій динамічного зв'язування і декодування UTF-8, які виконуються в musl швидше в кілька разів.[5]

На базі musl розвивається кілька дистрибутивів Linux, серед яких проекти OSv, Sabotage, LightCube OS, starchlinux, morpheus і Snowflake. Musl також застосовується в компіляторі Emscripten, використовуваному для перетворення C/C++ проектів в подання на JavaScript. З відомих дистрибутивів, в яких забезпечена опціональна підтримка Musl, можна відзначити Debian, Ubuntu, OpenWrt, Gentoo і Arch Linux. Серед дистрибутивів, які планують перехід за замовчуванням на Musl: Aboriginal, Alpine і Dragora.

Виноски ред.

  1. а б musl 1.0.0 released. Архів оригіналу за 24 травня 2014. Процитовано 5 січня 2015.
  2. Download musl. musl-libc.org. 22 лютого 2016. Архів оригіналу за 13 січня 2015. Процитовано 20 квітня 2016.
  3. The musl Open Source Project on Open Hub: Languages Page — 2006.
  4. COPYRIGHT. Архів оригіналу за 17 червня 2015. Процитовано 5 січня 2015.
  5. Представлена стандартная Си-библиотека Musl 1.0.0, развиваемая в качестве альтернативы Glibc [Архівовано 3 січня 2015 у Wayback Machine.] // opennet.ru 20.03.2014

Посилання ред.