glibc - glibc

GNU C -bibliotek
Ursprungliga författare Roland McGrath
Utvecklare GNU -projekt , de flesta bidrag av Ulrich Drepper
Initial release 1987 ; 34 år sedan ( 1987 )
Stabil frisättning 2.34 (2 augusti 2021 ; för 2 månader sedan ) [±] ( 2021-08-02 )
Förvar
Skrivet i C
Operativ system Unix-liknande
Typ Körtidsbibliotek
Licens Sedan 2.2.4: LGPL-2.1 eller senare
0.1? till 2.2.3: LGPL-2.0 eller senare
Hemsida www .gnu .org /software /libc /
Den Linux API består ut ur System Call Interface av Linux-kärnan, GNU C-biblioteket (genom GNU ), libdrm , libalsa och libevdev (genom freedesktop.org ).
GNU C-bibliotek är ett omslag kring systemanrop av Linux-kärnan .
Den Linuxkärnan och GNU C-bibliotek bildar tillsammans Linux API . Efter sammanställningen erbjuder binärfilerna ett ABI .

Den GNU C-bibliotek , allmänt känd som glibc , är GNU-projektet : s genomförande av C-standard biblioteket . Trots sitt namn stöder den nu också direkt C ++ (och indirekt andra programmeringsspråk ). Det startades på 1980 -talet av Free Software Foundation (FSF) för GNU -operativsystemet.

Slibc är släppt under GNU Lesser General Public License och är gratis programvara . GNU C Library -projektet tillhandahåller kärnbiblioteken för GNU -systemet, liksom många system som använder Linux som kärnan . Dessa bibliotek tillhandahåller kritiska API: er, inklusive ISO C11 , POSIX.1-2008 , BSD , OS-specifika API: er och mer. Dessa API: er inkluderar sådana grundläggande faciliteter som öppna , läs , skriv , malloc , printf , getaddrinfo , dlopen , pthread_create , crypt , login , exit och mer.

Historia

Glibc -projektet skrevs ursprungligen mestadels av Roland McGrath, som arbetade för Free Software Foundation (FSF) på 1980 -talet som tonåring. I februari 1988 beskrev FSF glibc som nästan fullbordat den funktionalitet som ANSI C kräver . År 1992 hade funktionerna ANSI C-1989 och POSIX.1-1990 implementerade och arbetet pågår med POSIX.2. I september 1995 gav Ulrich Drepper sitt första bidrag till glibc och 1997 gjordes de flesta åtaganden av honom. Drepper innehade underhållspositionen i många år och fram till 2012 samlade 63% av alla åtaganden till projektet.

I maj 2009 migrerades glibc till ett Git -arkiv.

Under 2010 löstes ett licensproblem som orsakades av Sun RPC -implementeringen i glibc som inte var GPL -kompatibel . Det åtgärdades genom att återlicensiera Sun RPC-komponenterna under BSD-licensen .

I juli 2017, 30 år efter att han började glibc, tillkännagav Roland McGrath sin avgång, "förklarade mig själv underhållare emeritus och drog mig tillbaka från direkt engagemang i projektet. De senaste månaderna, om inte de senaste åren, har bevisat att du inte behöver mig längre ".

Versionshistorik

För de flesta system kan versionen av glibc erhållas genom att köra lib -filen (till exempel /lib/libc.so.6).

Gafflar och varianter

1994 gafflade utvecklarna av Linux -kärnan glibc. Deras gaffel, "Linux libc", upprätthölls separat fram till omkring 1998. Eftersom upphovsrätten inte var tillräcklig kunde ändringar inte slås samman till GNU Libc. När FSF släppte glibc 2.0 i januari 1997 avbröt kärnutvecklarna Linux libc på grund av glibc 2.0: s överlägsna överensstämmelse med POSIX -standarder. glibc 2.0 hade också bättre internationalisering och mer fördjupad översättning, IPv6- kapacitet, 64-bitars dataåtkomst, faciliteter för flertrådade applikationer, framtida versionskompatibilitet och koden var mer portabel. Den senast använda versionen av Linux libc använde det interna namnet ( sonamnet ) libc.so.5 . Efter detta använder glibc 2.x på Linux sonamnet libc.so.6

