Glibc

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 17 martie 2017; verificările necesită 18 modificări .

Glibc
Tip de C bibliotecă POSIX
Dezvoltator Proiectul GNU
Scris in Xi
Sistem de operare GNU/Linux [3] , GNU/Hurd [3] și BSD [3]
Prima editie 1987
ultima versiune
Formate de fișiere care pot fi citite Formatul informațiilor fus orar [d] [4][5][6]
Formate de fișiere generate Formatul informațiilor fus orar [d] [7][5][6]
Licență LGPLv2.1+ [d] [8]
Site-ul web gnu.org/software/… ​(  engleză)
 Fișiere media la Wikimedia Commons

glibc  - GNU C Library ( biblioteca GNU ). Glibc este o bibliotecă C care oferă apeluri de sistem și funcții de bază, cum ar fi open , malloc , printf , etc. Biblioteca C este folosită pentru toate programele legate dinamic. Este scris de Free Software Foundation pentru sistemele de operare GNU. glibc este lansat sub licența GNU LGPL .

Istorie

glibc a fost scris inițial de Roland McGrath , care a lucrat pentru FSF în anii 1980. În februarie 1988, FSF a introdus glibc ca o bibliotecă care are aproape toate funcționalitățile cerute de standardul ANSI C [9] .

Furcătura temporară a glibc

La începutul anilor 1990, dezvoltatorii nucleului Linux au creat un furk de glibc. Această furcă, numită „Linux libc”, a fost dezvoltată separat de-a lungul mai multor ani, fiind lansate versiunile 2 până la 5.

Când FSF a lansat glibc 2.0 în 1996, care a acceptat IPv6 , acces la date pe 64 de biți, aplicații multi-threaded, compatibilitate cu versiunile viitoare și mai mult cod sursă portabil [10] , dezvoltatorii Linux au întrerupt dezvoltarea Linux libc și au început să folosească glibc-ul FSF. [unsprezece]

Fișierul .so al celui mai recent Linux libc a fost numit (sonam) libc.so.5 . glibc 2.x după el a folosit numele libc.so.6 [12] (pe arhitecturile Alpha și IA64 , numele libc.so.6.1 este folosit în schimb ). Acest nume este adesea scurtat la libc6 (de exemplu, într-un nume de pachet Debian ), urmând convențiile obișnuite ale bibliotecii.

Potrivit lui Richard Stallman , modificările de la Linux libc nu pot fi portate înapoi la glibc, deoarece paternitatea acestui cod este neclară, iar proiectul GNU este foarte strict în ceea ce privește menținerea înregistrărilor drepturilor de autor. [13]

Istoricul versiunilor

Versiune data Note Adopţie
2.33 februarie 2021 Ubuntu 20.04
2.32 august 2020
2.31 februarie 2020
2.30 august 2019
2.29 februarie 2019
2.28 august 2018
2.27 februarie 2018 Optimizări de performanță. Suport RISC-V . Ubuntu 18.04
2.26 august 2017 Performanță îmbunătățită (cache pe thread pentru malloc), suport Unicode 10 Ubuntu 17.10
2.25 februarie 2017 S-au adăugat funcțiile getentropy și getrandom și fișierul antet <sys/random.h>. Fedora 26
2.24 august 2016 Au fost eliminate unele funcții depreciate
2.23 februarie 2016 Unicode 8.0 Fedora 24, Ubuntu 16.04
2.22 august 2015 S-a adăugat biblioteca de matematică vectorială libmvec.
2.21 februarie 2015 Suport pentru arhitectura Altera Nios II Ubuntu 15.04, Debian experimental, Fedora 22
2.20 septembrie 2014 Fedora 21
2.19 februarie 2014 Ubuntu 14.04, eglibc 2.19 pe Debian 8 (Jessie), openSUSE 13, SLES 12
2.18 August 2013 Suport îmbunătățit pentru standardul ISO C11 . Suport pentru microarhitectură Xilinx MicroBlaze și IBM POWER8 Fedora 20
2.17 decembrie 2012 Suport pentru arhitectura ARM pe 64 de biți Ubuntu 13.04, RHEL 7
2.16 iunie 2012 Suport x32 ABI , standard ISO C11 , SystemTap
2.15 martie 2012 Ubuntu 12.04 și 12.10
2.14 iunie 2011
2.13 ianuarie 2011 eglibc 2.13 pe Debian 7 (Wheezy)
2.12 mai 2010 RHEL 6
2.11 octombrie 2009 SLES 11, Ubuntu 10.04, eglibc pe Debian 6 (Squeeze)
2.10 mai 2009
2.9 noiembrie 2008 Ubuntu 9.04
2.8 aprilie 2008 Ubuntu 8.10
2.7 octombrie 2007 Debian 5 (Lenny), Ubuntu 8.04
2.6 mai 2007
2.5 septembrie 2006 Asistență completă pentru notificări RHEL 5
2.4 martie 2006 Standard în LSB 4.0, suport inițial pentru inotify SLES 10
2.3.6 noiembrie 2005 Debian 4.0 (Etch)
2.3.5 aprilie 2005 SLES 9
2.3.4 decembrie 2004 Standard în LSB 3.0 RHEL 4 (Actualizare 5)
2.3.2 februarie 2003 Debian 3.1 (Sarge)
2.3 octombrie 2002
2.2.4 iulie 2001
2.2 noiembrie 2000
2.1.1 martie 1999
2.1 februarie 1999
2.0.95 iulie 1998
2.0 ianuarie 1997
1,90 - 1,102 mai 1996 - ianuarie 1997
1.01 — 1.09.3 martie 1992 - decembrie 1994
1.0 februarie 1992
0,1 - 0,6 octombrie 1991 - februarie 1992

