glibc

glibc - GNU C Library ( GNU бібліотека). Glibc є бібліотекою Сі, яка забезпечує системні виклики та основні функції, такі як open, malloc, printf і т.д. Бібліотека C використовується для всіх динамічно скомпонованих програм. Вона написана Free Software Foundation для GNU операційних систем. glibc випущена під ліцензією GNU LGPL.


1. Історія

Спочатку glibc була написана Роландом МакГрат (Roland McGrath), що працювали в FSF в 1980-x роках. У лютому 1988 року FSF представила glibc як бібліотеку, що має найбільш повну функціональність, необхідну для ANSI C.

1.1. Тимчасовий форк glibc

На початку 1990-х років розробники ядра Linux створили форк glibc. Цей форк, названий "Linux libc", розроблявся окремо протягом декількох років, були випущені версії з 2 до 5.

Коли FSF випустила в 1996 році glibc 2.0, яка підтримувала IPv6, 64-бітний доступ до даних, багатопотокових додатки, сумісність з майбутніми версіями і більш переносимий вихідний код [2], розробники Linux перервали розробку Linux libc і почали використовувати glibc від FSF [3].

Файл. So останній версії Linux libc мав ім'я (soname) libc.so.5. Наступна після неї glibc 2.x використовувала ім'я libc.so.6 [4] (на архітектурах Alpha і IA64 замість цього використовується ім'я libc.so.6.1). Це ім'я зачату скорочується до libc6 (наприклад в імені пакету Debian), слідуючи звичайним угодам для бібліотек.

За словами Річард Столлман зміни з Linux libc не можна перенести назад в glibc, тому що авторство цього коду неясно, а проект GNU дуже суворо ставиться до збереження записів про авторські права [5].


1.2. Історія версій

Версія Дата Примітки
2.17 Грудень 2012 Підтримка 64-бітної архітектури ARM
2.16 Червень 2012 Підтримка x32 ABI, стандарт ISO C11, SystemTap
2.15 Березень 2012
2.14 Червень 2011
2.13 Січень 2011
2.12 Травень 2010 Використана в RHEL 6
2.11 Жовтень 2009 Використана в SLES 11, eglibc 2.11 використана в Debian 6 (Squeeze)
2.10 Травень 2009
2.9 Листопад 2008 Використана в Ubuntu 9.04
2.8 Квітень 2008 Використана в Ubuntu 8.10
2.7 Жовтень 2007 Debian 5 (Lenny), Ubuntu 8.04
2.6 Травень 2007
2.5 Вересень 2006 Used in RHEL 5
2.4 Березень 2006 Стандарт в LSB 4.0, використана в SLES 10
2.3.6 Листопад 2005 Debian 4.0 (Etch)
2.3.5 Квітень 2005 Використана в SLES 9
2.3.4 Грудень 2004 Стандарт в LSB 3.0, використана в RHEL 4 (Update 5)
2.3.2 Лютий 2003 Debian 3.1 (Sarge)
2.3 Жовтень 2002
2.2.4 Липень 2001
2.2 Листопад 2000
2.1.1 Березень 1999
2.1 Лютий 1999
2.0.95 Липень 1998
2.0 Січень 1997
1.90 - 1.102 Травень 1996 - січень 1997
1.01 - 1.09.3 Березень 1992 - грудень 1994
1.0 Лютий 1992
0.1 - 0.6 Жовтень 1991 - лютий 1992

2. Підтримувані архітектури та ядра

Glibc використовується в системах, на яких працює багато різних ОС, і на різних архітектурах. Найбільш часто glibc використовується на x86 -машинах з ОС Linux. Також офіційно підтримуються такі архітектури: SPARC, Motorola 68k, DEC Alpha, PowerPC, ARM, ETRAX CRIS, s390.

3. Критика

glibc часто критикують за її "роздутість" і низьку швидкість роботи в порівнянні з іншими минулими бібліотеками. Тому були створені кілька альтернативних стандартних бібліотек мови Сі ( dietlibc, uClibc і Newlib). Так само під критику потрапляє мейнтейнер Ульріх Драппер і його ставлення до помилок в Glibc.

У 2009 році в таких популярних дистрибутивах, як Debian [6], Ubuntu і ArkLinux [7] glibc був замінений на альтернативну бібліотеку eglibc, спочатку орієнтовану на вбудовувані системи. Eglibc - це варіант glibc, більш дружелюбно ставиться до прийому сторонніх патчів.


Примітки

  1. SO'Donell, Carlos The GNU C Library Version 2.17 is now available. - sourceware.org/ml/libc-alpha/2012-12/msg00413.html (Англ.) . Список розсилки libc-alpha (25 December 2012).
  2. Elliot Lee A Technical Comparison Of Glibc 2.x With Legacy System Libraries - people.redhat.com / ~ sopwith/old/glibc-vs-libc5.html (Англ.) (2001). Читальний - web.archive.org/web/20040411191201/http :/ / people.redhat.com / ~ sopwith/old/glibc-vs-libc5.html з першоджерела 11 квітня 2004.
  3. Forking: it could even happen to you - www.linux.com/archive/feature/3874 (Англ.) . - "The split between GNU LIBC and the Linux LIBC - it went on for years while Linux stabilized, and then the forks re-merged into one project" Статичний - www.webcitation.org/6DpEh29hC з першоджерела 21 січня 2013.
  4. Fear of Forking essay, see "6. Glibc -> Linux libc -> glibc" - linuxmafia.com / faq / Licensing_and_Law / forking.html (Англ.) . Читальний - www.webcitation.org/6DpEiIMTm з першоджерела 21 січня 2013.
  5. Fear of Forking, footnote on Stallman's merge comments - linuxmafia.com / faq / Licensing_and_Law / forking.html # foot25 (Англ.) . Читальний - www.webcitation.org/6DpEiIMTm з першоджерела 21 січня 2013.
  6. Debian is switching to EGLIBC - blog.aurel32.net /? p = 47 Aurelien's weblog, May 5th 2009 (Англ.)
  7. Ark Linux switches to eglibc - arklinux.wordpress.com/2009/05/13/ark-linux-switches-to-eglibc / Ark Linux weblog, May 13 2009 (Англ.)