Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 1|Відповідь: 0

[linux] Відмінності між бібліотеками стандартів glibc і musl у середовищі Linux

[Копіювати посилання]
Опубліковано44 секунди тому | | | |
musl Linux і glibc — це дві різні реалізації бібліотеки стандарту C, і вони суттєво відрізняються в кількох аспектах.

Історія та використання:

GLIBC є однією з перших і найпоширеніших реалізацій стандартної бібліотеки C з довгою історією розробки та широкою підтримкою спільноти. Він використовується більшістю дистрибутивів Linux, особливо в настільних та серверних середовищах.
musl — це відносно нова реалізація, розроблена для надання менших, швидших і більш безпечних бібліотек на C. Його впровадили деякі легкі дистрибутиви Linux, такі як Alpine Linux.

Функції та сумісність:

GLBC є комплексним і складним, підтримуючи кілька розширень і функцій, з високою стабільністю та надійністю.
Хоча musl має менше функцій, він суворо дотримується стандарту POSIX і має значно менше коду, ніж glibc, тому не потребує додаткових зовнішніх залежностей. Бінарна сумісність MUSL обмежена, але з виходом нових версій вона поступово покращується.

Продуктивність та використання ресурсів:

MUSL розроблений як легкий, підходить для вбудованих систем і ресурсних середовищ, а також може створювати компактні статичні виконувані файли.
Хоча GLBC потужний, він може бути не таким хорошим, як MUSL за використанням ресурсів і продуктивністю.

Підтримка налагодження та розробки:

Оскільки glibc є більш комплексним, його зазвичай рекомендують під час налагодження додатків і ранньої розробки.
MUSL може бути не таким підтримуючим, як GLBC, у деяких інструментах налагодження (наприклад, GDB і Ltrace).

Дозволи та підтримка громади:

musl використовує ліцензію MIT, яка є більш поблажливою, ніж ліцензія LGPL від Glibc, що полегшує публікацію статичних виконуваних файлів.
GLBC має більшу підтримку спільноти та ширші ресурси документації.

Застосування у конкретних сферах:

MUSL відзначається у вбудованих системах, контейнеризованих додатках і легких дистрибутивах.
GLBC частіше зустрічається у робочих столах і серверах, підтримуючи більше функцій і розширень.

Відмінності між кількома бібліотеками стандарту C

1、. Glibc glibc = Бібліотека GNU C — це проєкт GNU (GNU Project) і реалізація бібліотеки стандартів мови C. Наразі більшість систем GNU/Linux на робочих столах і серверах використовують цю бібліотеку мови C. Він реалізує поширені функції бібліотеки C, підтримує багато системних платформ і є досить багатофункціональним, але водночас досить громіздким і великим

2. Проєкт Musl-libc випустила версію 1.0 у бібліотеці мови Musl-libc C. Musl — це легка бібліотека стандарту C, розроблена як альтернатива бібліотеці GNU C (glibc), uClibc або Android Bionic для вбудованих операційних систем і мобільних пристроїв. Він дотримується специфікації POSIX 2008 та стандарту C99, використовує ліцензію MIT і використовує дистрибутиви та проєкти Musl для Linux, включаючи саботаж, bootstrap-linux, LightCube OS та інші.

3. Розробники glibc запустили вбудований glibc, скорочено eglibc, основна мета якого — застосовувати glibc до вбудованих додатків. Найбільша зміна — зробити більше функцій бібліотеки налаштовуваними. Таким чином, якщо вам не потрібні певні функції у вбудованій системі, ви зможете обрізати їх без компіляції в бібліотеку eglibc, зменшуючи розмір остаточної згенерованої бібліотеки eglibc і відповідаючи вимогам вбудованої системи (не перевищуючи певний розмір). Таким чином, ви зможете використовувати glibc для цілей вбудованої системи.

4. uClibc — це невелика бібліотека стандартів мови C, переважно використовується для вбудованих систем. Спочатку він був розроблений для uClinux (примітка: uClinux не підтримує MMU), тому більше підходить для мікропроцесорів. Відповідно, тут 'u' означає μ, Micro або 'tiny'. Особливості uClibc: (1) uClibc значно менший за glibc. (2) uClibc є незалежним, повністю переробленим для використання в вбудованих системах. Він несумісний з glibc як у структурі вихідного коду, так і за двійковим кодом.

Таблиця нижче показує розміри файлів, скомпільовані різними бібліотеками libc.





Попередній:.NET/C# для встановлення політики живлення Windows Server у режим високої продуктивності
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com