musl
musl — стандартна бібліотека мови C (libc), орієнтована для використання в Linux на вбудованих і мобільних пристроях. Бібліотека відрізняється невеликим розміром, високою продуктивністю, безпекою, простотою і дотриманням стандартів. Автором проекту є Рич Фелкер (Rich Felker), учасник проекту Openwall і член групи Austin Group, що розвиває і підтримує стандарти POSIX. Перший стабільний випуск 1.0 побачив світ у березні 2014.[1] Сирцевий код Musl поставляється під вільною ліцензією MIT, що допускає використання бібліотеки і у власницьких проектах.
Тип | стандартна бібліотека мови C |
---|---|
Розробник | Rich Felker (dalias) та інші |
Перший випуск | 20 березня 2014[1] |
Стабільний випуск | 1.1.14[2] (22 лютого 2016 ) |
Версії | 1.2.2 (15 січня 2021)[3] |
Репозиторій | git.musl-libc.org/cgit/musl |
Платформа | x86, x86 64, ARM, MIPS, Microblaze, PowerPC |
Операційна система | Linux 2.6 або пізніші |
Мова програмування | C[4] |
Ліцензія | MIT License[5] |
Вебсайт | 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 швидше в кілька разів.[6]
На базі 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
- Download musl. musl-libc.org. 22 лютого 2016. Процитовано 20 квітня 2016.
- musl 1.2.2 release — 2021.
- The musl Open Source Project on Open Hub: Languages Page — 2006.
- COPYRIGHT
- Представлена стандартная Си-библиотека Musl 1.0.0, развиваемая в качестве альтернативы Glibc // opennet.ru 20.03.2014