musl — Вікіпедія
Тип | стандартна бібліотека мови C |
---|---|
Розробник | Rich Felker (dalias) та інші |
Перший випуск | 20 березня 2014[1] |
Стабільний випуск | 1.1.14[2] (22 лютого 2016 ) |
Платформа | 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 — стандартна бібліотека мови C (libc), орієнтована для використання в Linux на вбудованих і мобільних пристроях. Бібліотека відрізняється невеликим розміром, високою продуктивністю, безпекою, простотою і дотриманням стандартів. Автором проекту є Рич Фелкер (Rich Felker), учасник проекту Openwall і член групи Austin Group, що розвиває і підтримує стандарти POSIX. Перший стабільний випуск 1.0 побачив світ у березні 2014.[1] Початковий код Musl поставляється під вільною ліцензією MIT, що допускає використання бібліотеки і у власницьких проектах.
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.
- ↑ а б musl 1.0.0 released. Архів оригіналу за 24 травня 2014. Процитовано 5 січня 2015.
- ↑ Download musl. musl-libc.org. 22 лютого 2016. Архів оригіналу за 13 січня 2015. Процитовано 20 квітня 2016.
- ↑ The musl Open Source Project on Open Hub: Languages Page — 2006.
- ↑ COPYRIGHT. Архів оригіналу за 17 червня 2015. Процитовано 5 січня 2015.
- ↑ Представлена стандартная Си-библиотека Musl 1.0.0, развиваемая в качестве альтернативы Glibc [Архівовано 3 січня 2015 у Wayback Machine.] // opennet.ru 20.03.2014
- Офіційний сайт
- Comparison of C/POSIX standard library implementations for Linux [Архівовано 11 листопада 2020 у Wayback Machine.]
- Project:Hardened musl on Gentoo wiki [Архівовано 4 січня 2015 у Wayback Machine.]