Glibc

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 17. maaliskuuta 2017 tarkistetusta versiosta . tarkastukset vaativat 18 muokkausta .

Glibc
Tyyppi C POSIX-kirjasto
Kehittäjä GNU projekti
Sisään kirjoitettu Xi
Käyttöjärjestelmä GNU/Linux [3] , GNU/Hurd [3] ja BSD [3]
Ensimmäinen painos 1987
uusin versio
Luettavat tiedostomuodot Aikavyöhyketietojen muoto [d] [4][5][6]
Luodut tiedostomuodot Aikavyöhyketietojen muoto [d] [7][5][6]
Lisenssi LGPLv2.1+ [d] [8]
Verkkosivusto gnu.org/software/… ​(  englanti)
 Mediatiedostot Wikimedia Commonsissa

glibc  - GNU C -kirjasto ( GNU - kirjasto). Glibc on C - kirjasto , joka tarjoaa järjestelmäkutsuja ja perustoimintoja, kuten open , malloc , printf jne. C-kirjastoa käytetään kaikissa dynaamisesti linkitetyissä ohjelmissa. Sen on kirjoittanut Free Software Foundation for GNU-käyttöjärjestelmille. glibc on julkaistu GNU LGPL -lisenssillä .

Historia

glibc on alunperin kirjoittanut Roland McGrath , joka työskenteli FSF :ssä 1980-luvulla. Helmikuussa 1988 FSF esitteli glibc:n kirjastona, jossa on lähes kaikki ANSI C -standardin edellyttämät toiminnot [9] .

Temporary fork of glibc

1990-luvun alussa Linux-ytimen kehittäjät loivat glibc :n haarukan . Tämä haarukka, nimeltään "Linux libc", kehitettiin erikseen useiden vuosien aikana, ja versiot 2–5 julkaistiin.

Kun FSF julkaisi glibc 2.0:n vuonna 1996, joka tuki IPv6 :ta, 64-bittistä dataa, monisäikeisiä sovelluksia, yhteensopivuutta tulevien versioiden kanssa ja kannettavampaa lähdekoodia [10] , Linux-kehittäjät keskeyttivät Linux libc:n kehittämisen ja alkoivat käyttää FSF:n glibc:tä. [yksitoista]

Uusimman Linux libc:n .so-tiedoston nimi oli (soname) libc.so.5 . Sitä seuraava glibc 2.x käytti nimeä libc.so.6 [12] ( Alpha- ja IA64-arkkitehtuureissa käytetään sen sijaan nimeä libc.so.6.1 ). Tämä nimi lyhennetään usein muotoon libc6 (esim. Debian - paketin nimessä ) tavanomaisten kirjastokäytäntöjen mukaisesti.

Richard Stallmanin mukaan muutoksia Linux libc:stä ei voida siirtää takaisin glibc:hen, koska tämän koodin tekijä on epäselvä ja GNU -projekti on erittäin tiukka tekijänoikeustietueiden ylläpidon suhteen. [13]

Versiohistoria