Under 2009 bytte Debian och ett antal derivat från glibc till varianten eglibc. Eglibc fick stöd av ett konsortium bestående av Freescale , MIPS , MontaVista och Wind River . Den innehöll ändringar som gjorde den mer lämplig för inbäddad användning och hade lagt till stöd för arkitekturer som inte stöds av glibc, till exempel PowerPC e500 . Eglibc -koden slogs samman till glibc i version 2.20. Sedan 2014 har eglibc avbrutits. Den Yocto Project och Debian också flyttat tillbaka till glibc sedan lanseringen av Debian Jessie .

Styrgrupp

Från och med 2001 hade bibliotekets utveckling övervakats av en kommitté, med Ulrich Drepper som den främsta bidragsgivaren och underhållaren. Den styrgrupp installationen var omgiven av en offentlig kontrovers, som det var öppet beskrivs av Ulrich Drepper som en misslyckad fientligt övertagande manöver av Richard Stallman.

I mars 2012 röstade styrkommittén för att avveckla sig själv och ta bort Drepper till förmån för en samhällsdriven utvecklingsprocess, med Ryan Arnold, Maxim Kuvyrkov, Joseph Myers, Carlos O'Donell och Alexandre Oliva som ansvarar för GNU-underhållet (men ingen extra beslutanderätt).

Funktionalitet

glibc tillhandahåller den funktionalitet som krävs av Single UNIX Specification , POSIX (1c, 1d och 1j) och en del av de funktioner som krävs av ISO C11 , ISO C99 , Berkeley Unix (BSD) gränssnitt, System V Interface Definition (SVID) och X/Open Portability Guide (XPG), utgåva 4.2, med alla tillägg som är gemensamma för XSI ( X/Open System Interface ) -kompatibla system tillsammans med alla X/Open UNIX -tillägg.

Dessutom tillhandahåller glibc även tillägg som har ansetts vara användbara eller nödvändiga under utvecklingen av GNU .

Hårdvara och kärnor som stöds

glibc används i system som kör många olika kärnor och olika hårdvaruarkitekturer . Dess vanligaste användning är i system som använder Linux-kärnanx86- hårdvara, men officiellt stödd maskinvara inkluderar: 32-bitars ARM och dess nyare 64-bitars ISA (AArch64) , C-SKY , DEC Alpha , IA-64 , Motorola m68k , MicroBlaze , MIPS , Nios II , PA-RISC , PowerPC , RISC-V , s390 , SPARC och x86 (gamla versioner stöder TILE ). Det stöder officiellt Hurd- och Linux -kärnorna. Dessutom finns det kraftigt korrigerade versioner som körs på kärnorna i FreeBSD och NetBSD (från vilka Debian GNU/kFreeBSD respektive Debian GNU/NetBSD- system är byggda), samt en gaffelversion av OpenSolaris . Det används också (i en redigerad form) och heter libroot.so i BeOS och Haiku .

Använd i små enheter

glibc har kritiserats som ” uppsvälld ” och långsammare än andra bibliotek tidigare, t.ex. av Linus Torvalds och inbäddade Linux -programmerare. Av denna anledning har flera alternativa C -standardbibliotek skapats som betonar ett mindre fotavtryck. Många småprojekt använder dock GNU libc över de mindre alternativen på grund av dess applikationsstöd, överensstämmelse med standarder och fullständighet. Exempel är Openmoko och Familiar Linux för iPaq -handenheter (när du använder GPE -skärmprogramvaran).

Kompatibilitetslager

Det finns kompatibilitetslager (" shims ") för att låta program som skrivits för andra ekosystem köras på system som erbjuder glibc -gränssnitt. Dessa inkluderar libhybris , ett kompatibilitetslager för Android's Bionic och Wine , som kan ses som ett kompatibilitetslager från Windows API: er till glibc och andra inbyggda API: er tillgängliga på Unix-liknande system.

Se även

Referenser

externa länkar