Original author(s) | Roland McGrath |
---|---|
Developer(s) | GNU Project |
Initial release | 1987 |
Stable release | 2.27 (February 1, 2018 | )
Repository | |
Written in | C |
Operating system | Unix-like |
Type | Runtime library |
License | GNU Lesser General Public License |
Website | www |
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 early 1990s by the Free Software Foundation (FSF) for their GNU operating system.
Released under the GNU Lesser General Public License, glibc is free software. The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.
The Glibc project was initially written mostly by Roland McGrath, working for the Free Software Foundation (FSF) in the 1980s as a teenager.
In February 1988, FSF described glibc as having nearly completed the functionality required by ANSI C. By 1992, it had the ANSI C-1989 and POSIX.1-1990 functions implemented and work was under way on POSIX.2.
In September 1995 Ulrich Drepper made his first contribution to the glibc project and gradually became over the 1990s the core contributor and maintainer of glibc. Drepper held the maintainership position for many years and accumulated until 2012 63% of all commits of the project.
In the early 1990s, the developers of the Linux kernel forked glibc. Their fork, called "Linux libc", was maintained separately for years and released versions 2 through 5.
When FSF released glibc 2.0 in January 1997, it had much more complete POSIX standards compliance, better internationalisation and multilingual function, IPv6 capability, 64-bit data access, facilities for multithreaded applications, future version compatibility, and the code was more portable. At this point, the Linux kernel developers discontinued their fork and returned to using FSF's glibc.