glibc

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
GNU C Library
Heckert GNU white.svg
Тип

Библиотека исполнения

Разработчик

Проект GNU

Написана на

C

Операционная система

кроссплатформенная

Аппаратная платформа

кроссплатформенная

Последняя версия

2.17 (25 декабря 2012[1])

Состояние

Актуальный

Лицензия

GNU LGPL

Сайт

http://www.gnu.org/software/libc

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

Содержание

История[править]

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

Временный форк 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].

История версий[править]

Версия Дата Примечания
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

Поддерживаемые архитектуры и ядра[править]

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

Критика[править]

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.  (англ.). Список рассылки libc-alpha (25 December 2012). Проверено 26 декабря 2012.
  2. Elliot Lee A Technical Comparison of glibc 2.x With Legacy System Libraries  (англ.) (2001). Архивировано из первоисточника 11 апреля 2004.
  3. Forking: it could even happen to you  (англ.). — «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»  Архивировано из первоисточника 21 января 2013.
  4. Fear of Forking essay, see "6. glibc --> Linux libc --> glibc"  (англ.). Архивировано из первоисточника 21 января 2013.
  5. Fear of Forking, footnote on Stallman's merge comments  (англ.). Архивировано из первоисточника 21 января 2013.
  6. Debian is switching to EGLIBC Aurelien’s weblog, May 5th 2009  (англ.)
  7. Ark Linux switches to eglibc Ark Linux weblog, May 13 2009  (англ.)

Ссылки[править]