UClibc
   HOME

TheInfoList



OR:

__NOTOC__ In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
, uClibc (sometimes written µClibc) is a small C standard library intended for Linux kernel-based operating systems for
embedded systems An embedded system is a 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 ''embedded'' ...
and
mobile devices A mobile device (or handheld computer) is a computer small enough to hold and operate in the hand. Mobile devices typically have a flat LCD or OLED screen, a touchscreen interface, and digital or physical buttons. They may also have a physical ...
. uClibc was written to support
μClinux μClinux is a variation of the Linux kernel, previously maintained as a fork, that targets microcontrollers without a memory management unit (MMU). It was integrated into the mainline kernel as of 2.5.46; the project continues to develop patc ...
, 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 having all memory references passed through itself, primarily performing the translation of virtual memory addresses to physical a ...
and thus suited for microcontrollers (uCs; the "u" is a
Latin script The Latin script, also known as Roman script, is an alphabetic 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 southern I ...
typographical approximation - not a proper
romanization Romanization or romanisation, in linguistics, is the conversion of text from a different writing system to the Roman (Latin) script, or a system for doing so. Methods of romanization include transliteration, for representing written text, a ...
, 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. uClibc is much smaller than the
glibc The GNU C Library, commonly known as glibc, is the GNU Project's implementation of the C standard library. Despite its name, it now also directly supports C++ (and, indirectly, other programming languages). It was started in the 1980s by ...
, 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 80386 and later renamed i386, is a 32-bit microprocessor introduced in 1985. The first versions had 275,000 transistorsx86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging ...
,
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
(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 In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
of uClibc announced on the
OpenWRT OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All ...
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 Alpine Linux is a Linux distribution designed to be small, simple and secure. Alpine Linux uses musl, BusyBox and OpenRC instead of the more commonly used glibc, GNU Core Utilities and systemd respectively.
*
Buildroot Buildroot is a set of Makefiles and patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using cross-compilation to allow building for multiple target platforms on ...
*
busybox BusyBox is a software suite that provides several Unix utilities in a single executable file. It runs in a variety of POSIX environments such as Linux, Android, and FreeBSD, although many of the tools it provides are designed to work with in ...
*
Contiki Contiki is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things (IoT) devices. Extant uses for Contiki include systems for street lighting, sound monitoring for smart cities, radia ...
*
OpenWrt OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All ...
*
musl musl is a C standard library intended for operating systems based on the Linux kernel, released under the MIT License. It was developed by Rich Felker with the goal to write a clean, efficient and standards-conformant libc implementation. O ...
* Linux for embedded systems *
Linux for mobile devices Linux for mobile devices, sometimes referred to as mobile Linux, is the usage of Linux-based operating systems on portable devices, whose primary or only Human interface device (HID) is a touchscreen. It mainly comprises smartphones and tablet com ...


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 LGPL license