Versio päivämäärä Huomautuksia Hyväksyminen
2.33 Helmikuu 2021 Ubuntu 20.04
2.32 Elokuu 2020
2.31 Helmikuu 2020
2.30 Elokuu 2019
2.29 Helmikuu 2019
2.28 Elokuu 2018
2.27 Helmikuu 2018 Suorituskyvyn optimoinnit. RISC-V- tuki . Ubuntu 18.04
2.26 Elokuu 2017 Parannettu suorituskyky (säiekohtainen välimuisti mallocille), Unicode 10 -tuki Ubuntu 17.10
2.25 Helmikuu 2017 Lisätty funktiot getentropy ja getrandom sekä otsikkotiedosto <sys/random.h>. Fedora 26
2.24 Elokuu 2016 Poistettu joitakin käytöstä poistettuja ominaisuuksia
2.23 Helmikuu 2016 Unicode 8.0 Fedora 24, Ubuntu 16.04
2.22 Elokuu 2015 Lisätty libmvec-vektorimatematiikan kirjasto.
2.21 Helmikuu 2015 Tuki Altera Nios II -arkkitehtuurille Ubuntu 15.04, Debianin kokeellinen, Fedora 22
2.20 Syyskuu 2014 Fedora 21
2.19 helmikuu 2014 Ubuntu 14.04, eglibc 2.19 Debian 8:ssa (Jessie), openSUSE 13, SLES 12
2.18 elokuu 2013 Parannettu ISO C11 - standardin tuki . Xilinx MicroBlaze ja IBM POWER8 mikroarkkitehtuurituki Fedora 20
2.17 joulukuuta 2012 Tuki 64-bittiselle ARM-arkkitehtuurille Ubuntu 13.04, RHEL 7
2.16 Kesäkuu 2012 x32 ABI -tuki , ISO C11 -standardi , SystemTap
2.15 Maaliskuu 2012 Ubuntu 12.04 ja 12.10
2.14 Kesäkuu 2011
2.13 tammikuuta 2011 eglibc 2.13 Debian 7:ssä (Wheezy)
2.12 toukokuuta 2010 RHEL 6
2.11 lokakuuta 2009 SLES 11, Ubuntu 10.04, eglibc Debian 6:ssa (Squeeze)
2.10 toukokuuta 2009
2.9 marraskuuta 2008 Ubuntu 9.04
2.8 huhtikuuta 2008 Ubuntu 8.10
2.7 lokakuuta 2007 Debian 5 (Lenny), Ubuntu 8.04
2.6 toukokuuta 2007
2.5 Syyskuu 2006 Täysi inotify- tuki RHEL 5
2.4 Maaliskuu 2006 Vakio LSB 4.0:ssa, alustava tuki inotifylle SLES 10
2.3.6 marraskuuta 2005 Debian 4.0 (Etch)
2.3.5 huhtikuuta 2005 SLES 9
2.3.4 joulukuuta 2004 Vakio LSB 3.0:ssa RHEL 4 (päivitys 5)
2.3.2 Helmikuu 2003 Debian 3.1 (Sarge)
2.3 lokakuuta 2002
2.2.4 Heinäkuu 2001
2.2 marraskuuta 2000
2.1.1 Maaliskuu 1999
2.1 Helmikuu 1999
2.0.95 Heinäkuu 1998
2.0 tammikuuta 1997
1,90 - 1,102 Toukokuu 1996 - tammikuu 1997
1.01 - 1.09.3 Maaliskuu 1992 - joulukuu 1994
1.0 Helmikuu 1992
0,1 - 0,6 Lokakuu 1991 - helmikuu 1992

Tuetut arkkitehtuurit ja ytimet

Glibc:tä käytetään järjestelmissä, joissa on useita eri käyttöjärjestelmiä ja erilaisia ​​arkkitehtuuria. glibc on yleisimmin käytetty x86 Linux - koneissa . Myös seuraavat arkkitehtuurit ovat virallisesti tuettuja: SPARC , Motorola 68k , DEC Alpha , PowerPC , ARM , s390 [14] .

Kritiikki

glibc:tä kritisoidaan usein "paisuntaisesta" ja hitaasta verrattuna muihin menneisiin kirjastoihin [15] . Siksi on luotu useita vaihtoehtoisia standardi C-kirjastoja ( dietlibc , uClibc , Newlib , musl , Klibc ). Kritiikin kohteena on myös ylläpitäjä Ulrich Drepper ja hänen suhtautumisensa Glibcin bugeihin [16] .

