Glibc

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 17 mars 2017; kontroller kräver 18 redigeringar .

Glibc
Sorts C POSIX-bibliotek
Utvecklaren GNU-projekt
Skrivet i Xi
Operativ system GNU/Linux [3] , GNU/Hurd [3] och BSD [3]
Första upplagan 1987
senaste versionen
Läsbara filformat Tidszonsinformationsformat [d] [4][5][6]
Genererade filformat Tidszonsinformationsformat [d] [7][5][6]
Licens LGPLv2.1+ [d] [8]
Hemsida gnu.org/software/… ​(  engelska)
 Mediafiler på Wikimedia Commons

glibc  - GNU C-bibliotek ( GNU- bibliotek). Glibc är ett C - bibliotek som tillhandahåller systemanrop och grundläggande funktioner som open , malloc , printf , etc. C-biblioteket används för alla dynamiskt länkade program. Den är skriven av Free Software Foundation för GNU-operativsystem. glibc släpps under GNU LGPL -licensen .

Historik

glibc skrevs ursprungligen av Roland McGrath , som arbetade för FSF på 1980-talet. I februari 1988 introducerade FSF glibc som ett bibliotek som har nästan all funktionalitet som krävs av ANSI C- standarden [9] .

Tillfällig gaffel av glibc

I början av 1990-talet skapade utvecklarna av Linux-kärnan en gaffel av glibc. Denna gaffel, kallad "Linux libc", utvecklades separat under flera år, med version 2 till 5 som släpptes.

När FSF släppte glibc 2.0 1996, som stödde IPv6 , 64-bitars dataåtkomst, flertrådade applikationer, kompatibilitet med framtida versioner och mer portabel källkod [10] , avbröt Linux-utvecklare utvecklingen av Linux libc och började använda FSF:s glibc. [elva]

.so-filen för den senaste Linux-libcen fick namnet (soname) libc.so.5 . glibc 2.x efter den använde namnet libc.so.6 [12] (på Alpha- och IA64-arkitekturer används namnet libc.so.6.1 istället ). Detta namn förkortas ofta till libc6 (t.ex. i ett Debian -paketnamn ), enligt de vanliga bibliotekskonventionerna.

Enligt Richard Stallman kan ändringar från Linux libc inte portas tillbaka till glibc eftersom författarskapet till denna kod är oklart och GNU -projektet är mycket strikt när det gäller att upprätthålla upphovsrättsregister. [13]

Versionshistorik

Version datumet Anteckningar Adoption
2,33 februari 2021 Ubuntu 20.04
2,32 augusti 2020
2,31 februari 2020
2.30 augusti 2019
2,29 februari 2019
2.28 augusti 2018
2.27 februari 2018 Prestandaoptimeringar. RISC-V- stöd . Ubuntu 18.04
2.26 augusti 2017 Förbättrad prestanda (per-tråd cache för malloc), Unicode 10-stöd Ubuntu 17.10
2,25 februari 2017 Lade till funktionerna getentropy och getrandom och rubrikfil <sys/random.h>. Fedora 26
2.24 augusti 2016 Tog bort några föråldrade funktioner
2.23 februari 2016 Unicode 8.0 Fedora 24, Ubuntu 16.04
2.22 augusti 2015 Lade till libmvec vektor matematikbibliotek.
2.21 februari 2015 Stöd för Altera Nios II- arkitektur Ubuntu 15.04, Debian experimentell, Fedora 22
2.20 september 2014 Fedora 21
2.19 Februari 2014 Ubuntu 14.04, eglibc 2.19 på Debian 8 (Jessie), openSUSE 13, SLES 12
2.18 augusti 2013 Förbättrat stöd för ISO C11-standarden . Xilinx MicroBlaze och IBM POWER8 mikroarkitektur stöd Fedora 20
2.17 december 2012 Stöd för 64-bitars ARM-arkitektur Ubuntu 13.04, RHEL 7
2.16 juni 2012 x32 ABI- stöd , ISO C11-standard , SystemTap
2.15 mars 2012 Ubuntu 12.04 och 12.10
2.14 juni 2011
2.13 januari 2011 eglibc 2.13 på Debian 7 (Wheezy)
2.12 maj 2010 RHEL 6
2.11 oktober 2009 SLES 11, Ubuntu 10.04, eglibc på Debian 6 (Squeeze)
2.10 maj 2009
2.9 november 2008 Ubuntu 9.04
2.8 april 2008 Ubuntu 8.10
2.7 oktober 2007 Debian 5 (Lenny), Ubuntu 8.04
2.6 maj 2007
2.5 september 2006 Fullständig inotify- support RHEL 5
2.4 mars 2006 Standard i LSB 4.0, initialt stöd för inotify SLES 10
2.3.6 november 2005 Debian 4.0 (Etch)
2.3.5 april 2005 SLES 9
2.3.4 december 2004 Standard i LSB 3.0 RHEL 4 (Uppdatering 5)
2.3.2 februari 2003 Debian 3.1 (Sarge)
2.3 oktober 2002
2.2.4 juli 2001
2.2 november 2000
2.1.1 mars 1999
2.1 februari 1999
2.0.95 juli 1998
2.0 januari 1997
1,90 - 1,102 Maj 1996 - januari 1997
1.01 — 1.09.3 Mars 1992 - december 1994
1.0 februari 1992
0,1 - 0,6 Oktober 1991 - februari 1992

