glibc

Поделись знанием:
(перенаправлено с «GNU C Library»)
Перейти к: навигация, поиск
К:Википедия:Статьи без источников (тип: не указан)

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.24 август 2016 Удалены некоторые устаревшие возможности
2.23 февраль 2016 Unicode 8.0 Fedora 24, Ubuntu 16.04
2.22 август 2015 Добавлена библиотека векторных математических функций libmvec.
2.21 февраль 2015 Поддержка архитектуры Altera Nios II Ubuntu 15.04, Debian experimental, Fedora 22
2.20 сентябрь 2014 Fedora 21
2.19 февраль 2014 Ubuntu 14.04, eglibc 2.19 в Debian 8 (Jessie), openSUSE 13, SLES 12
2.18 август 2013 Улучшена поддержка стандарта ISO C11. Поддержка микроархитектуры Xilinx MicroBlaze и IBM POWER8 Fedora 20
2.17 декабрь 2012 Поддержка 64-битной архитектуры ARM Ubuntu 13.04, RHEL 7
2.16 июнь 2012 Поддержка x32 ABI, стандарт ISO C11, SystemTap
2.15 март 2012 Ubuntu 12.04 и 12.10
2.14 июнь 2011
2.13 январь 2011 eglibc 2.13 в Debian 7 (Wheezy)
2.12 май 2010 RHEL 6
2.11 октябрь 2009 SLES 11, Ubuntu 10.04, eglibc в 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 Полная поддержка inotify RHEL 5
2.4 март 2006 Стандарт в LSB 4.0, начальная поддержка inotify 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, musl, Klibc). Так же под критику попадает мейнтейнер Ульрих Дреппер и его отношение к ошибкам в Glibc.

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

Напишите отзыв о статье "Glibc"

