En informática , klibc es un subconjunto minimalista de la biblioteca C estándar desarrollada por H. Peter Anvin . Fue desarrollado principalmente para ser utilizado durante el proceso de inicio de Linux , y es parte del espacio de usuario inicial , es decir, componentes utilizados durante el inicio del kernel, pero que no se ejecutan en modo kernel . [1] Estos componentes no tienen acceso a la biblioteca estándar (generalmente glibc o musl ) que utilizan los programas de espacio de usuario normales .
Desarrollador (es) | H. Peter Anvin |
---|---|
Lanzamiento estable | 2.0.9 / 30 de abril de 2021 |
Repositorio | |
Sistema operativo | Linux |
Tipo | Biblioteca de ejecución |
Licencia | Licencias BSD / GPLv2 |
Sitio web | www |
El desarrollo de la biblioteca klibc fue parte del esfuerzo de 2002 para sacar algunos códigos de inicialización de Linux del kernel. [2] [3] [4] Según su documentación, la biblioteca klibc está optimizada para su corrección y tamaño pequeño. [1] Debido a su diseño, klibc también es técnicamente adecuado para software embebido en general en una variedad de plataformas, y es utilizado incluso por programas completos como MirBSD Korn Shell . klibc tiene licencia dual bajo una BSD de tres cláusulas [5] (anteriormente cuatro cláusulas, rectificadas mediante el Aviso de Permiso Histórico y Exención de Responsabilidad ), así como la GPLv2 ( solo GPLv2 , debido a las restricciones del kernel de Linux). Esta licencia dual permite la compatibilidad tanto con software sin copyleft como con programas GPLv3 a través de la licencia BSD (que de otro modo no sería compatible). (Sin embargo, si klibc incluye cualquier código de kernel GPLv2 como el de glibc, toda la aplicación vuelve a GPLv2).
Durante el proceso de inicio de Linux, klibc se carga desde un sistema de archivos RAM temporal , initramfs . Está incorporado por defecto en los sistemas de archivos RAM iniciales que son creados por el mkinitramfs
script en Debian [6] y Ubuntu . Además, tiene un conjunto de pequeñas utilidades de Unix que son útiles en el espacio de usuario inicial : cpio , dash , fstype, mkdir , mknod , mount, nfsmount, run-init, etc., todas usando la biblioteca klibc . [7] Una estrategia alternativa es incluir todo en un ejecutable, como BusyBox , que determina el subprograma solicitado a través de argumentos o enlaces físicos o enlaces simbólicos .
Referencias
- ^ a b https://www.kernel.org/doc/Documentation/early-userspace/README
- ^ Jonathan Corbet , (noviembre de 2002) Llega Initramfs , LWN.net
- ^ "combinación de initramfs, parte 1 de N" . 2002-02-11.
- ^ "Re: combinación de initramfs, parte 1 de N" . 2002-02-11.
- ^ "klibc.spec.in - klibc / klibc.git - árbol de desarrollo principal de klibc" . git.kernel.org . Consultado el 6 de diciembre de 2020 .
- ^ Debian Wheezy Klibc .
- ^ "libs / klibc / klibc.git / tree" . Archivado desde el original el 8 de julio de 2012.
enlaces externos
- Lista de correo
- initramfs y donde realmente comienza el espacio del usuario : LWN, Jonathan Corbet , 11 de julio de 2006.