En informática , klibc es un subconjunto minimalista de la biblioteca estándar de C desarrollada por H. Peter Anvin . Fue desarrollada principalmente para usarse durante el proceso de inicio de Linux y forma parte del espacio de usuario inicial , es decir, componentes utilizados durante el inicio del kernel, pero que no se ejecutan en modo kernel . [ 2 ] Estos componentes no tienen acceso a la biblioteca estándar (generalmente glibc o musl ) utilizada por los programas normales del espacio de usuario .
El desarrollo de la biblioteca klibc fue parte del esfuerzo de 2002 para sacar parte del código de inicialización de Linux del kernel. [ 3 ] [ 4 ] [ 5 ] Según su documentación, la biblioteca klibc está optimizada para la corrección y el tamaño pequeño. [ 2 ] Debido a su diseño, klibc también es técnicamente adecuada para software embebido en general en una variedad de plataformas, y es utilizada incluso por programas completos como MirBSD Korn Shell .
Durante el proceso de inicio de Linux, klibc se carga desde dentro de un sistema de archivos RAM temporal , initramfs . Se incorpora por defecto en los sistemas de archivos RAM iniciales que crea el mkinitramfsscript en Debian [ 6 ] y Ubuntu . Además, tiene un conjunto de pequeñas utilidades 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 applet solicitado a través de argumentos o enlaces duros o enlaces simbólicos .
Licencias
klibc tiene una doble licencia bajo una licencia BSD de tres cláusulas [ 8 ] (anteriormente de cuatro cláusulas, rectificada a través del Aviso de Permiso Histórico y Descargo de Responsabilidad ), así como la GPLv2 ( solo GPLv2 , debido a restricciones del kernel de Linux).
Esta doble licencia permite la compatibilidad tanto con software sin copyleft como con programas GPLv3 mediante la licencia BSD (que de otro modo no serían compatibles). (Sin embargo, si klibc incluye código del kernel GPLv2, como el de glibc, toda la aplicación pasa a estar bajo la licencia GPLv2).
Referencias
- ↑ https://git.kernel.org/pub/scm/libs/klibc/klibc.git/tag/?h=klibc-2.0.14 .
{{cite web}}: Falta o está vacío|title=( ayuda ) - 1 2 "Soporte temprano del espacio de usuario" . Archivado del original el 2 de mayo de 2011. Recuperado el 29 de septiembre de 2020 .
- ↑ Jonathan Corbet , (noviembre de 2002) Llega Initramfs , LWN.net
- ↑ "fusión de initramfs, parte 1 de N" . 11/02/2002.
- ↑ "Re: fusión de initramfs, parte 1 de N" . 11 de febrero de 2002.
- ↑ Klibc estable de Debian .
- ↑ "libs/klibc/klibc.git / árbol" .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ "klibc.spec.in - klibc/klibc.git - árbol de desarrollo principal de klibc" . git.kernel.org . Consultado el 6 de diciembre de 2020 .
Enlaces externos
- Lista de correo de klibc
- initramfs y dónde comienza realmente el espacio de usuario - LWN, Jonathan Corbet , 11 de julio de 2006.
- Biblioteca estándar de C
- Bibliotecas informáticas gratuitas
- Software libre programado en C
- Interfaces del núcleo de Linux
- API de Linux
- Software que utiliza la licencia BSD.
- Software que utiliza la Licencia Pública General de GNU.