table of contents
libc(7) | Miscellaneous Information Manual | libc(7) |
NAZWA¶
libc - przegląd standardowych bibliotek C na Linuksie
OPIS¶
Pojęcie „libc” służy często jako skrót nazwy „standardowa biblioteka C” — biblioteki standardowych funkcji, które mogą być używane przez wszystkie programy C (i czasem przez programy w innych językach). Ze względów historycznych (zob. niżej) użycie pojęcia „libc” w odniesieniu do standardowej biblioteki C jest poniekąd niejednoznaczne w Linuksie.
glibc¶
Zdecydowanie najpowszechniej używaną biblioteką C na Linuksie jest Biblioteka C GNU, często określana jako glibc. Jest to biblioteka C, która jest obecnie używana przez wszystkie główne dystrybucje Linuksa. Jest to również biblioteka C, której szczegóły są udokumentowane w odpowiednich stronach podręcznika systemowego projektu man-pages (głównie w sekcji 3). Dokumentacja glibc jest dostępna również w podręczniku glibc, dostępnym poleceniem info libc. Wydanie 1.0 glibc miało miejsce we wrześniu 1992 roku (wcześniej istniały wydania 0.x). Kolejnym głównym wydaniem glibc było 2.0 z początku 1997 roku.
Ścieżka /lib/libc.so.6 (lub podobna) jest zwykle dowiązaniem symbolicznym, wskazującym na położenie biblioteki glibc, a wykonanie tej ścieżki spowoduje wyświetlenie przez glibc różnych informacji o wersji zainstalowanej w bieżącym systemie.
Linuksowa libc¶
W pierwszej dekadzie lat 90. istniała przez chwilę linuksowa libc, rozgałęzienie glibc 1.x utworzone przez deweloperów Linuksa, którzy stwierdzili, że rozwój glibc w tamtym czasie nie odpowiada potrzebom Linuksa. Często określano tę bibliotekę (niejednoznacznie) jako po prostu „libc”. Linuksowa libc miała główne wydania 2, 3, 4 i 5, oraz wiele pomniejszych wersji tych wydań. Linuksowa libc4 była ostatnią wersją używającą binarnego formatu a.out i pierwszą, która zapewniała (prymitywną) obsługę bibliotek dzielonych. Linuksowa libc5 była pierwszą wersją obsługującą format binarny ELF, wersja ta używała soname biblioteki dzielonej libc.so.5. Przez pewien czas, linuksowa libc była standardową biblioteką C w wielu dystrybucjach Linuksa.
Jednak, niezgodnie z pierwotnymi motywami utworzenia linuksowej biblioteki libc, w chwili wydania glibc 2.0 (w 1997 r.), była ona zdecydowania lepsza od linuksowej libc i wszystkie główne dystrybucje Linuksa używające linuksowej libc, powróciły do glibc. Aby uniknąć pomyłek dotyczących wersji linuksowej libc, glibc 2.0 i kolejne używają soname biblioteki dzielonej libc.so.6.
Zmiana z linuksowej libc na glibc 2.0 nastąpiła dawno temu, dlatego strony podręcznika systemowego projektu man-pages nie dokumentują już detali linuksowej biblioteki libc. Pomimo tego, historia odcisnęła swoje piętno na kilku stronach podręcznika systemowego z informacjami o linuksowej libc, w szczególności w odwołaniach do libc4 i libc5.
Inne biblioteki C¶
Istnieją inne, rzadziej używane biblioteki C do Linuksa. Biblioteki te są zwykle mniejsze niż glibc, zarówno jeśli chodzi o zestaw funkcji jak i zajętość pamięci i często są przeznaczonego do budowania małych plików wykonywalnych, używanych np. do wbudowanych systemów linuksowych. Są to między innymi uClibc, dietlibc, i musl libc. Szczegóły dotyczące tych bibliotek są opisywane przez projekt man-pages tam, gdzie są znane.
ZOBACZ TAKŻE¶
syscalls(2), getauxval(3), proc(5), feature_test_macros(7), man-pages(7), standards(7), vdso(7)
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
2 maja 2024 r. | Linux man-pages (niewydane) |