Arhitecturi și nuclee acceptate

Glibc este utilizat pe sisteme care rulează multe sisteme de operare diferite și pe arhitecturi diferite. glibc este cel mai frecvent utilizat pe mașinile x86 Linux . De asemenea, sunt acceptate oficial următoarele arhitecturi: SPARC , Motorola 68k , DEC Alpha , PowerPC , ARM , s390 [14] .

Critica

glibc este adesea criticat pentru că este „umflat” și lent în comparație cu alte biblioteci din trecut [15] . Prin urmare, au fost create mai multe biblioteci C standard alternative ( dietlibc , uClibc , Newlib , musl , Klibc ). De asemenea, sub critică este întreținătorul Ulrich Drepper și atitudinea sa față de bug-uri în Glibc [16] .

În 2009, distribuțiile populare precum Debian [17] , Ubuntu și ArkLinux [18] au înlocuit glibc cu o bibliotecă alternativă , eglibc , destinată inițial sistemelor încorporate . Eglibc este o variantă a glibc care este mai prietenoasă cu acceptarea patch-urilor terților. Cu toate acestea, pe 18 iunie 2014, unul dintre menținătorii de pachete ai distribuției Debian a anunțat că înlocuiește biblioteca eglibc cu biblioteca glibc [19] .

Note

  1. O'Donell C. Biblioteca GNU C versiunea 2.36 este acum disponibilă  - 2022 .
  2. https://sourceware.org/glibc/wiki/Release/2.36
  3. 1 2 3 Director de software gratuit
  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)  (engleză) - IETF , 2019. - P. 18. - 34 p. doi : 10.17487/RFC8536
  6. 1 2 Olson A. , Eggert P. , Murchison K. 8.2 // The Time Zone Information Format (TZif)  (engleză) - IETF , 2019. - P. 19. - 34 p. 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. Buletinul GNU, vol. 1 nr. 4 februarie 1988 . Data accesului: 16 decembrie 2016. Arhivat din original pe 16 aprilie 2016.
  10. Elliot Lee. A Technical Comparison of glibc 2.x With Legacy System Libraries  (engleză)  (link indisponibil) (2001). Arhivat din original pe 11 aprilie 2004.
  11. Forking: ți se poate întâmpla chiar și ție  (engleză)  (downlink) . — „diviziunea dintre GNU LIBC și Linux LIBC -- a continuat ani de zile în timp ce Linux s-a stabilizat, iar apoi furcile s-au reunit într-un singur proiect. Arhivat din original pe 21 ianuarie 2013.
  12. Eseul Fear of Forking, vezi „6. glibc --> Linux libc --> glibc”  (  link mort) . Consultat la 12 ianuarie 2013. Arhivat din original la 18 iulie 2014.
  13. Fear of Forking, notă de subsol despre comentariile de îmbinare ale lui Stallman  (ing.)  (link indisponibil) . Arhivat din original pe 21 ianuarie 2013.
  14. MAINTENERS - glibc wiki . sourceware.org. Consultat la 16 decembrie 2016. Arhivat din original la 18 aprilie 2016.
  15. Torvalds, Linus Re: [libc-alpha] Re: [open-source] Re: Dorință pentru 2002 . listă de corespondență [email protected] (9 ianuarie 2002). Preluat: 16 decembrie 2016.
  16. Trecerea Debian de la Glibc la Eglibc - Slashdot . linux.slashdot.org. Data accesului: 16 decembrie 2016. Arhivat din original pe 20 decembrie 2016.
  17. Debian trece la EGLIBC Arhivat la 7 octombrie 2011 pe blogul Wayback Machine Aurelien, 5 mai  2009
  18. Ark Linux trece la eglibc Arhivat 24 februarie 2012 pe jurnalul web Wayback Machine Ark Linux, 13 mai 2009 
  19. Debian trece (înapoi) la GLIBC Arhivat 29 martie 2016 pe weblogul Wayback Machine Aurelien, 18 iunie  2014

Link -uri