musl is a C standard library intended for operating systems based on the Linux kernel, released under the MIT License.[3] It was developed by Rich Felker to write a clean, efficient, and standards-conformant libc implementation.[4]
![]() | |
Developer(s) | Rich Felker (dalias) and others |
---|---|
Initial release | February 11, 2011[1] |
Stable release | 1.2.5[2]
/ February 29, 2024 |
Repository | |
Operating system | Linux 2.6 or later |
Platform | x86, x86_64, ARM, MIPS, Microblaze, PowerPC, powerpc64, x32, riscv64, OpenRISC, s390x, SuperH |
Type | |
License | MIT License |
Website | musl.libc.org |
Overview
editmusl was designed from scratch to allow efficient static linking and to have realtime-quality robustness by avoiding race conditions, internal failures on resource exhaustion, and various other bad worst-case behaviors present in existing implementations.[4] The dynamic runtime is a single file with stable ABI allowing race-free updates and the static linking support allows an application to be deployed as a single portable binary without significant size overhead.
It claims compatibility with the POSIX 2008 specification and the C11 standard. It also implements most of the widely used non-standard Linux, BSD, and glibc functions.[5] There is partial ABI compatibility with the part of glibc required by Linux Standard Base.[6]
Version 1.2.0 has support for (no longer current) Unicode 12.1.0 (while still having full UTF-8 support,[7] more conformant/strict than glibc), and version 1.2.1 "features the new 'mallocng' malloc implementation, replacing musl's original dlmalloc-like allocator that suffered from fundamental design problems."[2]
Use
editSome Linux distributions that can use or do even use exclusively musl as the standard C library include:
- Alpine Linux[8]
- Dragora 3[9]
- Gentoo Linux (glibc by default, musl can be chosen at install time)[10]
- OpenWrt[11]
- postmarketOS[12]
- Sabotage[13]
- Morpheus Linux[14]
- Chimera Linux[15]
- Void Linux[16]
The seL4 microkernel[17] ships with musl.
For binaries that have been linked against glibc, gcompat,[18] glibmus-hq.[19] can be used to execute them on musl-based distros.
See also
editReferences
edit- ^ "musl - obsolete versions". musl-libc.org. 2017-10-31. Retrieved 2018-01-14.>
- ^ a b "musl libc Release History". musl.libc.org. Archived from the original on 2021-10-16. Retrieved 2020-08-13.
- ^ Rich Felker; et al. (2016-04-29). "COPYRIGHT". Archived from the original on 2021-10-16. Retrieved 2016-09-26.
- ^ a b "Introduction to musl". 2016-04-21. Archived from the original on 2021-10-16. Retrieved 2016-09-26.
- ^ "Compatibility". wiki.musl-libc.org. 2014-05-27. Archived from the original on 2021-10-16. Retrieved 2016-09-26.
- ^ "Comparison of C/POSIX standard library implementations for Linux". www.etalabs.net. Archived from the original on 2021-10-16.
- ^ "musl libc - Functional differences from glibc". wiki.musl-libc.org. Archived from the original on 2021-10-16. Retrieved 2020-08-13.
- ^ "About". Alpine Linux. Retrieved 18 June 2022.
- ^ Larabel, Michael (30 September 2018). "Dragora 3.0 Alpha 2 Released As One Of The Libre GNU/Linux Platforms". Phoronix. Phoronix Media. Retrieved 18 June 2022.
- ^ Gentoo Authors (20 July 2021). "Additional stage downloads for amd64, ppc, x86, arm available". Gentoo Linux. Retrieved 18 June 2022.
- ^ Fietkau, Felix (16 Jun 2015). "OpenWrt switches to musl by default". Archived from the original on 28 July 2015.
- ^ "About postmarketOS - postmarketOS Wiki". wiki.postmarketos.org. Retrieved 2024-08-07.
- ^ README.md on GitHub
- ^ "morpheus". Archived from the original on 2021-10-16. Retrieved 2018-06-15.
- ^ "Chimera Linux - About". Chimera Linux. Retrieved 2023-05-10.
- ^ "Enter the void". Void Linux. Retrieved 18 June 2022.
- ^ seL4/musllibc, seL4 microkernel and related repositories, 2020-08-30, archived from the original on 2021-10-16, retrieved 2020-09-05
- ^ "Adélie Linux / gcompat". GitLab. Archived from the original on 2021-10-16. Retrieved 2019-10-21.
- ^ https://gitlab.com/manoel-linux1/GlibMus-HQ
External links
edit- Official website
- Comparison of C/POSIX standard library implementations for Linux
- Matrix of C/POSIX standard libraries by architecture
- Project:Musl on Gentoo wiki