musl es una biblioteca estándar de C destinada a sistemas operativos basados en el kernel de Linux , publicada bajo la licencia MIT . [3] Fue desarrollado por Rich Felker con el objetivo de escribir una implementación libc limpia, eficiente y conforme a los estándares. [4]
Desarrollador (es) | Rich Felker (dalias) y otros |
---|---|
Versión inicial | 11 de febrero de 2011 [1] |
Lanzamiento estable | 1.2.2 [2] / 15 de enero de 2021 |
Repositorio | |
Sistema operativo | Linux 2.6 o posterior |
Plataforma | x86 , x86 64 , ARM , MIPS , Microblaze , PowerPC , powerpc64 , x32 , OpenRISC , s390x , SuperH |
Tipo | |
Licencia | Licencia MIT |
Sitio web | musl.libc.org |
Descripción general
musl fue diseñado desde cero para permitir un enlace estático eficiente y tener robustez de calidad en tiempo real al evitar condiciones de carrera , fallas internas en el agotamiento de los recursos y varios otros comportamientos del peor de los casos presentes en las implementaciones existentes. [4] El tiempo de ejecución dinámico es un solo archivo con ABI estable que permite actualizaciones sin carreras y el soporte de enlace estático permite implementar una aplicación como un único binario portátil sin una sobrecarga de tamaño significativa.
Afirma compatibilidad con la especificación POSIX 2008 y el estándar C11 . También implementa la mayoría de las funciones no estándar de Linux , BSD y glibc ampliamente utilizadas . [5] Existe compatibilidad ABI parcial con la parte de glibc requerida por Linux Standard Base . [6]
La versión 1.2.0 tiene soporte para (ya no es actual) Unicode 12.1.0 (aunque todavía tiene soporte completo para UTF-8 , [7] más conforme / estricto que glibc ), y la versión 1.2.1 "presenta el nuevo malloc 'mallocng' implementación, reemplazando el asignador original similar a dlmalloc de musl que sufría de problemas de diseño fundamentales ". [2]
Usar
Algunas distribuciones de Linux que pueden usar musl como biblioteca C estándar incluyen Alpine Linux , Dragora 3 , Gentoo Linux , OpenWrt , Sabotage, [8] Morpheus Linux [9] y Void Linux . seL4 microkernel [10] se envía con musl. Para los binarios que se han vinculado contra glibc, gcompat [11] se puede utilizar para ejecutarlos en distribuciones basadas en musl.
Ver también
- Libc biónica
- dietlibc
- EGLIBC
- glibc
- klibc
- Newlib
- uClibc
Referencias
- ^ "musl - versiones obsoletas" . musl-libc.org . 2017-10-31 . Consultado el 14 de enero de 2018 .>
- ^ a b "Historial de versiones de musl libc" . musl.libc.org . Consultado el 13 de agosto de 2020 .
- ^ Rich Felker; et al. (29 de abril de 2016). "DERECHOS DE AUTOR" . Consultado el 26 de septiembre de 2016 .
- ^ a b "Introducción al musl" . 2016-04-21 . Consultado el 26 de septiembre de 2016 .
- ^ "Compatibilidad" . wiki.musl-libc.org . 2014-05-27 . Consultado el 26 de septiembre de 2016 .
- ^ "Comparación de implementaciones de bibliotecas estándar C / POSIX para Linux" . www.etalabs.net .
- ^ "musl libc - diferencias funcionales de glibc" . wiki.musl-libc.org . Consultado el 13 de agosto de 2020 .
- ^ README.md en GitHub
- ^ "morfeo:" . Consultado el 15 de junio de 2018 .
- ^ seL4 / musllibc , seL4 microkernel y repositorios relacionados, 2020-08-30 , consultado 2020-09-05
- ^ "Adélie Linux / gcompat" . GitLab . Consultado el 21 de octubre de 2019 .
enlaces externos
- Página web oficial
- Comparación de implementaciones de bibliotecas estándar C / POSIX para Linux
- Matriz de bibliotecas estándar C / POSIX por arquitectura
- Proyecto: muslo endurecido en Gentoo wiki
- Rich Felker ofreció una charla en la Embedded Linux Conference (ELC) 2015: ELC 2015 - Transición de uclibc a musl para el desarrollo integrado - Rich Felker, Openwall