GNU C Library
Glibc, the GNU C library is a free implementation of the standard C library, which is developed by the GNU project with the GNU Compiler Collection.
The glibc is licensed under the LGPL, which allows the use of the Library in non- free software. The glibc library is one of the most fundamental and most important libraries of a Linux operating system.
- 2.1 maintainer
- 2.2 glibc 2.3
- 2.3 eglibc - Fork
- 2.4 Revision history
One of the design goals of glibc is portability across different software platforms, so it's available for a number of operating systems. Some operating systems, including GNU / Linux, use the glibc as their official standard C library. The libraries of the glibc are themselves mostly written in C, but running time-critical routines use assembly code.
The glibc is in the Single Unix Specification, POSIX (1c, 1d, and 1j) required functionality, additional parts of ISO C99, Berkeley Unix ( BSD) interface, the System V Interface Definition ( SVID ) and the X / Open Portability Guide ( XPG ), Issue 4.2, with all extensions common to XSI (X / Open system Interface) compliant systems with all the X / Open Unix extensions.
In addition to the information required by the C standard functions, it also offers a range of ( non-standard ) extensions.
Their universality and its simultaneous focus on the x86 hardware platform but also is the most damning criticism of the glibc. Due to the amount of einzubindenden codes are unnecessarily large and potentially slow against glibc linked programs, other platforms are not supported. A number of projects has therefore committed to the idea of developing alternatives to glibc, which are known uClibc and dietlibc. By restricting to the really important things these implementations achieve a much smaller size for the finished binaries, however, can not be any glibc- program against these alternative libraries left, or it behaves unexpectedly during execution. However, especially for embedded systems the slim libc implementations are very useful.
For some time the CVS repository of glibc in Red ( http://sources.redhat.com/ ) Has hosted, and maintained almost exclusively by Ulrich Drepper ( maintainer ). In addition, current snapshot to the FTP archives ( ftp://sources.redhat.com/pub/glibc/snapshots/, ftp://ftp.gnu.org/gnu/glibc/ ) and their mirrors provided. Thus one comes against the community, because you can not access the Internet from anywhere via CVS, for example, through restrictive firewalls.
With glibc 2.3 a number of improvements have been integrated, the most important of which is the replacement of the old Linux threading extension linuxthreads by the Native POSIX Thread Library ( NPTL ), which was developed as well as the glibc itself a leading role in Red Hat. The NPTL makes in collaboration from the Linux kernel 2.6, a significant increase in performance when threading and is POSIX compliant. Because you wanted to be backwards compatible, is for programs that rely on non-POSIX behavior of the old implementation, and further LinuxThreads available, you must now explicitly but by linker directive Request (eg LD_ASSUME_KERNEL = 2.4.22 ). The glibc itself is backwards compatible to the most important functions. The lowest common denominator is the functionality of libc6, which is why the names glibc and libc6 used often interchangeably for each other (on Alpha and IA -64 architectures names of the libraries for historical reasons libc6.1, but offer the same functionality ).
Eglibc - Fork
Because of a lack of focus of the glibc on compatibility with embedded systems, especially ARM processors, and problems with the handling of the project managers, Ulrich Drepper, bug reports ( "bug reports" ) and submitted corrections ( " patches" ) was a spin-off ( "fork ") of the project called eglibc created. After self-assessment of developers it is not in eglibc but a classic Fork, but the developers want to apply the changes from glibc, but also accept patches that have not found a way into glibc. This eglibc aims to cultivate a friendly use of developers and to support embedded processors better. As the first major Linux distribution Debian has switched to this implementation. Used Ubuntu since version 9.10, eglibc.
The release dates were as far as possible, taken from the official FTP server.