Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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 и использует дистрибутивы и проекты Musl Linux, включая саботаж, bootstrap-linux, LightCube OS и другие.

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

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

В таблице ниже показаны размеры файлов, скомпилированные разными библиотеками libc.





Предыдущий:.NET/C# для установки политики питания Windows Server в режим высокой производительности
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com