...

Gnu c что это за программа

Библиотека GNU C — GNU C Library

Библиотека GNU C, широко известная как glibc, является реализацией проекта GNU Стандартная библиотека C. Несмотря на свое название, теперь она также напрямую поддерживает C ++ (и, косвенно, другие программы минские языки ). Он был запущен в начале 1990-х годов Free Software Foundation (FSF) для своей операционной системы GNU.

Выпущенная на условиях Стандартной общественной лицензии ограниченного применения GNU, glibc является бесплатным программным обеспечением. Проект библиотеки GNU C предоставляет базовые библиотеки для системы GNU и систем GNU / Linux, а также для многих других систем, использующих Linux в качестве ядра. Эти библиотеки предоставляют важные API, включая ISO C11, POSIX.1-2008, BSD, для конкретных ОС API и многое другое. Эти API включают такие базовые возможности, как open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit и другие.

  • 1 История
    • 1.1 Linux libc
    • 1.2 Установка руководящего комитета
    • 1.3 Миграция на Git, распределенную VCS
    • 1.4 Debian переключается на EGLIBC и обратно
    • 1.5 Управление комитет распускает
    • 1.6 История версий
    • 2.1 Поддерживаемое оборудование и ядра
    • 2.2 Использование в небольших устройствах

    История

    Первоначально проект glibc был написан в основном подростком, работавшим на Free Software Foundation (FSF) в 1980-х.

    В Февраль 1988, FSF описал glibc как почти выполнившую функциональность, требуемую ANSI C. К 1992 году в нем были реализованы функции ANSI C-1989 и POSIX.1-1990, и велась работа над POSIX.2.

    В сентябре 1995 года Ульрих Дреппер внес свой первый вклад в проект glibc и Постепенно 1990-е стали основным разработчиком и разработчиком glibc. Drepper занимал позицию сопровождающего в течение многих лет и до 2012 года накопил 63% всех коммитов в проекте.

    Linux libc

    В начале 1990-х разработчики ядра Linux разветвлен glibc. Их форк «Linux libc» поддерживался отдельно.

    Когда в январе 1997 года FSF выпустила glibc 2.0, разработчики ядра прекратили поддержку Linux libc из-за того, что glibc 2.0 полностью соответствует стандартам POSIX. glibc 2.0 также имеет лучшую интернационализацию и более глубокую трансляцию, возможность IPv6, 64-битный доступ к данным, возможности для многопоточных приложений, совместимость с будущими версиями, а также более переносимый код.

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

    Согласно Ричарду Столлману, FSF не могла объединить изменения, сделанные в Linux libc, в glibc из-за неопределенного авторства. Проект GNU довольно строго относится к регистрации авторских прав и авторов.

    Создание руководящего комитета

    Начиная с 2001 года разработка библиотеки контролировалась комитетом, который оставался ведущим участником и сопровождающим.. Установка руководящего комитета была окружена общественными спорами, поскольку Ульрих Дреппер открыто описал ее как неудачный враждебный захват маневром Ричарда Столлмана.

    Мигрировал в Git, распределенная VCS

    Находясь ранее в репозитории CVS, в 2009 году glibc была перенесена в репозиторий Git (распределенная система контроля версий) на Sourceware.

    Debian переходит на EGLIBC и обратно

    После долгих споров вокруг стиля руководства Drepper и принятия внешнего вклада Debian публично переключился на форк glibc EGLIBC в 2009 году и вернуться к glibc с выпуском Debian 8.0 (Jessie) в апреле 2015 года.

    Распускается руководящий комитет

    В марте 2012 года руководящий комитет проголосовал за роспуск и удаление Drepper в пользу сообщества — управляемый процесс разработки, в котором ответили Райан Арнольд, Максим Кувырков, Джозеф Майерс, Карлос О’Донелл и Александр Олива Отсутствие поддержки со стороны GNU (но без дополнительных полномочий для принятия решений).

    После изменения системы сопровождения glibc Debian и другие проекты, которые перешли на альтернативы, перешли обратно на glibc. С начала 2014 года форк glibc EGLIBC больше не разрабатывается, так как его «цели теперь решаются непосредственно в GLIBC».

    В июле 2017 года, через 30 лет после того, как он начал работать с glibc, Роланд МакГрат объявил о своем уходе, «объявив себя почетным сопровождающим и отказавшись от прямого участия в проекте. За последние несколько месяцев, если не последние несколько лет, доказано, что я вам больше не нужен ».

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

    Для большинства систем версию glibc можно получить, выполнив файл lib (например, / lib / libc.so.6).

    • getcpu оболочка
    • создайте и установите все локали как каталоги с файлами
    • оптимизированными тригономическими функциями
    • Transactional Lock Elision для powercp64le ABI
    • posix_spawn_file_actions_addchdir_np и posix_spawn_file_actions_addfchdir_np> больше не запускать обработчики atfork
    • поддержка C-SKY ABIV2, работающего в Linux
    • форматирование по умолчанию альтернативного года локали в strftime; флаги ‘_’ и ‘-‘ теперь могут быть применены к его «% EY»

    Функциональность

    glibc обеспечивает функциональность, требуемую Single UNIX Спецификация, POSIX (1c, 1d и 1j) и некоторые функции, требуемые ISO C11, ISO C99, Berkeley Unix (BSD) интерфейсы, определение интерфейса System V (SVID) и X / Open Portability Guide (XPG), Выпуск 4.2, со всеми расширениями, общими для систем, совместимых с XSI (), а также со всеми расширениями X / Open UNIX.

    Кроме того, glibc также предоставляет расширения, которые были сочтены полезными или необходимыми при разработке GNU.

    Поддерживаемое оборудование и ядра

    glibc используется в системах, в которых работает множество различных ядра и различные аппаратные архитектуры. Чаще всего он используется в системах, использующих ядро ​​Linux на оборудовании x86, однако официально поддерживаемое оборудование включает: 32-битный ARM и его новый 64-битный ISA (AArch64), DEC Alpha, IA-64, Motorola m68k, MicroBlaze, MIPS, Nios II, PA-RISC, PowerPC, RISC-V, s390, SPARC и x86 (старые версии поддерживают TILE ). Он официально поддерживает ядра Hurd и Linux. Кроме того, существуют сильно пропатченные версии, которые работают на ядрах FreeBSD и NetBSD (из которых Debian GNU / kFreeBSD и Debian GNU / NetBSD соответственно), а также разветвленная версия OpenSolaris. Он также используется (в отредактированном виде) и называется libroot.so в BeOS и Haiku.

    . Использование в небольших устройствах

    glibc подвергается критике как «раздутый » и медленнее, чем другие библиотеки в прошлом, например Автор: Линус Торвальдс и программисты встраиваемого Linux. По этой причине было создано несколько альтернативных стандартных библиотек C, которые подчеркивают меньший размер. Тем не менее, многие проекты для небольших устройств используют GNU libc вместо небольших альтернатив из-за поддержки приложений, соответствия стандартам и полноты. Примеры включают Openmoko и для карманных компьютеров iPaq (при использовании программного обеспечения дисплея GPE ).

    Уровни совместимости

    Существуют уровни совместимости («shims «), чтобы программы, написанные для других экосистем, могли работать в системах, предлагающих интерфейс glibc. К ним относятся libhybris, уровень совместимости для Android Bionic и Wine, который можно рассматривать как уровень совместимости из Windows. API для glibc и других собственных API, доступных в Unix-подобных системах.

    См. Также

    • Портал бесплатного программного обеспечения с открытым исходным кодом
    • Gnulib
    • API ядра Linux

    Ссылки

    Внешние ссылки

    На Викискладе есть материалы, связанные с Библиотека GNU C .
    • Официальный сайт

    GCC, the GNU Compiler Collection

    We strive to provide regular, high quality releases, which we want to work well on a variety of native and cross targets (including GNU/Linux), and encourage everyone to contribute changes or help testing GCC. Our sources are readily and freely available via Git and weekly snapshots.

    Major decisions about GCC are made by the steering committee, guided by the mission statement.

    News

    GNU Tools Cauldron 2023 [2023-09-05] Cambridge, United Kingdom, September 22-24 2023 GCC 13.2 released [2023-07-27] GCC 10.5 released [2023-07-07] GCC Code of Conduct adopted [2023-06-16] GCC 11.4 released [2023-05-29] GCC 12.3 released [2023-05-08] GCC 13.1 released [2023-04-26] GCC BPF in Compiler Explorer [2022-12-23] Support for a nightly build of the bpf-unknown-none-gcc compiler has been contributed to Compiler Explorer (aka godbolt.org) by Marc Poulhiès Modula-2 front end added [2022-12-14] The Modula-2 programming language front end has been added to GCC. This front end was contributed by Gaius Mulley. GNU Tools Cauldron 2022 [2022-09-02] Prague, Czech Republic and online, September 16-18 2022 GCC 12.2 released [2022-08-19] GCC 10.4 released [2022-06-28] GCC 9.5 released [2022-05-27] GCC 12.1 released [2022-05-06] GCC 11.3 released [2022-04-21]

    Older news | More news? Let [email protected] know!

    Supported Releases

    GCC 13.2 (changes) Status: 2023-07-27 (regression fixes & docs only).
    GCC 12.3 (changes) Status: 2023-05-08 (regression fixes & docs only).
    GCC 11.4 (changes) Status: 2022-04-21 (regression fixes & docs only).
    Development: GCC 14.0 (release criteria, changes) Status: 2023-04-17 (general development).

    Match: Sort by:

    Get our announcements

    For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the [email protected] mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer list at [email protected]. All of our lists have public archives.

    Copyright (C) Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

    These pages are maintained by the GCC team. Last modified 2023-09-05.

    При подготовке материала использовались источники:
    https://ru.wikibrief.org/wiki/GNU_C_Library
    https://www.gnu.org/software/gcc/index.html

Оцените статью