The GNU C Library, commonly known as glibc, is the C standard library The C standard library consists of a set of sections of the ISO C standard which describe a collection of header files and library routines used to implement common operations, such as input/output and string handling, in the C programming language. The C standard library is an interface standard described by a document; it is not an actual released by the GNU Project The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated the GNU operating system, software development for which began in January 1984. The founding goal of the project was, in the words of its initial announcement, to develop "a sufficient body of free software. Originally written by the Free Software Foundation The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software. The FSF is incorporated in Massachusetts, USA (FSF) for the GNU GNU (pronounced /ˈɡnuː/ ) is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system" composed wholly of free software. Development of GNU was initiated by Richard Stallman in 1983 and was the original focus of the Free Software Foundation (FSF), but no operating system, the library's development has been overseen by a committee since 2001,[2] with Ulrich Drepper from Red Hat Red Hat, Inc. is an S&P 500 company in the free and open source software sector, and a major Linux distribution vendor. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina with satellite offices worldwide as the lead contributor and maintainer.
Released under the GNU Lesser General Public License The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation (FSF). It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License. The GNU Library General Public License (as the LGPL was, glibc is free software Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and that manufacturers of consumer-.
Contents |
History
glibc was initially written mostly by Roland McGrath, working for the FSF in the 1980s.
In February 1988, FSF described glibc as having nearly completed the functionality required by ANSI C.[3] By 1992, it had the ANSI C-1989 and POSIX.1-1990 functions implemented and work was under way on POSIX.2.[4]
A temporary fork
In the early 1990s, the developers of the Linux kernel The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software forked In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct piece of software 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 support, better internationalisation/multilingual support, support for IPv6 Internet Protocol version 6 is an Internet Protocol version which is designed to succeed IPv4, the first implementation which is still in dominant use currently[update]. It is an Internet Layer protocol for packet-switched internetworks. The main driving force for the redesign of Internet Protocol is the foreseeable IPv4 address exhaustion. IPv6, 64-bit data access, support for multithreaded applications, future version compatibility support, and the code was more portable.[5] At this point, the Linux kernel developers discontinued their fork and returned to using FSF's glibc.[6]
The last used version of Linux libc used the internal name (soname) libc.so.5. Following on from this, glibc 2.x on Linux uses the soname libc.so.6[7] (Alpha Alpha, originally known as Alpha AXP, was a 64-bit reduced instruction set computer instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC), designed to replace the 32-bit VAX complex instruction set computer (CISC) ISA and its implementations. Alpha was implemented in microprocessors originally developed and fabricated and IA64 Itanium is a family of 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). The processors are marketed for use in enterprise servers and high-performance computing systems. The architecture originated at Hewlett-Packard (HP), and was later jointly developed by HP and Intel architectures now use libc.so.6.1, instead). The soname is often abbreviated as libc6 (for example in the package name in debian) following the normal conventions for libraries.
According to Richard Stallman Richard Matthew Stallman , often abbreviated "rms", is an American software freedom activist and computer programmer. In September 1983, he launched the GNU Project to create a free Unix-like operating system, and has been the project's lead architect and organizer. With the launch of the GNU Project, he initiated the free software, the changes that had been made in Linux libc could not be merged back into glibc because the authorship status of that code was unclear and the GNU project is quite strict about recording copyright and authors.[8]
Supported hardware and kernels
Glibc is used in systems that run many different kernels In computing, the kernel is the central component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources . Usually as a basic component of an operating system, a kernel can provide the lowest-level and different hardware A personal computer is made up of multiple physical components of computer hardware, upon which can be installed an operating system and a multitude of software to perform the operator's desired functions architectures. Its most common use is in systems using the Linux kernel The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software on x86 The term x86 refers to a family of instruction set architectures based on the Intel 8086. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's early 8-bit based microprocessors and also introduced segmentation to overcome the 16-bit addressing barrier of earlier chips. The term x86 derived from the fact that early successors to the hardware, but officially supported hardware includes: x86 The term x86 refers to a family of instruction set architectures based on the Intel 8086. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's early 8-bit based microprocessors and also introduced segmentation to overcome the 16-bit addressing barrier of earlier chips. The term x86 derived from the fact that early successors to the, Motorola 680x0 The Motorola 680x0/m68k/68k/68K is a family of 32-bit CISC microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and were the primary competitors of Intel's x86 microprocessors. They were most well-known as the processors powering the early Apple Macintosh, the Commodore Amiga, the Sinclair QL,, DEC Alpha Alpha, originally known as Alpha AXP, was a 64-bit reduced instruction set computer instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC), designed to replace the 32-bit VAX complex instruction set computer (CISC) ISA and its implementations. Alpha was implemented in microprocessors originally developed and fabricated, PowerPC PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM. PowerPC, as an evolving instruction set, has since 2006 been renamed Power ISA but lives on as a legacy trademark for some implementations of Power Architecture based processors, ETRAX CRIS, s390 In 2000, IBM rebranded the existing System/390 to IBM eServer zSeries with the e depicted in IBM's red trademarked symbol, but because no specific machine names were changed for System/390, the zSeries in common use refers only to one generation of mainframes, starting with z900, and SPARC SPARC is a RISC instruction set architecture (ISA) developed by Sun Microsystems and introduced in 1986. It officially supports the Hurd GNU Hurd is a free software Unix-like replacement for the Unix kernel, released under the GNU General Public License. It has been under development since 1990 by the GNU Project of the Free Software Foundation. It consists of a set of protocols and server processes (or daemons, in Unix terminology) that run on top of the GNU Mach microkernel; and Linux The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software kernels. Additionally, there are heavily patched versions that run on the kernels of FreeBSD FreeBSD is a free Unix-like operating system descended from AT&T UNIX via the Berkeley Software Distribution . It has been characterized as "the unknown giant among free operating systems". It is not a clone of UNIX, but works like UNIX, with UNIX-compliant internals and system APIs. FreeBSD is generally regarded as reliable and and NetBSD NetBSD is a freely available open source version of the Unix-derivative Berkeley Software Distribution computer operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design, stability and performance of (from which Debian GNU/kFreeBSD GNU variants is a term used by the Free Software Foundation and others to refer to operating systems which use application software and system libraries from GNU, but use a kernel other than GNU Hurd and Debian GNU/NetBSD GNU variants is a term used by the Free Software Foundation and others to refer to operating systems which use application software and system libraries from GNU, but use a kernel other than GNU Hurd systems are built, respectively), as well as the kernel of OpenSolaris OpenSolaris is an open source computer operating system based on Solaris created by Sun Microsystems, now a part of Oracle Corporation. It is also the name of the project initiated by Sun to build a developer and user community around the software[9]. It is also used (in an edited form) as the libroot[clarification needed] of BeOS BeOS is an operating system for personal computers which began development by Be Inc. in 1991. It was first written to run on BeBox hardware. BeOS was optimized for digital media work and was written to take advantage of modern hardware facilities such as symmetric multiprocessing by utilizing modular I/O bandwidth, pervasive multithreading, and hence Haiku Haiku is a free open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first official alpha version released in September 2009.
Functionality
glibc provides the functionality required by the Single UNIX Specification The Single UNIX Specification is the collective name of a family of standards for computer operating systems to qualify for the name "Unix". The SUS is developed and maintained by the Austin Group, based on earlier work by the IEEE and The Open Group, POSIX POSIX or "Portable Operating System Interface [for Unix]" is the name of a family of related standards specified by the IEEE to define the application programming interface (API), along with shell and utilities interfaces for software compatible with variants of the Unix operating system, although the standard can apply to any operating (1c, 1d, and 1j) and some of the functionality required by ISO The International Organization for Standardization , widely known as ISO (pronounced /ˈaɪsoʊ/ EYE-soe), is an international-standard-setting body composed of representatives from various national standards organizations. Founded on 23 February 1947, the organization promulgates worldwide proprietary industrial and commercial standards. It has C99 C99 is a modern dialect of the C programming language. It extends the previous version to better make use of available computer hardware and to better employ the latest advances in compiler technology, Berkeley Unix (BSD) interfaces, 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 along with all X/Open UNIX extensions.
In addition, glibc also provides extensions that have been deemed useful or necessary while developing GNU GNU (pronounced /ˈɡnuː/ ) is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system" composed wholly of free software. Development of GNU was initiated by Richard Stallman in 1983 and was the original focus of the Free Software Foundation (FSF), but no.
Use in small devices
glibc has been criticized as being "bloated" and slower than other libraries in the past, e.g. by Linus Torvalds Linus Benedict Torvalds (Swedish pronunciation: [ˈliːnɵs ˈtuːrvalds] ; born December 28, 1969 in Helsinki, Finland) is a Finnish software engineer best known for having initiated the development of the Linux kernel and git revision control system. He later became the chief architect of the Linux kernel, and now acts as the project's[10] and embedded Linux Embedded Linux is the use of a Linux operating system in embedded computer systems such as mobile phones, personal digital assistants, media players, set-top boxes, and other consumer electronics devices, networking equipment, machine control, industrial automation, navigation equipment and medical instruments. According to survey conducted by programmers. For this reason, several alternative C standard libraries have been created which emphasize a smaller footprint. Among them are Bionic (based mostly on libc from BSD; used in Android Android is a software stack for mobile devices that includes an operating system, middleware and key applications, that uses a modified version of the Linux kernel. It was initially developed by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance. It allows developers to write managed code in the Java language,), dietlibc dietlibc is a C standard library released under the GNU General Public License Version 2. It was developed by Felix von Leitner with the goal to compile and link programs to the smallest possible size. dietlibc was developed from scratch and thus only implements the most important and commonly used functions. It is mainly used in embedded devices, uClibc, Newlib Newlib is a C standard library implementation intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products. It was created by Cygnus Support as part of building the first GNU cross-development toolchains. It is now maintained by Red Hat, Klibc, and EGLIBC Embedded GLIBC is a variant of the GNU C Library (glibc), optimised for use in embedded devices, while still attempting to remain source and binary compatible with the standard glibc. The authors claim that EGLIBC is not intended to be a fork of glibc, but rather a variant, accepting patches that the core glibc developers may reject[11].
However, many small-device projects use GNU libc over the smaller alternatives because of its application support, standards compliance, and completeness. Examples include Openmoko Openmoko is a project to create a family of open source mobile phones, including the hardware specification and the operating system. The project was sponsored by Openmoko Inc[12] and Familiar Linux Familiar Linux is a Linux distribution for iPAQ machines and other personal digital assistants , intended as a replacement for Windows CE on these machines. It can use OPIE or GPE Palmtop Environment as graphical user interface. Familiar Linux is a complete operating system with many applications for iPaq handhelds (when using the GPE display software).[13]
See also
- Gnulib
- EGLIBC Embedded GLIBC is a variant of the GNU C Library (glibc), optimised for use in embedded devices, while still attempting to remain source and binary compatible with the standard glibc. The authors claim that EGLIBC is not intended to be a fork of glibc, but rather a variant, accepting patches that the core glibc developers may reject
- uClibc
- dietlibc dietlibc is a C standard library released under the GNU General Public License Version 2. It was developed by Felix von Leitner with the goal to compile and link programs to the smallest possible size. dietlibc was developed from scratch and thus only implements the most important and commonly used functions. It is mainly used in embedded devices
References
- ^ Baudis, Petr (2010-05-19). "glibc-2.11.2 released". libc-alpha mailing list. http://sourceware.org/ml/libc-alpha/2010-05/msg00030.html. Retrieved 2010-05-19.
- ^ "glibc homepage". http://www.gnu.org/software/libc/. "In 2001 The GNU C Library Steering Committee ..., was formed and currently consists of Mark Brown, Paul Eggert, Andreas Jaeger, Jakub Jelinek, Roland McGrath and Andreas Schwab."
- ^ "http://www.gnu.org/bulletins/bull4.html". http://www.gnu.org/bulletins/bull4.html. "Most libraries are done. Roland McGrath [...] has a nearly complete set of ANSI C library functions. We hope they will be ready some time this spring."
- ^ "GNU's Bulletin, vol. 1 no. 12". http://www.gnu.org/bulletins/bull12.html. "It now contains all of the ANSI C-1989 and POSIX.1-1990 functions, and work is in progress on POSIX.2 and Unix functions (BSD and System V)"
- ^ Elliot Lee (2001). "A Technical Comparison of glibc 2.x With Legacy System Libraries". http://web.archive.org/web/20040411191201/http://people.redhat.com/~sopwith/old/glibc-vs-libc5.html.
- ^ "Forking: it could even happen to you". http://www.linux.com/archive/feature/3874. "the split between GNU LIBC and the Linux LIBC -- it went on for years while Linux stabilized, and then the forks re-merged into one project"
- ^ "Fear of Forking essay, see "6. glibc --> Linux libc --> glibc"". http://linuxmafia.com/faq/Licensing_and_Law/forking.html.
- ^ "Fear of Forking, footnote on Stallman's merge comments". http://linuxmafia.com/faq/Licensing_and_Law/forking.html#foot25.
- ^ Bartley, David; Michael Spang. "GNU/kOpenSolaris (GNU libc/base + OpenSolaris kernel)". http://csclub.uwaterloo.ca/~dtbartle/opensolaris/. Retrieved 2008-12-16.
- ^ Linus Torvalds: Posting to the glibc mailing list, 9 January 2002 19:02:37
- ^ EGLIBC
- ^ "OpenMoko components". http://wiki.openmoko.org/wiki/OpenMoko. "We will use glibc (not uClibC) ... The alternatives may save more space and be more optimized, but are more likely to give us integration headaches"
- ^ "Re: [Familiar Which glibc for Familiar 0.8.4 ?"]. http://marc.info/?l=familiar&m=118666899424374&w=2. "Question: which version of the GLIBC was used to build the Familiar 0.8.4 ? Answer: 2.3.3"
External links
|
|||||||||||||||||||
Categories: C libraries | GNU Project software | C standard library | Free development toolkits and libraries | Free cross-platform software | Free software programmed in C
|
InfoQ.com
The NUMA-aware allocator is implemented for Solaris (>= 9u2) and Linux (kernel >= 2.6.19, glibc >= 2.6.1) operating systems, and can be turned on for the ...
386px x 500px | 59.70kB
[source page]
jdk1 5 glibc glibc rpm qa | grep glibc java java version
lokeshsingla
Wed, 01 Jul 2009 00:00:00 GM
Need urgent help--getting error in . glibc. installation Linux From Scratch.


