musl

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

musl
Musl libc.png
Developer(s)Rich Felker (dalias) and others
Initial releaseFebruary 11, 2011; 9 years ago (2011-02-11)[1]
Stable release
1.2.1[2] / August 4, 2020; 2 months ago (2020-08-04)
Repository Edit this at Wikidata
Operating systemLinux 2.6 or later
Platformx86, x86 64, ARM, MIPS, Microblaze, PowerPC, powerpc64, x32, 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[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]

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

See also[edit]

References[edit]

  1. ^ "musl - obsolete versions". musl-libc.org. 2017-10-31. Retrieved 2018-01-14.>
  2. ^ a b "musl libc Release History". musl.libc.org. Retrieved 2020-08-13.
  3. ^ Rich Felker; et al. (2016-04-29). "COPYRIGHT". Retrieved 2016-09-26.
  4. ^ a b "Introduction to musl". 2016-04-21. Retrieved 2016-09-26.
  5. ^ "Compatibility". wiki.musl-libc.org. 2014-05-27. Retrieved 2016-09-26.
  6. ^ "Comparison of C/POSIX standard library implementations for Linux". www.etalabs.net.
  7. ^ "musl libc - Functional differences from glibc". wiki.musl-libc.org. Retrieved 2020-08-13.
  8. ^ README.md on GitHub
  9. ^ "morpheus:". Retrieved 2018-06-15.
  10. ^ seL4/musllibc, seL4 microkernel and related repositories, 2020-08-30, retrieved 2020-09-05
  11. ^ "Adélie Linux / gcompat". GitLab. Retrieved 2019-10-21.

External links[edit]