Vuonna 2009 suositut jakelut, kuten Debian [17] , Ubuntu ja ArkLinux [18] , korvasivat glibc:n vaihtoehtoisella kirjastolla , eglibc :llä , joka oli alun perin suunnattu sulautettuihin järjestelmiin . Eglibc on glibc:n muunnos, joka on ystävällisempi hyväksymään kolmannen osapuolen korjaustiedostoja. Kuitenkin 18. kesäkuuta 2014 yksi Debian-jakelun pakettien ylläpitäjistä ilmoitti, että he korvasivat eglibc -kirjaston glibc-kirjastolla [19] .

Muistiinpanot

  1. O'Donell C. GNU C Libraryn versio 2.36 on nyt saatavilla  - 2022 .
  2. https://sourceware.org/glibc/wiki/Release/2.36
  3. 1 2 3 Free Software Directory
  4. https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=timezone/tzfile.h;hb=HEAD
  5. 1 2 Olson A. , Eggert P. , Murchison K. 8.1 // The Time Zone Information Format (TZif)  (englanniksi) - IETF , 2019. - S. 18. - 34 s. doi : 10.17487/RFC8536
  6. 1 2 Olson A. , Eggert P. , Murchison K. 8.2 // The Time Zone Information Format (TZif)  (englanniksi) - IETF , 2019. - S. 19. - 34 s. doi : 10.17487/RFC8536
  7. https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=timezone/zic.c;hb=HEAD
  8. https://sourceware.org/git/?p=glibc.git;a=commit;h=41bdb6e20c5d2df34a740cbd70e11c05025dfd12
  9. Free Software Foundation. GNU's Bulletin, voi. 1 nro 4. helmikuuta 1988 . Käyttöpäivä: 16. joulukuuta 2016. Arkistoitu alkuperäisestä 16. huhtikuuta 2016.
  10. Elliot Lee. Tekninen vertailu glibc 2.x:stä vanhojen järjestelmäkirjastojen kanssa  (englanniksi)  (linkki ei ole käytettävissä) (2001). Arkistoitu alkuperäisestä 11. huhtikuuta 2004.
  11. Forking: se voi jopa tapahtua sinulle  (englanniksi)  (downlink) . - "jako GNU LIBC:n ja Linux LIBC:n välillä - se jatkui vuosia, kun Linux vakiintui, ja sitten haarukat sulautuivat uudelleen yhdeksi projektiksi." Arkistoitu alkuperäisestä 21. tammikuuta 2013.
  12. Fear of Forking -essee, katso "6. glibc --> Linux libc --> glibc"  ( kuollut  linkki) . Haettu 12. tammikuuta 2013. Arkistoitu alkuperäisestä 18. heinäkuuta 2014.
  13. Fear of Forking, alaviite Stallmanin yhdistämiskommenteista  (eng.)  (linkki ei ole käytettävissä) . Arkistoitu alkuperäisestä 21. tammikuuta 2013.
  14. YLLÄPITOJA - glibc wiki . sourceware.org. Haettu 16. joulukuuta 2016. Arkistoitu alkuperäisestä 18. huhtikuuta 2016.
  15. Torvalds, Linus Re: [libc-alpha] Re: [avoin lähdekoodi] Re: Wish for 2002 . [email protected] (9. tammikuuta 2002). Haettu: 16. joulukuuta 2016.
  16. Debianin vaihtaminen Glibc:stä Eglibc:hen - Slashdot . linux.slashdot.org. Käyttöpäivä: 16. joulukuuta 2016. Arkistoitu alkuperäisestä 20. joulukuuta 2016.
  17. Debian siirtyy EGLIBC:hen . Arkistoitu 7. lokakuuta 2011 Wayback Machinen Aurelienin blogissa, 5. toukokuuta  2009
  18. Ark Linux vaihtaa eglibc:hen Arkistoitu 24. helmikuuta 2012 Wayback Machine Ark Linux -verkkoblogissa, 13. toukokuuta 2009 
  19. Debian siirtyy (takaisin) GLIBC:hen. Arkistoitu 29. maaliskuuta 2016 Wayback Machinen Aurelienin blogiin, 18. kesäkuuta  2014

Linkit