Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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 Library е GNU проект (GNU Project) и представлява реализация на стандартната библиотека на езика C. В момента повечето GNU/Linux системи на настолни компютри и сървъри използват тази стандартна библиотека на езика C. Всъщност реализира често използвани функции на C библиотеката, поддържа много системни платформи и е доста богат на функции, но също така е относително обемист и голям

2. Musl-libc стандартната библиотека на езика C, проектът Musl-libc, пусна версия 1.0. Musl е лека библиотека със стандарт C, проектирана като алтернатива на библиотеката GNU C (glibc), uClibc или Android Bionic за вградени операционни системи и мобилни устройства. Тя следва спецификацията POSIX 2008 и стандарта C99, използва лиценза MIT и използва Linux дистрибуциите и проектите на Musl, включително sabotage, bootstrap-linux, LightCube OS и други.

3. Разработчиците на glibc стартираха Embedded glibc, съкратено eglibc, чиято основна цел е да прилага glibc към вградени приложения. Най-голямата промяна е да направите повече библиотечни функции конфигурируеми. По този начин, ако не ви трябват определени функции във вградената система, можете да ги изрежете без да ги компилирате в библиотеката на eglibc, намалявайки размера на крайната генерирана eglibc библиотека и отговаряйки на изискванията на вградената система (без да надвишава определен размер). По този начин можете да използвате glibc за вградени системни цели.

4. uClibc е малка библиотека със стандарти на език C, използвана основно за вградени системи. Първоначално е проектиран за uClinux (забележка: uClinux не поддържа MMU), затова е по-подходящ за микропроцесори. Съответно, тук 'u' означава μ, Микро или 'малък'. Характеристики на uClibc: (1) uClibc е много по-малък от glibc. (2) uClibc е независим, напълно преработен за използване във вградени системи. Той е несъвместим с glibc както по структура на изходния код, така и по двоичен код.

Таблицата по-долу показва размерите на файловете, компилирани от различни libc библиотеки.





Предишен:.NET/C# за настройка на политиката за захранване на Windows Server в режим на висока производителност
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com