__NOTOC__
In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, uClibc (sometimes written μClibc) is a small
C standard library
The C standard library, sometimes referred to as libc, is the standard library for the C (programming language), C programming language, as specified in the ISO C standard.International Organization for Standardization, ISO/International Electrote ...
intended for
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
-based operating systems for
embedded systems
An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is em ...
and
mobile devices. uClibc was written to support
μClinux, a version of Linux not requiring a
memory management unit
A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware unit that examines all references to computer memory, memory, and translates the memory addresses being referenced, known as virtual mem ...
and thus suited for
microcontroller
A microcontroller (MC, uC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Pro ...
s (uCs; the "u" is a
Latin script
The Latin script, also known as the Roman script, is a writing system based on the letters of the classical Latin alphabet, derived from a form of the Greek alphabet which was in use in the ancient Greek city of Cumae in Magna Graecia. The Gree ...
typographical
approximation
An approximation is anything that is intentionally similar but not exactly equal to something else.
Etymology and usage
The word ''approximation'' is derived from Latin ''approximatus'', from ''proximus'' meaning ''very near'' and the prefix ...
- not a proper
romanization
In linguistics, romanization is the conversion of text from a different writing system to the Latin script, Roman (Latin) script, or a system for doing so. Methods of romanization include transliteration, for representing written text, and tra ...
, which would be letter "m" - of
μ for "micro").
Development on uClibc started around 1999. uClibc was mostly written from scratch, but has incorporated code from glibc and other projects. The project lead is Erik Andersen, and the other main contributor is Manuel Novoa III. Licensed under the
GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
, uClibc is
free and open-source software
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
.

uClibc is much smaller than the
glibc
The GNU C Library, commonly known as glibc, is the GNU Project implementation of the C standard library. It provides a wrapper around the system calls of the Linux kernel and other kernels for application use. Despite its name, it now also dir ...
, 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
The Intel 386, originally released as the 80386 and later renamed i386, is the third-generation x86 architecture microprocessor from Intel. It was the first 32-bit processor in the line, making it a significant evolution in the x86 archite ...
,
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
,
ARM (big/little endian),
Atmel AVR32,
Analog Devices Blackfin,
Renesas/Hitachi H8 (h8300),
Motorola m68k,
MIPS (big/little endian),
IBM PowerPC,
SuperH
SuperH (or SH) is a 32-bit reduced instruction set computing (RISC) instruction set architecture (ISA) developed by Hitachi and currently produced by Renesas. It is implemented by microcontrollers and microprocessors for embedded systems.
At the ...
(big/little endian),
Sun SPARC, and
Renesas/NEC v850 processors.
uClibc-ng is a
fork of uClibc announced on the
OpenWRT
OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux kernel, Linux, primarily used on Embedded system, embedded devices to Router (computing), route network traffic. The main components ...
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. At present, the original project's author no longer publishes updates, but refers to the still actively developed fork uClibc-ng for current releases.
See also
*
Alpine Linux
*
Buildroot
Buildroot is a set of Makefiles and Patch (Unix), patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using Cross compiler, cross-compilation to allow building for ...
*
busybox
BusyBox is a software suite that provides several List of Unix commands, Unix utilities in a single executable file. It runs in a variety of POSIX environments such as Linux, Android (operating system), Android, and FreeBSD, although many of the ...
*
Contiki
Contiki is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things (IoT) devices. Contiki is used for systems for street lighting, sound monitoring for smart cities, radiation monitori ...
*
OpenWrt
OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux kernel, Linux, primarily used on Embedded system, embedded devices to Router (computing), route network traffic. The main components ...
*
musl
*
Linux for embedded systems
*
Linux for mobile devices
References
Further reading
*
*
External links
uClibc++ website
{{DEFAULTSORT:Uclibc
2000 software
C standard library
Embedded Linux
Free computer libraries
Free software programmed in C
Interfaces of the Linux kernel
Linux APIs
Software using the GNU Lesser General Public License