Musl
| Développé par | Rich Felker et al. |
|---|---|
| Première version | 11 février 2011[1] |
| Dernière version | 1.2.6[2] () |
| Dépôt | https://git.musl-libc.org/cgit/musl |
| Écrit en | C |
| Système d'exploitation | Linux |
| Environnement | Linux 2.6 ou plus |
| Type |
Bibliothèque standard du C Linux embarqué Linux pour appareils mobiles (en) |
| Licence | MIT |
| Site web | musl.libc.org |
musl est une bibliothèque standard C destinée aux systèmes d'exploitation basés sur le noyau Linux, publiée sous licence MIT[3]. Elle a été développée par Rich Felker dans le but de créer une implémentation de la libc propre, efficace et conforme aux normes[4].
musl a été conçu de zéro pour permettre une liaison statique (en) efficace et offrir une robustesse de qualité temps réel en évitant les situations de compétition, les défaillances internes liées à l'épuisement des ressources et divers autres comportements problématiques en cas de pire scénario présents dans les implémentations existantes[4]. L'environnement d'exécution dynamique se compose d'un fichier unique doté d'une ABI stable, permettant des mises à jour sans conditions de concurrence, tandis que la prise en charge de la liaison statique permet de déployer une application sous la forme d'un binaire portable unique, sans surcoût de taille significatif.
Il revendique la compatibilité avec la spécification POSIX 2008 et la norme C11 (en). Il implémente également la plupart des fonctions non standard largement utilisées de Linux, de BSD et de la glibc[5]. Il existe une compatibilité ABI partielle avec la partie de la glibc requise par la Linux Standard Base[6].
La version 1.2.0 prend en charge la norme Unicode 12.1.0 (désormais obsolète), tout en assurant une prise en charge complète de l'UTF-8[7] (plus conforme et plus stricte que celle de la glibc), tandis que la version 1.2.1 « introduit la nouvelle implémentation de malloc "mallocng", remplaçant l'allocateur original de musl — de type dlmalloc — qui souffrait de problèmes de conception fondamentaux »[2].
Les distributions Linux qui utilisent musl comme bibliothèque C standard (certaines n'utilisent que musl) incluent, sans s'y limiter :
Une version modifiée de musl est disponible pour le code espace utilisateur écrit pour le micro-noyau seL4 (en)[16], exigeant des utilisateurs qu'ils implémentent les parties de l'interface d'appels système Linux dont dépend le sous-ensemble de musl qu'ils souhaitent utiliser.
Le système d'exploitation HarmonyOS NEXT (en) de Huawei utilise une version dérivée de musl comme implémentation de libc[17].
Pour les binaires liés à glibc, gcompat[18] et glibmus-hq[19] peuvent être utilisés pour les exécuter sur les distributions basées sur musl.
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.