Scroll to navigation

LIBC(7) Miscellaneous Information Manual LIBC(7)

ИМЯ

libc - обзор стандартных библиотек C в Linux

ОПИСАНИЕ

Термин «libc» обычно используется как сокращение обозначения «стандартной библиотеки C» — библиотеки стандартных функций, которые могут использоваться всеми программами, написанными на C (и, иногда, программами, написанными на других языках). Из-за некоторых исторических событий (см. ниже), использование термина «libc» как обозначение стандартной библиотеки С в Linux, несколько некорректно.

glibc

Вне всяких сомнений, наиболее широко используемой в Linux библиотекой C является библиотека GNU C http://www.gnu.org/software/libc/, (http://wwwgnuorg/software/libc/) часто упоминаемая как glibc. В настоящее время данная библиотека используется во всех основных дистрибутивах Linux. Также эта библиотека описана в соответствующих справочных страницах проекта man-pages (в основном, в разделе 3). Документация к glibc также доступна в руководстве glibc, доступном по команде info libc. Выпуск 1.0 glibc состоялся в сентябре 1992 года (до этого было несколько выпусков 0.x). Следующий большой выпуск glibc версии 2.0 состоялся в начале 1997 года.

Путь /lib/libc.so.6 (или подобный), обычно является символической ссылкой на расположение библиотеки glibc, а выполнение этого пути приводит к отображению различной информации о glibc, установленной в системе.

Linux libc

В первой половине 1990х годов какое-то время существовала Linux libc, ответвление glibc 1.x, созданное разработчиками Linux, которые были не удовлетворены ходом разработки glibc для Linux. Часто, эту библиотеку называли (необоснованно) просто «libc». Было несколько основных версий Linux libc — 2, 3, 4 и 5, а также много промежуточных. Linux libc4 была последней версией, которая использовала формат двоичных файлов a.out и первой версий предоставившей (простейшую) поддержку общих библиотек. Linux libc 5 была первой версией с поддержкой формата двоичных файлов ELF; в этой версии использовалась общая библиотека с soname libc.so.5. Некоторое время Linux libc была стандартной библиотекой Си во многих дистрибутивах Linux.

Однако, несмотря на всю первоначальную заинтересованность в разработке Linux libc, к этому времени была выпущена glibc 2.0 (в 1997 году), которая была однозначно лучше Linux libc, и все основные дистрибутивы Linux, которые использовали Linux libc, скоро переключились обратно на glibc. Чтобы избежать двусмысленности в версиях Linux libc, в glibc 2.0 и последующих версиях в качестве имени общей библиотеки используется soname libc.so.6.

Так как переход с Linux libc на glibc 2.0 произошёл давно, в man-pages Linux libc больше не описывается. Тем не менее частичные упоминания о Linux libc ещё встречаются в некоторых справочных страницах под именами libc4 и libc5.

Другие библиотеки C

Существует несколько других менее распространённых библиотек C для Linux Эти библиотеки, обычно, меньше glibc, как по возможностям так и по потреблению памяти, и часто предназначены для сборки исполняемых файлов малого размера, используемых, в основном, для разработки встраиваемых систем Linux. Такими библиотеками являются uClibc, dietlibc, и musl libc. Описание этих библиотек охватывается проектом man-pages, если что-то известно.

СМ. ТАКЖЕ

syscalls(2), getauxval(3), proc(5), feature_test_macros(7), man-pages(7), standards(7), vdso(7)

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Artyom Kunyov <artkun@guitarplayer.ru>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Konstantin Shvaykovskiy <kot.shv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

9 октября 2022 г. Linux man-pages 6.02