Arkitekturer och kärnor som stöds

Glibc används på system som kör många olika operativsystem och på olika arkitekturer. glibc används oftast på x86 Linux- maskiner . Följande arkitekturer stöds också officiellt: SPARC , Motorola 68k , DEC Alpha , PowerPC , ARM , s390 [14] .

Kritik

glibc kritiseras ofta för att vara "uppsvälld" och långsam jämfört med andra tidigare bibliotek [15] . Därför har flera alternativa standard C-bibliotek ( dietlibc , uClibc , Newlib , musl , Klibc ) skapats. Också under kritik är underhållaren Ulrich Drepper och hans inställning till buggar i Glibc [16] .

2009 ersatte populära distributioner som Debian [17] , Ubuntu och ArkLinux [18] glibc med ett alternativt bibliotek , eglibc , som ursprungligen var inriktat på inbäddade system . Eglibc är en variant av glibc som är mer vänlig att acceptera tredje parts patchar. Den 18 juni 2014 meddelade dock en av paketunderhållarna av Debiandistributionen att de skulle ersätta eglibc- biblioteket med glibc-biblioteket [19] .

Anteckningar

  1. O'Donell C. GNU C Library version 2.36 är nu tillgänglig  - 2022 .
  2. https://sourceware.org/glibc/wiki/Release/2.36
  3. 1 2 3 Gratis programvarukatalog
  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)  (engelska) - IETF , 2019. - P. 18. - 34 sid. doi : 10.17487/RFC8536
  6. 1 2 Olson A. , Eggert P. , Murchison K. 8.2 // The Time Zone Information Format (TZif)  (engelska) - IETF , 2019. - P. 19. - 34 sid. 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, vol. 1 nr. 4 februari 1988 . Datum för åtkomst: 16 december 2016. Arkiverad från originalet 16 april 2016.
  10. Elliot Lee. En teknisk jämförelse av glibc 2.x med äldre systembibliotek  (engelska)  (länk ej tillgänglig) (2001). Arkiverad från originalet den 11 april 2004.
  11. Forking: det kan till och med hända dig  (engelska)  (nedlänk) . — "uppdelningen mellan GNU LIBC och Linux LIBC -- den fortsatte i flera år medan Linux stabiliserades, och sedan slogs gafflarna samman till ett projekt." Arkiverad från originalet den 21 januari 2013.
  12. Fear of Forking-uppsats, se "6. glibc --> Linux libc --> glibc"  ( död  länk) . Hämtad 12 januari 2013. Arkiverad från originalet 18 juli 2014.
  13. Fear of Forking, fotnot om Stallmans sammanslagningskommentarer  (eng.)  (länk ej tillgänglig) . Arkiverad från originalet den 21 januari 2013.
  14. UNDERHÅLLARE - glibc wiki . sourceware.org. Hämtad 16 december 2016. Arkiverad från originalet 18 april 2016.
  15. Torvalds, Linus Re: [libc-alpha] Re: [open-source] Re: Wish for 2002 . e-postlista libc-alpha@sources.redhat.com (9 januari 2002). Hämtad: 16 december 2016.
  16. Debian byter från Glibc till Eglibc - Slashdot . linux.slashdot.org. Datum för åtkomst: 16 december 2016. Arkiverad från originalet 20 december 2016.
  17. Debian byter till EGLIBC Arkiverad 7 oktober 2011 på Wayback Machine Aureliens webblogg, 5 maj  2009
  18. Ark Linux byter till eglibc Arkiverad 24 februari 2012 på Wayback Machine Ark Linux webblogg, 13 maj 2009 
  19. Debian byter (tillbaka) till GLIBC Arkiverad 29 mars 2016 på Wayback Machine Aureliens webblogg, 18 juni  2014

Länkar