Примечания

  1. Elliot Lee. [people.redhat.com/~sopwith/old/glibc-vs-libc5.html A Technical Comparison of glibc 2.x With Legacy System Libraries] (англ.) (2001). [web.archive.org/web/20040411191201/people.redhat.com/~sopwith/old/glibc-vs-libc5.html Архивировано из первоисточника 11 апреля 2004].
  2. [www.linux.com/archive/feature/3874 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»  [www.webcitation.org/6DpEh29hC Архивировано из первоисточника 21 января 2013].
  3. [linuxmafia.com/faq/Licensing_and_Law/forking.html Fear of Forking essay, see "6. glibc --> Linux libc --> glibc"] (англ.). [www.webcitation.org/6DpEiIMTm Архивировано из первоисточника 21 января 2013].
  4. [linuxmafia.com/faq/Licensing_and_Law/forking.html#foot25 Fear of Forking, footnote on Stallman's merge comments] (англ.). [www.webcitation.org/6DpEiIMTm Архивировано из первоисточника 21 января 2013].
  5. [blog.aurel32.net/?p=47 Debian is switching to EGLIBC] Aurelien’s weblog, May 5th 2009  (англ.)
  6. [arklinux.wordpress.com/2009/05/13/ark-linux-switches-to-eglibc/ Ark Linux switches to eglibc] Ark Linux weblog, May 13 2009  (англ.)
  7. [blog.aurel32.net/175 Debian is switching (back) to GLIBC] Aurelien’s weblog, June 18th 2014  (англ.)

Ссылки

  • [www.gnu.org/software/libc/libc.html Официальная страница]

Отрывок, характеризующий Glibc

«Завтра, очень может быть, пошлют с каким нибудь приказанием к государю, – подумал он. – Слава Богу».

Крики и огни в неприятельской армии происходили оттого, что в то время, как по войскам читали приказ Наполеона, сам император верхом объезжал свои бивуаки. Солдаты, увидав императора, зажигали пуки соломы и с криками: vive l'empereur! бежали за ним. Приказ Наполеона был следующий:
«Солдаты! Русская армия выходит против вас, чтобы отмстить за австрийскую, ульмскую армию. Это те же баталионы, которые вы разбили при Голлабрунне и которые вы с тех пор преследовали постоянно до этого места. Позиции, которые мы занимаем, – могущественны, и пока они будут итти, чтоб обойти меня справа, они выставят мне фланг! Солдаты! Я сам буду руководить вашими баталионами. Я буду держаться далеко от огня, если вы, с вашей обычной храбростью, внесете в ряды неприятельские беспорядок и смятение; но если победа будет хоть одну минуту сомнительна, вы увидите вашего императора, подвергающегося первым ударам неприятеля, потому что не может быть колебания в победе, особенно в тот день, в который идет речь о чести французской пехоты, которая так необходима для чести своей нации.
Под предлогом увода раненых не расстроивать ряда! Каждый да будет вполне проникнут мыслию, что надо победить этих наемников Англии, воодушевленных такою ненавистью против нашей нации. Эта победа окончит наш поход, и мы можем возвратиться на зимние квартиры, где застанут нас новые французские войска, которые формируются во Франции; и тогда мир, который я заключу, будет достоин моего народа, вас и меня.
Наполеон».


В 5 часов утра еще было совсем темно. Войска центра, резервов и правый фланг Багратиона стояли еще неподвижно; но на левом фланге колонны пехоты, кавалерии и артиллерии, долженствовавшие первые спуститься с высот, для того чтобы атаковать французский правый фланг и отбросить его, по диспозиции, в Богемские горы, уже зашевелились и начали подниматься с своих ночлегов. Дым от костров, в которые бросали всё лишнее, ел глаза. Было холодно и темно. Офицеры торопливо пили чай и завтракали, солдаты пережевывали сухари, отбивали ногами дробь, согреваясь, и стекались против огней, бросая в дрова остатки балаганов, стулья, столы, колеса, кадушки, всё лишнее, что нельзя было увезти с собою. Австрийские колонновожатые сновали между русскими войсками и служили предвестниками выступления. Как только показывался австрийский офицер около стоянки полкового командира, полк начинал шевелиться: солдаты сбегались от костров, прятали в голенища трубочки, мешочки в повозки, разбирали ружья и строились. Офицеры застегивались, надевали шпаги и ранцы и, покрикивая, обходили ряды; обозные и денщики запрягали, укладывали и увязывали повозки. Адъютанты, батальонные и полковые командиры садились верхами, крестились, отдавали последние приказания, наставления и поручения остающимся обозным, и звучал однообразный топот тысячей ног. Колонны двигались, не зная куда и не видя от окружавших людей, от дыма и от усиливающегося тумана ни той местности, из которой они выходили, ни той, в которую они вступали.
Солдат в движении так же окружен, ограничен и влеком своим полком, как моряк кораблем, на котором он находится. Как бы далеко он ни прошел, в какие бы странные, неведомые и опасные широты ни вступил он, вокруг него – как для моряка всегда и везде те же палубы, мачты, канаты своего корабля – всегда и везде те же товарищи, те же ряды, тот же фельдфебель Иван Митрич, та же ротная собака Жучка, то же начальство. Солдат редко желает знать те широты, в которых находится весь корабль его; но в день сражения, Бог знает как и откуда, в нравственном мире войска слышится одна для всех строгая нота, которая звучит приближением чего то решительного и торжественного и вызывает их на несвойственное им любопытство. Солдаты в дни сражений возбужденно стараются выйти из интересов своего полка, прислушиваются, приглядываются и жадно расспрашивают о том, что делается вокруг них.
Туман стал так силен, что, несмотря на то, что рассветало, не видно было в десяти шагах перед собою. Кусты казались громадными деревьями, ровные места – обрывами и скатами. Везде, со всех сторон, можно было столкнуться с невидимым в десяти шагах неприятелем. Но долго шли колонны всё в том же тумане, спускаясь и поднимаясь на горы, минуя сады и ограды, по новой, непонятной местности, нигде не сталкиваясь с неприятелем. Напротив того, то впереди, то сзади, со всех сторон, солдаты узнавали, что идут по тому же направлению наши русские колонны. Каждому солдату приятно становилось на душе оттого, что он знал, что туда же, куда он идет, то есть неизвестно куда, идет еще много, много наших.
– Ишь ты, и курские прошли, – говорили в рядах.
– Страсть, братец ты мой, что войски нашей собралось! Вечор посмотрел, как огни разложили, конца краю не видать. Москва, – одно слово!
Хотя никто из колонных начальников не подъезжал к рядам и не говорил с солдатами (колонные начальники, как мы видели на военном совете, были не в духе и недовольны предпринимаемым делом и потому только исполняли приказания и не заботились о том, чтобы повеселить солдат), несмотря на то, солдаты шли весело, как и всегда, идя в дело, в особенности в наступательное. Но, пройдя около часу всё в густом тумане, большая часть войска должна была остановиться, и по рядам пронеслось неприятное сознание совершающегося беспорядка и бестолковщины. Каким образом передается это сознание, – весьма трудно определить; но несомненно то, что оно передается необыкновенно верно и быстро разливается, незаметно и неудержимо, как вода по лощине. Ежели бы русское войско было одно, без союзников, то, может быть, еще прошло бы много времени, пока это сознание беспорядка сделалось бы общею уверенностью; но теперь, с особенным удовольствием и естественностью относя причину беспорядков к бестолковым немцам, все убедились в том, что происходит вредная путаница, которую наделали колбасники.