Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 1|Répondre: 0

[Linux] Différences entre les bibliothèques standard glibc et musl dans l’environnement Linux

[Copié le lien]
Publié surIl y a 44 secondes | | | |
musl Linux et glibc sont deux implémentations différentes de la bibliothèque standard C, et elles diffèrent significativement sur plusieurs aspects.

Histoire et utilisation :

glibc est l’une des premières et des plus utilisées implémentations de bibliothèques standard C, avec une longue histoire de développement et un large soutien communautaire. Il est adopté par la plupart des distributions Linux, en particulier dans les environnements de bureau et de serveurs.
musl est une implémentation relativement récente conçue pour fournir des bibliothèques C plus petites, plus rapides et plus sécurisées. Il a été adopté par certaines distributions Linux légères, telles qu’Alpine Linux.

Fonctionnalités et compatibilité :

GLBC est complet et complexe, prenant en charge plusieurs extensions et fonctions, avec une grande stabilité et fiabilité.
Bien que musl ait moins de fonctionnalités, il suit strictement la norme POSIX et dispose de beaucoup moins de code que glibc, ne nécessitant aucune dépendance externe supplémentaire. La compatibilité binaire de MUSL est limitée, mais avec la sortie de nouvelles versions, la compatibilité s’améliore progressivement.

Performance et utilisation des ressources :

MUSL est conçu pour être léger, adapté aux systèmes embarqués et environnements à ressources limitées, et peut créer des fichiers exécutables statiques compacts.
Bien que GLBC soit puissant, il n’est peut-être pas aussi performant que MUSL en termes d’utilisation des ressources et de performances.

Débogage et support au développement :

Comme glibc est plus complet, il est généralement recommandé lors du débogage de l’application et du développement précoce.
MUSL n’est peut-être pas aussi supportable que GLBC dans certains outils de débogage (comme GDB et Ltrace).

Permis et soutien communautaire :

MUSL utilise la licence MIT, qui est plus souple que la licence LGPL de glibc, ce qui facilite la publication de fichiers exécutables statiques.
GLBC bénéficie d’un plus grand soutien communautaire et de ressources documentaires plus étendues.

Applications dans des domaines spécifiques :

MUSL excelle dans les systèmes embarqués, les applications conteneurisées et les distributions légères.
GLBC est plus courant dans les environnements de bureau et serveurs, prenant en charge davantage de fonctionnalités et d’extensions.

Différences entre plusieurs bibliothèques de la norme C

1、. Glibc glibc = GNU C Library est un projet GNU (GNU Project) et constitue l’implémentation de la bibliothèque standard du langage C. Actuellement, la plupart des systèmes GNU/Linux sur ordinateurs de bureau et serveurs utilisent cette bibliothèque standard en langage C. Il implémente en fait des fonctions courantes de bibliothèque C, prend en charge de nombreuses plateformes système, et est assez riche en fonctionnalités, mais aussi relativement volumineux et volumineux

2. Le projet de bibliothèque standard du langage C Musl-libc a publié la version 1.0. Musl est une bibliothèque légère standard C conçue comme une alternative à la bibliothèque GNU C (glibc), uClibc ou Android Bionic pour les systèmes d’exploitation embarqués et les appareils mobiles. Il suit la spécification POSIX 2008 et la norme C99, utilise la licence MIT, et utilise les distributions et projets Linux de Musl, notamment sabotage, bootstrap-linux, LightCube OS, et bien d’autres.

3. Les développeurs de glibc ont lancé Embedded glibc, abrégé en eglibc, dont le but principal est d’appliquer glibc aux applications embarquées. Le plus grand changement est de rendre plus de fonctions de bibliothèque configurables. Ainsi, si vous n’avez pas besoin de certaines fonctions dans votre système embarqué, vous pouvez les couper sans les compiler dans votre bibliothèque eglibc, réduisant ainsi la taille de la bibliothèque eglibc finale générée et répondant aux exigences de votre système embarqué (sans dépasser une certaine taille). De cette façon, vous pouvez utiliser glibc pour des besoins de système embarqué.

4. uClibc est une petite bibliothèque standard en langage C, principalement utilisée pour les systèmes embarqués. Il a été initialement conçu pour uClinux (note : uClinux ne supporte pas MMU), il est donc plus adapté aux microprocesseurs. De même, ici, « u » signifie μ, Micro ou « minuscule ». Caractéristiques d’uClibc : (1) uClibc est beaucoup plus petit que glibc. (2) uClibc est indépendant, entièrement réimplémenté pour une utilisation dans les systèmes embarqués. Il est incompatible avec glibc tant dans la structure du code source que dans le binaire.

Le tableau ci-dessous montre les tailles de fichiers compilées par différentes bibliothèques libc.





Précédent:.NET/C# pour définir la politique d’alimentation de Windows Server en mode haute performance
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com