glibc

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

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

Разработчик

Проект GNU

Написана на

C

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

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

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

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

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

2.19 (8 февраля 2014)

Состояние

Актуальный

Лицензия

GNU LGPL

Сайт

gnu.org/software/libc

GNU C Library

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

История[править | править исходный текст]

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

Временный форк glibc[править | править исходный текст]

В начале 1990-х годов разработчики ядра Linux создали форк glibc. Этот форк, названый «Linux libc», разрабатывался отдельно в течение нескольких лет, были выпущены версии с 2 до 5.

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

Файл .so последней версии Linux libc имел имя (soname) libc.so.5. Следующая после неё glibc 2.x использовала имя libc.so.6[3] (на архитектурах Alpha и IA64 вместо этого используется имя libc.so.6.1). Это имя зачастую сокращается до libc6 (например в имени пакета Debian), следуя обычным соглашениям для библиотек.

По словам Ричарда Столлмана изменения из Linux libc нельзя перенести обратно в glibc, потому что авторство этого кода неясно, а проект GNU очень строго относится к сохранению записей об авторских правах.[4]

История версий[править | править исходный текст]

Версия Дата Примечания
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[5], Ubuntu и ArkLinux[6] glibc был заменён на альтернативную библиотеку eglibc, изначально ориентированную на встраиваемые системы. Eglibc - это вариант glibc, более дружелюбно относящийся к приёму сторонних патчей.

Примечания[править | править исходный текст]

Ссылки[править | править исходный текст]