Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:linux:kernel

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:sistemas_operativos:linux:kernel [2021/05/18 16:53] – [rmmod] tempwininformatica:sistemas_operativos:linux:kernel [2021/05/18 17:19] (actual) – [Generación del disco inicial de RAM] tempwin
Línea 38: Línea 38:
   - Selección de opciones (''.config'')   - Selección de opciones (''.config'')
   - Guardar opciones (''.config'')   - Guardar opciones (''.config'')
-  - Compilar+  - Compilación 
 +  - Instalación
  
 +==== Extracción de fuentes ====
  
 Se suele extraer en ''/usr/src/'': Se suele extraer en ''/usr/src/'':
Línea 48: Línea 50:
  
 Finalmente las fuentes quedarán en ''/usrc/src/linux-3.13.0/'' Finalmente las fuentes quedarán en ''/usrc/src/linux-3.13.0/''
 +
 +==== Limpieza ====
  
 Si no fuese la primera vez que compilamos ese kernel, realizamos una limpieza: Si no fuese la primera vez que compilamos ese kernel, realizamos una limpieza:
Línea 61: Línea 65:
 ''mrproper'' elimina todos los archivos generados, el archivo ''.config'' y también los archivos de respaldo para recuperar la configuración de base tal y como estaba en el archivo. ''mrproper'' elimina todos los archivos generados, el archivo ''.config'' y también los archivos de respaldo para recuperar la configuración de base tal y como estaba en el archivo.
  
 +==== Opciones de compilación ====
  
 Para seleccionar las opciones de compilación, aprovecharemos el fichero ''config'' existente de un kernel que tengamos. Por ejemplo, el fichero ''/boot/config-3.10.0-327.10.1.el7.x86_64'' y lo copiamos a nuestro directorio con las fuentes de la nueva versión del kernel: Para seleccionar las opciones de compilación, aprovecharemos el fichero ''config'' existente de un kernel que tengamos. Por ejemplo, el fichero ''/boot/config-3.10.0-327.10.1.el7.x86_64'' y lo copiamos a nuestro directorio con las fuentes de la nueva versión del kernel:
Línea 92: Línea 96:
  
 Los cambios se guardarán en el ''.config'' y será lo que utilizaremos para compilar. Los cambios se guardarán en el ''.config'' y será lo que utilizaremos para compilar.
 +
 +==== Compilación ====
  
 Finalmente, la compilación del kernel se realiza con: Finalmente, la compilación del kernel se realiza con:
Línea 104: Línea 110:
 make modules_install make modules_install
 </code> </code>
 +
 +==== Instalación ====
  
 Finalmente "instalamos" el kernel: Finalmente "instalamos" el kernel:
Línea 112: Línea 120:
  
 Este último comando crea una nueva entrada de configuración en el GRUB, crea el fichero ''initrd'', ''vmlinuz''... Este último comando crea una nueva entrada de configuración en el GRUB, crea el fichero ''initrd'', ''vmlinuz''...
 +
 +
 +
 +===== Parches =====
 +
 +Es raro tener que aplicar parches al kernel ya que en el día a día el kernel lo vamos manteniendo a través de repositorios y herramientas de paquetería como ''apt'' o ''yum''.
 +
 +Los parches pueden solucionar errores de seguridad, añadir características nuevas, etc.
 +
 +Si queremos hacerlo, en la página [[https://www.kernel.org/|kernel.org]] hay parches.
 +
 +==== Aplicar parches ====
 +
 +Simulación:
 +
 +<code>
 +bzip2 -dc patch.X.Y.bz2 | patch -p1 --dry-run
 +</code>
 +
 +Si todo sale bien, podemos aplicar el parche:
 +
 +<code>
 +bzip2 -dc patch.X.Y.bz2 | patch -p1
 +</code>
 +
 +Si el parche está comprimido en ''.gz'':
 +
 +<code>
 +gunzip -c patch.X.Y.gz | patch -p1 --dry-run
 +gunzip -c patch.X.Y.gz | patch -p1
 +</code>
 +
 +==== Retirar parches ====
 +
 +La retirada de un parche aplicado se realiza con el mismo comando y la misma sintaxis a la que se le añade la opción ''-R'':
 +
 +<code>
 +patch -p1 -R < patch-X-Y
 +</code>
 +
 ===== Módulos ===== ===== Módulos =====
  
Línea 135: Línea 183:
 srcversion:     01E39715B5332C751061DF0 srcversion:     01E39715B5332C751061DF0
 depends:        fscache,sunrpc,lockd depends:        fscache,sunrpc,lockd
-intree:         Y+intree:         Y'
 vermagic:       3.10.0-327.10.1.el7.x86_64 SMP mod_unload modversions vermagic:       3.10.0-327.10.1.el7.x86_64 SMP mod_unload modversions
 signer:         Red Hat Enterprise Linux kernel signing key signer:         Red Hat Enterprise Linux kernel signing key
Línea 241: Línea 289:
 modprobe -r [NOMBRE_MÓDULO] modprobe -r [NOMBRE_MÓDULO]
 </code> </code>
 +
 +===== Generación del disco inicial de RAM =====
 +
 +Históricamente, se utilizaban herramientas como ''mkinitrd'' (Red Hat) y ''mkinitramfs'' (Debian) para crear el disco inicial de RAM. Este disco es una colección de módulos críticos del kernel y de utilizades de sistema que el bootloader lee del disco y pasa al kernel para que pueda arrancar.
 +
 +Ya no se utilizan porque al compilar el kernel, se generan automáticamente cuando hacemos ''make install''.
informatica/sistemas_operativos/linux/kernel.1621349629.txt.gz · Última modificación: por tempwin