WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

GNU C Library
Тип Библиотека исполнения
Разработчик Проект GNU и Ulrich Drepper[d]
Написана на Си
Операционная система Unix-like
Первый выпуск 1987
Аппаратная платформа кроссплатформенная
Последняя версия
Читаемые форматы файлов Time Zone Information Format[d][2][3][4]
Создаваемые форматы файлов Time Zone Information Format[d][5][3][4]
Состояние Актуальный
Лицензия GNU LGPL[6]
Сайт gnu.org/software/… (англ.)
 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[7].

Временный форк glibc

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

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

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

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

История версий

ВерсияДатаПримечанияПринятие
2.27февраль 2018Оптимизации производительности. Поддержка RISC-V.Ubuntu 18.04
2.26август 2017Улучшена производительность (per-thread cache for malloc), поддержка Unicode 10Ubuntu 17.10
2.25февраль 2017Добавлены функции getentropy и getrandom и заголовочный файл <sys/random.h>.Fedora 26
2.24август 2016Удалены некоторые устаревшие возможности
2.23февраль 2016Unicode 8.0Fedora 24, Ubuntu 16.04
2.22август 2015Добавлена библиотека векторных математических функций libmvec.
2.21февраль 2015Поддержка архитектуры Altera Nios IIUbuntu 15.04, Debian experimental, Fedora 22
2.20сентябрь 2014Fedora 21
2.19февраль 2014Ubuntu 14.04, eglibc 2.19 в Debian 8 (Jessie), openSUSE 13, SLES 12
2.18август 2013Улучшена поддержка стандарта ISO C11. Поддержка микроархитектуры Xilinx MicroBlaze и IBM POWER8Fedora 20
2.17декабрь 2012Поддержка 64-битной архитектуры ARMUbuntu 13.04, RHEL 7
2.16июнь 2012Поддержка x32 ABI, стандарт ISO C11, SystemTap
2.15март 2012Ubuntu 12.04 и 12.10
2.14июнь 2011
2.13январь 2011eglibc 2.13 в Debian 7 (Wheezy)
2.12май 2010RHEL 6
2.11октябрь 2009SLES 11, Ubuntu 10.04, eglibc в Debian 6 (Squeeze)
2.10май 2009
2.9ноябрь 2008Ubuntu 9.04
2.8апрель 2008Ubuntu 8.10
2.7октябрь 2007Debian 5 (Lenny), Ubuntu 8.04
2.6май 2007
2.5сентябрь 2006Полная поддержка inotifyRHEL 5
2.4март 2006Стандарт в LSB 4.0, начальная поддержка inotifySLES 10
2.3.6ноябрь 2005Debian 4.0 (Etch)
2.3.5апрель 2005SLES 9
2.3.4декабрь 2004Стандарт в LSB 3.0RHEL 4 (Update 5)
2.3.2февраль 2003Debian 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, s390[12].

Критика

glibc часто критикуют за её «раздутость» и низкую скорость работы по сравнению с другими прошлыми библиотеками[13]. Поэтому были созданы несколько альтернативных стандартных библиотек языка Си (dietlibc, uClibc, Newlib, musl, Klibc). Также под критику попадает мейнтейнер Ульрих Дреппер и его отношение к ошибкам в Glibc[14].

В 2009 году в таких популярных дистрибутивах, как Debian[15], Ubuntu и ArkLinux[16] glibc был заменён на альтернативную библиотеку eglibc, изначально ориентированную на встраиваемые системы. Eglibc — это вариант glibc, более дружелюбно относящийся к приёму сторонних патчей. Однако 18 июня 2014 года один из мэйнтейнеров пакетов дистрибутива Debian объявил об обратной замене библиотеки eglibc на библиотеку glibc[17].

Примечания

  1. Carlos O'Donell - The GNU C Library version 2.28 is now available
  2. https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=timezone/tzfile.h;hb=HEAD
  3. 1 2 A. Olson, P. Eggert, K. Murchison 8.1 // The Time Zone Information Format (TZif)Internet Engineering Task Force, 2019. — P. 18. — 34 p. — doi:10.17487/RFC8536
  4. 1 2 A. Olson, P. Eggert, K. Murchison 8.2 // The Time Zone Information Format (TZif)Internet Engineering Task Force, 2019. — P. 19. — 34 p. — doi:10.17487/RFC8536
  5. https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=timezone/zic.c;hb=HEAD
  6. https://sourceware.org/git/?p=glibc.git;a=blob;f=COPYING.LIB;h=4362b49151d7b34ef83b3067a8f9c9f877d72a0e;hb=1c9a5c270d8b66f30dcfaf1cb2d6cf39d3e18369
  7. Free Software Foundation. GNU's Bulletin, vol. 1 no. 4, February, 1988.
  8. Elliot Lee. A Technical Comparison of glibc 2.x With Legacy System Libraries (англ.) (2001). Архивировано 11 апреля 2004 года.
  9. 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 года.
  10. Fear of Forking essay, see "6. glibc --> Linux libc --> glibc" (англ.). Архивировано 21 января 2013 года.
  11. Fear of Forking, footnote on Stallman's merge comments (англ.). Архивировано 21 января 2013 года.
  12. MAINTAINERS - glibc wiki. sourceware.org. Проверено 16 декабря 2016.
  13. Torvalds, Linus Re: [libc-alpha] Re: [open-source] Re: Wish for 2002. Список рассылки libc-alpha@sources.redhat.com (9 января 2002). Проверено 16 декабря 2016.
  14. Debian Switching From Glibc To Eglibc - Slashdot. linux.slashdot.org. Проверено 16 декабря 2016.
  15. Debian is switching to EGLIBC Aurelien’s weblog, May 5th 2009  (англ.)
  16. Ark Linux switches to eglibc Ark Linux weblog, May 13 2009  (англ.)
  17. Debian is switching (back) to GLIBC Aurelien’s weblog, June 18th 2014  (англ.)

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии