Software:musl

From HandWiki
Short description: Implementation of C standard library for Linux operating system

musl
Musl libc.svg
Developer(s)Rich Felker (dalias) and others
Initial releaseFebruary 11, 2011; 13 years ago (2011-02-11)[1]
Stable release
1.2.4[2] / May 1, 2023; 9 months ago (2023-05-01)
Operating systemLinux 2.6 or later
Platformx86, x86 64, ARM, MIPS, Microblaze, PowerPC, powerpc64, x32, riscv64, OpenRISC, s390x, SuperH
Type
LicenseMIT License
Websitemusl.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 with the goal to write a clean, efficient, and standards-conformant libc implementation.[4]

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.[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

Some Linux distributions that can use musl as the standard C library include Alpine Linux,[8] Dragora 3,[9] Gentoo Linux,[10] OpenWrt,[11] Sabotage,[12] Morpheus Linux,[13] Chimera Linux,[14] and Void Linux.[15] The seL4 microkernel[16] ships with musl. For binaries that have been linked against glibc, gcompat[17] can be used to execute them on musl-based distros.

See also


References

  1. "musl - obsolete versions". 2017-10-31. https://www.musl-libc.org/oldversions.html. >
  2. 2.0 2.1 "musl libc Release History". https://musl.libc.org/releases.html. 
  3. Rich Felker (2016-04-29). "COPYRIGHT". https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT. 
  4. 4.0 4.1 "Introduction to musl". 2016-04-21. https://www.musl-libc.org/intro.html. 
  5. "Compatibility". 2014-05-27. http://wiki.musl-libc.org/wiki/Compatibility. 
  6. "Comparison of C/POSIX standard library implementations for Linux". http://www.etalabs.net/compare_libcs.html. 
  7. "musl libc - Functional differences from glibc". https://wiki.musl-libc.org/functional-differences-from-glibc.html. 
  8. "About". https://alpinelinux.org/about/. 
  9. Larabel, Michael (30 September 2018). "Dragora 3.0 Alpha 2 Released As One Of The Libre GNU/Linux Platforms". Phoronix Media. https://www.phoronix.com/scan.php?page=news_item&px=Dragora-3.0-Alpha-2. 
  10. "Additional stage downloads for amd64, ppc, x86, arm available". 20 July 2021. https://www.gentoo.org/news/2021/07/20/more-downloads.html. 
  11. Fietkau, Felix (16 Jun 2015). "OpenWrt switches to musl by default". http://permalink.gmane.org/gmane.comp.embedded.openwrt.devel/32651. 
  12. on GitHub
  13. "morpheus". https://morpheus.2f30.org/. 
  14. "Chimera Linux - About" (in en). https://chimera-linux.org/about/#alternative-userland. 
  15. "Enter the void". https://voidlinux.org/. 
  16. seL4/musllibc, seL4 microkernel and related repositories, 2020-08-30, https://github.com/seL4/musllibc, retrieved 2020-09-05 
  17. "Adélie Linux / gcompat" (in en). https://code.foxkit.us/adelie/gcompat. 

External links