GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puede un kernel de Linux ser tan pequeño?

Sí. Si los desmonta (compila/hace módulos solo con las cosas que necesita), comprime el kernel (optimiza el tamaño)... resultará en un kernel tan pequeño. Puede hacer uno aún más pequeño, para el sistema específico. Como sé mi PC, sé mis cosas. Así que voy a compilar lo que necesito. Como mis propios drivers SATA, driver para USB, etc. Nada más. Sin cámara web, sin unidades IDE antiguas, nada.

Además:los más grandes que encuentra son el kernel ENTERO (que nunca necesita usar). Incluso los de escritorio contienen (la mayoría de las veces, como módulos) MUCHAS cosas innecesarias. Pero los novatos esperan que todo tipo de hardware que conecten funcione.

(Tenga en cuenta que los módulos no se cargarán hasta que se necesiten. Hay 3 estados:
[ ] - No se compilará, no formará parte de su kernel.
[M] - Se compilará como un módulo.
(Puede modprobarlo, o su sistema lo cargará automáticamente cuando sea necesario.
Depende del sistema, zona de usuario.)
[X] - Será compilado en el kernel Y estará presente - siempre.

Distribuciones con kernel pequeño:

  • Tiny Core Linux, Micro Core Linux, escritorio con GUI de Linux de 12 MB, Live, frugal, extensible
  • Página principal de la comunidad de Puppy Linux - Primeros pasos

Las primeras distribuciones de Linux, como Tom's Root-Boot, MuLinux, Diet-router, (la ahora desaparecida) LOAF y muchas otras que ya no existen, se ajustan a un sistema Linux en funcionamiento en uno o dos disquetes de 1,44 MB.

El kernel de Linux ha crecido pero es modular:los módulos del kernel se cargan según sea necesario. Por lo tanto, todavía es posible producir una distribución de Linux con una huella muy pequeña.

Consulte:Guía de ajuste del tamaño del kernel - eLinux.org

Si lees Linux_tiny.pdf verás esto

  • kernel histórico 0.99pl15:Slackware 1.1.2, 1994:301K
  • Fedora Core 2:1,2 millones
  • SuSE 9.1:1,5 millones
  • Configuración de prueba 2.6.5-tiny1:IDE, ext2, TCP, NIC:363K

La configuración predeterminada del kernel está configurada para admitir la mayor cantidad de hardware posible. Un kernel no despojado con la configuración predeterminada resultó en un tamaño de 1897996 kB (incluidos kernel + módulos). Al eliminar muchos controladores y opciones innecesarios (¿por qué necesitaría un módulo HP si tengo una computadora portátil Clevo), resultó en un tamaño de 892892 kB, lo que representa una reducción del tamaño del 53 % en comparación con el kernel estándar.

Al instalar los módulos del kernel, agregue el INSTALL_MOD_STRIP=1 opción. Esto eliminará todos los símbolos de depuración y reducirá el tamaño en un 92% para mí (de 892892 kB a 69356 kB). Tenga en cuenta que esto solo afectará a los módulos que se instalarán y no al kernel (vmlinuz) en sí mismo:

make INSTALL_MOD_STRIP=1 modules_install

De Documentación/kbuild/kbuild.txt:

INSTALL_MOD_STRIP
--------------------------------------------------
INSTALL_MOD_STRIP, if defined, will cause modules to be
stripped after they are installed.  If INSTALL_MOD_STRIP is '1', then
the default option --strip-debug will be used.  Otherwise,
INSTALL_MOD_STRIP value will be used as the options to the strip command.

Linux
  1. Módulos del kernel de Linux sin los que no podemos vivir

  2. Cómo instalar módulos Perl en Linux

  3. Linux:¿cómo recargar correctamente un módulo del kernel?

  4. ¿Cómo puedo vincular un archivo en Linux?

  5. Cómo recargar módulos kernel modificados

Cómo cargar o descargar un módulo del kernel de Linux

Cómo cargar y descargar módulos del kernel en Linux

Cómo verificar la versión del kernel en Linux

Cómo construir el kernel de Linux desde cero

¿Cuántos núcleos puede manejar el kernel de Linux?

¿Cómo puedo reservar un bloque de memoria del kernel de Linux?