Musl Explained
musl |
Developer: | Rich Felker (dalias) and others |
Released: | [1] |
Latest Release Version: | 1.2.5 |
Operating System: | Linux 2.6 or later |
Platform: | x86, x86_64, ARM, MIPS, Microblaze, PowerPC, powerpc64, x32, riscv64, OpenRISC, s390x, SuperH |
License: | MIT License |
musl is a C standard library intended for operating systems based on the Linux kernel, released under the MIT License.[2] It was developed by Rich Felker to write a clean, efficient, and standards-conformant libc implementation.
Overview
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.[3] 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.[4] There is partial ABI compatibility with the part of glibc required by Linux Standard Base.[5]
Version 1.2.0 has support for (no longer current) Unicode 12.1.0 (while still having full UTF-8 support,[6] 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."[7]
Use
Some Linux distributions that can use or do even use exclusively musl as the standard C library include:
The seL4 microkernel ships with musl.
For binaries that have been linked against glibc, gcompat,[16] glibmus-hq.[17] can be used to execute them on musl-based distros.
See also
External links
Notes and References
- Web site: musl - obsolete versions . musl-libc.org . 2017-10-31 . 2018-01-14. >
- Web site: COPYRIGHT. https://ghostarchive.org/archive/20211016/https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT. 2021-10-16. Rich Felker. etal. 2016-04-29. 2016-09-26. live.
- Web site: Introduction to musl. https://ghostarchive.org/archive/20211016/https://www.musl-libc.org/intro.html. 2021-10-16. 2016-04-21. 2016-09-26. live.
- Web site: Compatibility. https://ghostarchive.org/archive/20211016/http://wiki.musl-libc.org/wiki/Compatibility. 2021-10-16. wiki.musl-libc.org. 2014-05-27. 2016-09-26. live.
- Web site: Comparison of C/POSIX standard library implementations for Linux. https://ghostarchive.org/archive/20211016/http://www.etalabs.net/compare_libcs.html. 2021-10-16. www.etalabs.net. live.
- Web site: musl libc - Functional differences from glibc. https://ghostarchive.org/archive/20211016/https://wiki.musl-libc.org/functional-differences-from-glibc.html. 2021-10-16. 2020-08-13. wiki.musl-libc.org. live.
- Web site: musl libc Release History. https://ghostarchive.org/archive/20211016/https://musl.libc.org/releases.html. 2021-10-16. 2020-08-13. musl.libc.org. live.
- Web site: About . Alpine Linux . 18 June 2022.
- Web site: Larabel . Michael . Dragora 3.0 Alpha 2 Released As One Of The Libre GNU/Linux Platforms . Phoronix . Phoronix Media . 18 June 2022 . 30 September 2018.
- Web site: Gentoo Authors . Additional stage downloads for amd64, ppc, x86, arm available . Gentoo Linux . 18 June 2022 . 20 July 2021.
- Web site: Fietkau . Felix . OpenWrt switches to musl by default . https://web.archive.org/web/20150728003734/http://permalink.gmane.org/gmane.comp.embedded.openwrt.devel/32651 . 28 July 2015 . 16 Jun 2015.
- Web site: About postmarketOS - postmarketOS Wiki . 2024-08-07 . wiki.postmarketos.org.
- Web site: morpheus. https://ghostarchive.org/archive/20211016/https://morpheus.2f30.org/. 2021-10-16. 2018-06-15.
- Web site: Chimera Linux - About . 2023-05-10 . Chimera Linux . en.
- Web site: Enter the void . Void Linux . 18 June 2022.
- Web site: Adélie Linux / gcompat. https://ghostarchive.org/archive/20211016/https://code.foxkit.us/adelie/gcompat. 2021-10-16. GitLab. en. 2019-10-21. live.
- https://gitlab.com/manoel-linux1/GlibMus-HQ