musl

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 (2016-02-22))
Версії 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.

Виноски

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.