klibc
Разработчик(и) | Х. Питер Анвин |
---|---|
Стабильная версия | 2.0.13 [1] / 28 июля 2023 г |
Репозиторий | |
Операционная система | Линукс |
Тип | Библиотека времени выполнения |
Лицензия | Лицензии BSD / GPLv2 |
Веб-сайт | www |
В вычислительной технике klibc является минималистичным подмножеством стандартной библиотеки C, разработанной Х. Питером Анвином . Он был разработан в основном для использования в процессе запуска Linux и является частью раннего пользовательского пространства , то есть компонентов, используемых во время запуска ядра, но не работающих в режиме ядра . [2] Эти компоненты не имеют доступа к стандартной библиотеке (обычно glibc или musl ), используемой обычными программами пользовательского пространства .
Разработка библиотеки klibc была частью усилий 2002 года по перемещению некоторого кода инициализации Linux из ядра. [3] [4] [5] Согласно документации, библиотека klibc оптимизирована для корректности и небольшого размера. [2] Благодаря своей конструкции klibc также технически подходит для встроенного программного обеспечения на различных платформах и используется даже полнофункциональными программами, такими как MirBSD Korn Shell .
загружается из временной файловой системы оперативной памяти initramfs Во время процесса запуска Linux klibc . По умолчанию он включен в исходные файловые системы ОЗУ, созданные mkinitramfs
скрипт в Debian [6] и Убунту . Кроме того, он имеет набор небольших утилит Unix, полезных на ранних этапах пользовательского пространства : cpio , Dash , fstype, mkdir , mknod , mount, nfsmount, run-init и т. д. Все они используют библиотеку klibc . [7] Альтернативная стратегия — включить все в один исполняемый файл, например BusyBox , который определяет запрошенный апплет через аргументы, жесткие ссылки или символические ссылки .
Лицензирование
[ редактировать ]klibc имеет двойную лицензию в соответствии с тремя пунктами BSD. [8] (ранее состоявшая из четырех пунктов, исправленная историческим уведомлением о разрешении и отказе от ответственности ), а также GPLv2 ( только GPLv2 из-за ограничений ядра Linux).
Эта двойная лицензия обеспечивает совместимость как с программным обеспечением без авторского лева, так и с программами GPLv3 через лицензию BSD (которая в противном случае была бы несовместима). (Однако, если klibc включает в себя какой-либо код ядра GPLv2, например, в glibc, все приложение возвращается к GPLv2.)
Ссылки
[ редактировать ]- ^ «klibc/klibc.git — основное дерево разработки klibc» . Проверено 17 апреля 2024 г.
- ^ Jump up to: а б https://www.kernel.org/doc/Documentation/early-userspace/README [ текстовый файл с пустым URL-адресом ]
- ^ Джонатан Корбет , (ноябрь 2002 г.) Появление Initramfs , LWN.net
- ^ «Слияние initramfs, часть 1 из N» . 11 февраля 2002 г.
- ^ «Re: слияние initramfs, часть 1 из N» . 11 февраля 2002 г.
- ^ Стабильная версия Debian Klibc .
- ^ "libs/klibc/klibc.git/дерево" . Архивировано из оригинала 8 июля 2012 г.
- ^ «klibc.spec.in — klibc/klibc.git — основное дерево разработки klibc» . git.kernel.org . Проверено 6 декабря 2020 г.
Внешние ссылки
[ редактировать ]- Список рассылки
- initramfs и где действительно начинается пространство пользователя — LWN, Джонатан Корбет , 11 июля 2006 г.