Clever Geek Handbook
📜 ⬆️ ⬇️

glibc

glibc - GNU C Library ( GNU library). Glibc is a C library that provides system calls and basic functions such as open, malloc , printf, and so on. The C library is used for all dynamically linked programs. It is written by the Free Software Foundation for GNU Operating Systems. glibc is released under the GNU LGPL license.

GNU C Library
Type ofRuntime library
Developerand
Written on
operating systemUnix-like
First edition
Hardware platformcross-platform
Latest version
Readable File Formats
Generated File Formats
conditionActual
License
Website

Content

  • 1 History
    • 1.1 Glibc temporary fork
    • 1.2 Version History
  • 2 Supported architectures and kernels
  • 3 Criticism
  • 4 notes
  • 5 Links

History

Glibc was originally written by Roland McGrath , who worked for the FSF in the 1980s. In February 1988, FSF introduced glibc as a library with almost the full functionality required by the ANSI C standard [7] .

Glibc temporary fork

In the early 1990s, Linux kernel developers created the glibc fork . This fork, called "Linux libc", was developed separately for several years, versions 2 through 5 were released.

When FSF released glibc 2.0 in 1996, which supported IPv6 , 64-bit data access, multi-threaded applications, compatibility with future versions, and more portable source code [8] , Linux developers interrupted Linux libc development and started using FSF glibc. [9]

The .so file of the latest Linux libc was named (soname) libc.so.5 . The following glibc 2.x used the name libc.so.6 [10] (on the Alpha and IA64 architectures , the name libc.so.6.1 is used instead ). This name is often shortened to libc6 (for example, in the Debian package name), following the usual conventions for libraries.

According to Richard Stallman, changes from Linux libc cannot be transferred back to glibc, because the authorship of this code is unclear, and the GNU project is very strict about keeping copyright records. [eleven]

Version History

Versiondate ofNotesAdoption
2.30august 2019
2.29february 2019
2.28august 2018
2.27february 2018Performance optimization. RISC-V support.Ubuntu 18.04
2.26august 2017Improved performance (per-thread cache for malloc), Unicode 10 supportUbuntu 17.10
2.25february 2017The getentropy and getrandom functions and the header file <sys / random.h> are added.Fedora 26
2.24august 2016Removed some obsolete features
2.23February 2016Unicode 8.0Fedora 24, Ubuntu 16.04
2.22august 2015A library of vector mathematical functions libmvec has been added.
2.21February 2015Altera Nios II architecture supportUbuntu 15.04, Debian experimental, Fedora 22
2.20september 2014Fedora 21
2.19February 2014Ubuntu 14.04, eglibc 2.19 on Debian 8 (Jessie), openSUSE 13, SLES 12
2.18August 2013Improved support for the ISO C11 standard . Xilinx MicroBlaze and IBM POWER8 microarchitecture supportFedora 20
2.17December 2012Support for 64-bit ARM architectureUbuntu 13.04, RHEL 7
2.16June 2012Support x32 ABI , ISO C11 standard , SystemTap
2.15March 2012Ubuntu 12.04 and 12.10
2.14June 2011
2.13January 2011eglibc 2.13 on Debian 7 (Wheezy)
2.12May 2010RHEL 6
2.11October 2009SLES 11, Ubuntu 10.04, eglibc on Debian 6 (Squeeze)
2.10May 2009
2.9November 2008Ubuntu 9.04
2.8April 2008Ubuntu 8.10
2.7October 2007Debian 5 (Lenny), Ubuntu 8.04
2.6May 2007
2.5September 2006Full inotify supportRHEL 5
2.4March 2006Standard in LSB 4.0, initial inotify supportSLES 10
2.3.6November 2005Debian 4.0 (Etch)
2.3.5April 2005SLES 9
2.3.4December 2004Standard in LSB 3.0RHEL 4 (Update 5)
2.3.2February 2003Debian 3.1 (Sarge)
2.3October 2002
2.2.4July 2001
2.2November 2000
2.1.1March 1999
2.1February 1999
2.0.95July 1998
2.0January 1997
1.90 - 1.102May 1996 - January 1997
1.01 - 1.09.3March 1992 - December 1994
1.0February 1992
0.1 - 0.6October 1991 - February 1992

Supported architectures and kernels

Glibc is used on systems that run many different operating systems, and on different architectures. Glibc is most commonly used on x86 Linux machines . The following architectures are also officially supported: SPARC , Motorola 68k , DEC Alpha , PowerPC , ARM , s390 [12] .

