klibc
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) que utilizan los programas de espacio de usuario normales.
Klibc | ||
---|---|---|
Información general | ||
Desarrollador | Hans Peter Anvin | |
Licencia | ||
Información técnica | ||
Programado en | C | |
Enlaces | ||
El desarrollo de la biblioteca klibc fue parte del esfuerzo de 2002 para separar parte del código 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, e incluso para algunos programas con todas las funciones como MirBSD Korn Shell. klibc tiene la licencia GPL completa, que (a diferencia de LGPL) se impone a cualquier código vinculado con él. (Esto solo se aplica a klibc en su conjunto debido a la incorporación de algunos archivos derivados del núcleo Linux; la mayor parte del código fuente de la biblioteca está disponible bajo una licencia BSD de UCB o el Aviso de permiso histórico y descargo de responsabilidad).[5] Esto puede limitar su aplicabilidad al software integrado propietario.[6]
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 script mkinitramfs
en Debian y Ubuntu.[7] 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.[8] Una estrategia alternativa es incluir todo en un ejecutable, como BusyBox, que determina el subprograma solicitado mediante argumentos o enlaces físicos o enlaces simbólicos.
Referencias
- http://free-electrons.com/kerneldoc/latest/early-userspace/README
- Jonathan Corbet, (November 2002) Initramfs arrives, LWN.net
- «initramfs merge, part 1 of N». 11 de febrero de 2002.
- «Re: initramfs merge, part 1 of N». 11 de febrero de 2002.
- «LICENSE\klibc\usr - klibc/klibc.git - klibc main development tree». git.kernel.org. Archivado desde el original el 10 de julio de 2012. Consultado el 23 de abril de 2018.
- Hagen, William W. (2006). The Definitive Guide to GCC, Second Edition. Berkeley, CA: APress. pp. 286-289. ISBN 1-59059-585-8.
- Debian Wheezy Klibc.
- «libs/klibc/klibc.git / tree». Archivado desde el original el 8 de julio de 2012.