musl
| musl | |
|---|---|
| Developers | Rich Felker (dalias) and others |
| Initial release | February 11, 2011; 14 years ago (2011年02月11日)[1] |
| Stable release | |
| Repository | |
| 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]
Overview
[edit ]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.[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
[edit ]Linux distributions which use musl as their standard C library (some use only musl) include but are not limited to:
- 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]
- KISS Linux
The seL4 microkernel[17] ships with musl.
For binaries that have been linked against glibc, gcompat and[18] glibmus-hq[19] can be used to execute them on musl-based distros.
See also
[edit ]References
[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日.
- ^ "Manoel-linux-gitlab / GlibMus-HQ · GitLab".