Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 1|Resposta: 0

[Linux] Diferenças entre as bibliotecas padrão glibc e musl no ambiente Linux

[Copiar link]
Publicado em44 segundos atrás | | | |
musl Linux e glibc são duas implementações diferentes da biblioteca padrão C, e diferem significativamente em vários aspectos.

História e Uso:

O glibc é uma das implementações mais antigas e amplamente utilizadas de bibliotecas padrão C, com uma longa história de desenvolvimento e amplo apoio comunitário. É adotado pela maioria das distribuições Linux, especialmente em ambientes de desktop e servidor.
musl é uma implementação relativamente nova projetada para fornecer bibliotecas C menores, mais rápidas e mais seguras. Ele foi adotado por algumas distribuições Linux leves, como o Alpine Linux.

Recursos e Compatibilidade:

O GLBC é abrangente e complexo, suportando múltiplas extensões e funções, com alta estabilidade e confiabilidade.
Embora o musl tenha menos recursos, ele segue estritamente o padrão POSIX e tem muito menos código do que o glibc, não exigindo dependências externas adicionais. A compatibilidade binária do MUSL é limitada, mas com o lançamento de novas versões, a compatibilidade está melhorando gradualmente.

Desempenho e Uso de Recursos:

O MUSL foi projetado para ser leve, adequado para sistemas embarcados e ambientes com recursos limitados, e pode criar arquivos executáveis estáticos compactos.
Embora o GLBC seja poderoso, pode não ser tão bom quanto o MUSL em termos de uso de recursos e desempenho.

Depuração e Suporte ao Desenvolvimento:

Como o glibc é mais abrangente, geralmente é recomendado durante a depuração da aplicação e o desenvolvimento inicial.
O MUSL pode não ser tão suportável quanto o GLBC em algumas ferramentas de depuração (como GDB e Ltrace).

Permissões e Apoio Comunitário:

O MUSL usa a licença MIT, que é mais flexível do que a licença LGPL da glibc, facilitando a publicação de arquivos executáveis estáticos.
O GLBC conta com maior apoio comunitário e recursos de documentação mais amplos.

Aplicações em áreas específicas:

O MUSL se destaca em sistemas embarcados, aplicações containerizadas e distribuições leves.
GLBC é mais comum em ambientes de desktop e servidor, suportando mais recursos e extensões.

Diferenças entre várias bibliotecas padrão C

1、. Glibc glibc = GNU C Library é um Projeto GNU (GNU Project) e é a implementação da biblioteca padrão da linguagem C. Atualmente, a maioria dos sistemas GNU/Linux em desktops e servidores utiliza essa biblioteca padrão da linguagem C. Na verdade, ele implementa funções comuns de biblioteca C, suporta muitas plataformas de sistema e é bastante rico em recursos, mas também relativamente volumoso e grande

2. A biblioteca padrão da linguagem C Musl-libc foi lançada pela versão 1.0. Musl é uma biblioteca leve padrão C projetada como uma alternativa à biblioteca GNU C (glibc), uClibc ou Android Bionic para sistemas operacionais embarcados e dispositivos móveis. Segue a especificação POSIX 2008 e o padrão C99, utiliza a licença MIT e utiliza distribuições e projetos Linux do Musl, incluindo sabotage, bootstrap-linux, LightCube OS e outros.

3. Os desenvolvedores do glibc lançaram o glibc embutido, abreviado como eglibc, cujo principal objetivo é aplicar o glibc a aplicações embarcadas. A maior mudança é tornar mais funções da biblioteca configuráveis. Dessa forma, se você não precisar de certas funções no seu sistema embarcado, pode cortá-las sem compilá-las na sua biblioteca eglibc, reduzindo o tamanho da biblioteca eglibc gerada final e atendendo aos requisitos do seu sistema embarcado (não excedendo um certo tamanho). Dessa forma, você pode usar glibc para fins de sistemas embarcados.

4. uClibc é uma pequena biblioteca padrão de linguagem C, usada principalmente para sistemas embarcados. Ele foi originalmente projetado para uClinux (nota: o uClinux não suporta MMU), então é mais adequado para microprocessadores. Correspondentemente, aqui 'u' significa μ, Micro ou 'minúsculo'. Características do uClibc: (1) o uClibc é muito menor que o glibc. (2) o uClibc é independente, completamente reimplementado para uso em sistemas embarcados. É incompatível com glibc tanto na estrutura do código-fonte quanto no binário.

A tabela abaixo mostra os tamanhos dos arquivos compilados por diferentes bibliotecas libc.





Anterior:.NET/C# para definir a política de energia do Windows Server para modo de alto desempenho
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com