Jump to content

uClibc

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Xose.vazquez (talk | contribs) at 12:28, 3 May 2019 (add uClibc-ng info). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


uClibc
Developer(s)Erik Andersen
Initial releaseFebruary 13, 2000; 24 years ago (2000-02-13)
Final release0.9.33.2 (May 15, 2012; 12 years ago (2012-05-15)) [±][1]
Repositorygit.uclibc.org/uClibc/
Written inC
Operating systemLinux
PlatformEmbedded Linux
Type
LicenseLGPLv2.1[2]
Websitewww.uclibc.org
uClibc-ng
Stable release
1.0.31 / November 14, 2018; 6 years ago (2018-11-14)
Repositorycgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/
Websitewww.uclibc-ng.org

In computing, uClibc (sometimes written µClibc) is a small C standard library intended for Linux kernel-based operating systems for embedded systems and mobile devices. uClibc was created to support μClinux, a version of Linux not requiring a memory management unit and thus suited for microcontrollers (uCs; the "u" is a Latin script typographical approximation - not a proper romanization, which would be letter "m" - of μ for "micro").[3]

Development on uClibc started around 1999.[4] uClibc was mostly written from scratch,[5] but has incorporated code from glibc and other projects.[6] The project lead is Erik Andersen, and the other main contributor is Manuel Novoa III. Licensed under the GNU Lesser General Public License, uClibc is free and open-source software.

uClibc is a wrapper around the system calls of the Linux kernel and μClinux.

uClibc is much smaller than the glibc, the C library normally used with Linux distributions. While glibc is intended to fully support all relevant C standards across a wide range of hardware and kernel platforms, uClibc is specifically focused on embedded Linux systems. Features can be enabled or disabled according to space requirements.

uClibc runs on standard and MMU-less Linux systems. It supports i386, x86-64, ARM (big/little endian), Atmel AVR32, Analog Devices Blackfin, Renesas/Hitachi H8 (h8300), Motorola m68k, MIPS (big/little endian), IBM PowerPC, SuperH (big/little endian), Sun SPARC, and Renesas/NEC v850 processors.

uClibc-ng[7] is a fork of uClibc announced on the OpenWRT mailing list in July 2014 after more than two years had passed without a uClibc release, citing a lack of any communication from the maintainer.[8][9][10]. At present, the original projects author publishes no more updates, but references to the still actively developed fork uClibc-ng for current releases[11].

See also

References

  1. ^ "µClibc News". µClibc. 2012-02-01. Retrieved 2012-03-24.
  2. ^ "uClibc FAQ: Licensing". uclibc.org. Retrieved 11 July 2015.
  3. ^ uClibc naming Accessed on February 10, 2008.
  4. ^ http://www.uclibc.org/copyright.txt
  5. ^ "History". uClibc FAQ. Retrieved 2007-06-19.
  6. ^ "uClibc Changelog". Archived from the original on 2007-06-09. Retrieved 2007-06-19. pthreads support (derived from glibc 2.1.3's linuxthreads library) [...] Merged in the random number support (rand, srand, etc) from glibc.
  7. ^ "uClibc-ng". uclibc-ng.org. Retrieved 11 July 2015.
  8. ^ Brodkorb, Waldemar (20 July 2014). "uClibc-ng". openwrt-devel (Mailing list).
  9. ^ Petazzoni, Thomas (21 July 2014). "uClibc-ng". uclibc (Mailing list). Archived from the original on 2017-06-21.
  10. ^ Brodkorb, Waldemar (21 July 2014). "uClibc-ng". openwrt-devel (Mailing list).
  11. ^ "uClibc - Latest News". Retrieved 2019-01-09.

Further reading

  • Building Embedded Linux Systems (2 ed.). O'Reilly Media. 2008. pp. 115–127. ISBN 0-596-52968-6. {{cite book}}: Unknown parameter |authors= ignored (help)
  • von Hagen, William L. (2006). The Definitive Guide to GCC, Second Edition. Berkeley, CA: APress. pp. 290–297. ISBN 1-59059-585-8.