stringtranslate.com

Clibc

En informática , klibc es un subconjunto minimalista de la biblioteca estándar de C desarrollada por H. Peter Anvin . Fue desarrollada principalmente para ser utilizada durante el proceso de inicio de Linux , y es parte del espacio de usuario temprano , es decir, componentes utilizados durante el inicio del núcleo, pero que no se ejecutan en modo núcleo . [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 núcleo. [3] [4] [5] Según su documentación, la biblioteca klibc está optimizada para ser correcta y de tamaño pequeño. [2] Debido a su diseño, klibc también es técnicamente adecuada para software integrado en general en una variedad de plataformas, y es utilizada incluso por programas con todas las funciones 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 son creados por 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 subprograma solicitado a través de argumentos o enlaces duros o enlaces simbólicos .

Licencias

klibc tiene licencia dual bajo una BSD de tres cláusulas [8] (anteriormente de cuatro cláusulas, rectificada mediante el Aviso de permiso histórico y exención de responsabilidad ), así como la GPLv2 ( solo GPLv2 , debido a restricciones del núcleo 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ían compatibles). (Sin embargo, si klibc incluye cualquier código de kernel GPLv2 como el de glibc, toda la aplicación vuelve a GPLv2.)

Referencias

  1. ^ "klibc/klibc.git - árbol de desarrollo principal de klibc" . Consultado el 17 de abril de 2024 .
  2. ^ desde https://www.kernel.org/doc/Documentation/early-userspace/README [ URL del archivo de texto sin formato ]
  3. ^ Jonathan Corbet , (noviembre de 2002) Llega Initramfs, LWN.net
  4. ^ "Fusión de initramfs, parte 1 de N". 11 de febrero de 2002.
  5. ^ "Re: fusión de initramfs, parte 1 de N". 11 de febrero de 2002.
  6. ^ Klibc estable de Debian.
  7. ^ "libs/klibc/klibc.git/tree". Archivado desde el original el 8 de julio de 2012.
  8. ^ "klibc.spec.in - klibc/klibc.git - árbol de desarrollo principal de klibc". git.kernel.org . Consultado el 6 de diciembre de 2020 .

Enlaces externos