Criticism

glibc is often criticized for its "bloated" and low speed compared to other past libraries [13] . Therefore, several alternative standard C libraries were created ( dietlibc , uClibc , Newlib , musl , Klibc ). Also, the maintainer Ulrich Drapper and his attitude to errors in Glibc are criticized [14] .

In 2009, in popular distributions such as Debian [15] , Ubuntu, and ArkLinux [16], glibc was replaced with an alternative eglibc library, which was initially oriented to embedded systems . Eglibc is a variant of glibc that is more friendly with receiving third-party patches. However, on June 18, 2014, one of the Debian distribution package maintainers announced the reverse replacement of the eglibc library with the glibc library [17] .

Notes

  1. ↑ https://sourceware.org/ml/libc-announce/2019/msg00001.html
  2. ↑ https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=timezone/tzfile.h;hb=HEAD
  3. ↑ 1 2 A. Olson , P. Eggert , K. Murchison 8.1 // The Time Zone Information Format (TZif) - Internet Engineering Task Force , 2019 .-- P. 18. - 34 p. - doi: 10.17487 / RFC8536
    <a href=" https://wikidata.org/wiki/Track:Q66732288 "> </a> <a href=" https://wikidata.org/wiki/Track:Q217082 "> </a> <a href = " https://wikidata.org/wiki/Track:Q66734339 "> </a> <a href=" https://wikidata.org/wiki/Track:Q66735932 "> </a> <a href = " https://wikidata.org/wiki/Track:Q61761948 "> </a>
  4. ↑ 1 2 A. Olson , P. Eggert , K. Murchison 8.2 // The Time Zone Information Format (TZif) - Internet Engineering Task Force , 2019 .-- P. 19. - 34 p. - doi: 10.17487 / RFC8536
    <a href=" https://wikidata.org/wiki/Track:Q66732288 "> </a> <a href=" https://wikidata.org/wiki/Track:Q217082 "> </a> <a href = " https://wikidata.org/wiki/Track:Q66734339 "> </a> <a href=" https://wikidata.org/wiki/Track:Q66735932 "> </a> <a href = " https://wikidata.org/wiki/Track:Q61761948 "> </a>
  5. ↑ https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=timezone/zic.c;hb=HEAD
  6. ↑ https://sourceware.org/git/?p=glibc.git;a=blob;f=COPYING.LIB;h=4362b49151d7b34ef83b3067a8f9c9f877d72a0e;hb=1c9a5c270d8b66f30dcfaf1cb2dc18
  7. ↑ Free Software Foundation. GNU's Bulletin, vol. 1 no. February 4, 1988 (neopr.) .
  8. ↑ Elliot Lee. A Technical Comparison of glibc 2.x With Legacy System Libraries (English) (2001). Archived on April 11, 2004.
  9. ↑ Forking: it could even happen to you . - "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." Archived January 21, 2013.
  10. ↑ Fear of Forking essay, see "6. glibc -> Linux libc -> glibc" (inaccessible link) . Date of treatment January 12, 2013. Archived July 18, 2014.
  11. ↑ Fear of Forking, footnote on Stallman's merge comments . Archived January 21, 2013.
  12. ↑ MAINTAINERS - glibc wiki (unopened) . sourceware.org. Date of treatment December 16, 2016.
  13. ↑ Torvalds, Linus Re: [libc-alpha] Re: [open-source] Re: Wish for 2002 (unspecified) . Mailing List libc-alpha@sources.redhat.com (January 9, 2002). Date of treatment December 16, 2016.
  14. ↑ Debian Switching From Glibc To Eglibc - Slashdot (neopr.) . linux.slashdot.org. Date of treatment December 16, 2016.
  15. ↑ Debian is switching to EGLIBC Aurelien's weblog, May 5th 2009
  16. ↑ Ark Linux switches to eglibc Ark Linux weblog, May 13 2009
  17. ↑ Debian is switching (back) to GLIBC Aurelien's weblog, June 18th 2014

Links

  • Official page
  • History of changes (in the source code of the library)
Source - https://ru.wikipedia.org/w/index.php?title=Glibc&oldid=101385508


More articles:

  • Shift work
  • Shooting at Omaha Shopping Center
  • Trikratsky forest
  • Komolova, Anna Mikhailovna
  • Tereshchenko (genus)
  • Memory (album)
  • Mukaltin
  • Springer Benedict
  • Sabra (Israelis)
  • Nysten, Pierre Hubert

All articles

Clever Geek | 2019