From HandWiki - Reading time: 5 min
| Developer(s) | Rich Felker (dalias) and others |
|---|---|
| Initial release | February 11, 2011[1] |
| Stable release | 1.2.6[2]
/ March 20, 2026 |
| Operating system | Linux 2.6 or later |
| Platform | x86, x86 64, ARM, loongarch64, MIPS, Microblaze, PowerPC, powerpc64, x32, RISC-V, OpenRISC, s390x, SuperH |
| Type |
|
| License | MIT License |
| Website | musl.libc.org |
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]
musl 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.Cite error: Closing </ref> missing for <ref> tag 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."Cite error: Closing </ref> missing for <ref> tag
A modified version of musl is available for userspace code written for the seL4 microkernel[14], requiring users to implement the parts of the Linux system call interface that the subset of musl they wish to use depends on.
A modified musl wrapper is also utilized written for OpenHarmony distributed operating systems within its userspace for its standard system devices; while it primarily targets a Linux kernel, it employs a Kernel Abstraction Layer (KAL) to map extended POSIX system calls when running on non-Linux kernels of kernel agnostic core system, such as microkernel-based HarmonyOS's HongMeng Kernel Linux ABI compliant shim for POSIX-like functionalities.[15]
For binaries that have been linked against glibc, gcompat and[16] glibmus-hq[17] can be used to execute them on musl-based distros.
<ref> tag; no text was provided for refs named RELEASES