El kernel o nucleo de linux se podria definir como el corazon de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones mas importantes del mismo, aunque no las unicas, son:
- Administracion de la memoria, para todos los programas en ejecucion.
- Administracion del tiempo de procesador, que estos programas en ejecucion utilizan.
- Es el encargado de que podamos acceder a los perifericos/elementos de nuestro ordenador de una manera comoda.
Existen dos versiones del Linux kernel:
- Version de produccion: La version de produccion, es la version estable hasta el momento. Esta version es el resultado final de las versiones de desarrollo o experimentales.
Cuando el equipo de desarrollo del nucleo experimental, decide que ha conseguido un nucleo estable y con la suficiente calidad, se lanza una nueva version de producion o estable. Esta version es la que se deberia utilizar para un uso normal del sistema, ya que son las versiones consideradas mas estables y libres de fallos en el momento de su lanzamiento.
- Version de desarrollo: Esta version es experimental y es la que utilizan los desarrolladores para programar, comprobar y verificar nuevas caracteristicas, correcciones, etc. Estos nucleos suelen ser inestables y no se deberian usar, a no ser que sepas lo que haces.
Como interpretar los numeros de las versiones:
Las versiones del nucleo se numeran con 3 numeros, de la siguiente forma: XX.YY.ZZ
- XX
: Indica la serie principal del nucleo. Hasta el momento solo existen la 1 y 2. Este numero cambia cuando la manera de funcionamiento del nucleo ha sufrido un cambio muy importante.
- YY
: Indica si la version es de desarrollo o de produccion. Un numero impar, significa que es de desarrollo, uno par,que es de produccion.
- ZZ
: Indica nuevas versiones dentro de una version, en las que lo unico que se ha modificado, son fallos de programacion /bugs.
Unos ejemplos nos ayudaran a entenderlo mejor:
- ej1
: version del nucleo 2.0.0: Nucleo de la serie 2 (XX=2), version de produccion 0 (YY=0 par), primera version de 2.0 (ZZ=0)
- ej2
: version del nucleo 2.0.1: Nucleo de la serie 2, version 0, en el que se han corregido errores de programacion presentes en la version 2.0.0 (ZZ=1)
- ej3
: version del nucleo 2.1.100: version 100 del nucleo de desarrollo 2.1.
El nucleo se puede bajar de un gran numero de servidores en internet. El servidor principal es http://www.kernel.org/ y la pagina de servidores espejos es http://www.kernel.org/mirrors/.
Si tienes problemas accediendo a estas paginas, aqui tienes una copia en otro servidor http://linux-es.uio.no/lista_kernel.html
Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero deciros que no hay razon para asustarse, la configuracion e instalacion de un nuevo nucleo en nuestro sistema es mas facil de lo suena.
Lo que si hay que hacer es tener claro una serie de cosas antes de ponernos a trabajar, para asi evitar problemas. A continuacion tienes una pequena guia sobre como configurar e instalar un nuevo nucleo en tu sistema.
Has decidido instalar un nuevo nucleo en tu sistema, que es lo que tenemos que hacer?
NOTA: Si vais a instalar un nucleo de la serie 2.2.x, teneis que tener en cuenta que algunas distribuciones no estan/estaban preparadas para hacer uso de esta serie. Si vuestra distribucion no es de las que vienen preparadas, teneis que actualizar una serie de paquetes/programas antes de instalar el nuevo nucleo (mas informacion en la documentacion que acompaña al nucleo).
su root
cp linux-xx.yy.zz.tar.gz /usr/src/
tar -xvzpf linux-xx.yy.zz.tar.gz
NOTA: El archivo linux-xx.yy.zz.tar.gz
se desempaquetara en el directorio /usr/src/linux
. Si ya existe un directorio llamado linux en tu sistema, renombralo, p.ej: mv linux linux-old
. En algunas distribuciones, linux es un enlace simbolico a linux-x.y.z
, borra este enlace simbolico. Es importante que no exista ningun directorio/enlace simbolico llamado linux, antes de desempaquetar la nueva version. Si te has bajado el kernel comprimido con bzip2, tendras que descomprimirlo con bunzip2 linux-xx.yy.zz.tar.bz2
cd /usr/src/linux
make config
(modo texto) make menuconfig
(modo texto con menus)make xconfig
(X-windows version)
Help
en cada opcion para obtener una descripcion de la misma. Configurar las opciones que quereis tener en vuestro nuevo nucleo. Una vez terminada la configuracion, grabar los cambios y salir del programa de configuracion.
make dep
make clean
make bzImage
make modules
make modules_install
NOTA: No olvidar ejecutar como root el comando depmod -a
la primera vez que arranqueis con vuestro nuevo nucleo, para computar las dependencias entre modulos.
Todavia estamos en /usr/src/linux
, ejecutar el comando make install
, esto copiara el nucleo que acabamos de crear, a el directorio /boot
de nuestro sistema, con el nombre vmlinuz
., o como un enlace simbolico vmlinuz -> vmlinuz-xx.yy.zz
/etc/lilo.conf
antes de modificarlo:
boot=/dev/hda prompt timeout=50 image=/boot/vmlinuz-2.0.34 label=linux root=/dev/hda1 read-onlyY aqui como quedaria despues de la modificacion para que reconozca nuestro nuevo nucleo al arrancar:
boot=/dev/hda prompt timeout=50 image=/boot/vmlinuz label=nuevokernel root=/dev/hda1 read-only image=/boot/vmlinuz-2.0.34 label=linux root=/dev/hda1 read-only
/sbin/lilo
y arrancar el sistema de nuevo. Si tuviesemos algun problema con el nuevo nucleo, siempre podriamos arrancar con el antiguo escribiendo linux
y pulsando ENTER
cuando arrancamos y nos sale en pantalla lilo:
De esta manera podemos entrar y ver que es lo que ha fallado.
NOTA: Recordar que existen multitud de opciones para configurar LILO, y que los ejemplos anteriores, son ejemplos. Puede que vuestro sistema necesite diferentes parametros y opciones. Leeros los documentos HOWTOS sobre el nucleo y LILO antes de cambiar nada en vuestro sistema. Al final de esta pagina teneis enlaces a los mismos. Suerte y espero que tengais las cosas un poco mas claras.
Seguramente habreis oido hablar de los parches para el nucleo, si no, aqui teneis informacion sobre los mismos.
Que son los parches y para que sirven?:
Un parche para el nucleo no es mas, que un fichero que solamente contiene informacion, sobre las lineas de codigo que han cambiado desde la version precedente del nucleo. De esta manera, solamente te tienes que bajar un fichero con los cambios, en vez del nucleo al completo. El ahorro en cantidad de Mb bajados es bastante considerable, sobre todo para aquellos que dependen del modem y no tiene una conexion buena a internet.
Algo a tener muy en cuenta si vais a actualizar el nucleo por medio de parches, en vez de bajaros el nucleo al completo, es que teneis que ir actualizando de version a version. Para que se entienda un poco mejor, aqui teneis un ejemplo:
Si teneis el nucleo 2.2.0 y vais a actualizarlo al 2.2.1, os podeis bajar el fichero patch-2.2.1.gz [70Kb] en vez, del nucleo 2.2.1 al completo [12.5Mb]. Pero si teneis el nucleo 2.2.0 y vais a actualizar al 2.2.4, NO os vale bajaros el fichero patch-2.2.4.gz nada mas, tendriais que bajaros el 2.2.1, 2.2.2, 2.2.3 y 2.2.4. Esto es porque los ficheros patch solamente contienen los cambios de version a version.
Si la diferencia entre la version que teneis y la que quereis instalar, es muy grande (p.ej: del 2.2.0 al 2.2.10), no os merece la pena actualizar por medio de parches, en este caso bajaros la version completa.
Que hacer con un fichero patch-XX.YY.ZZ.gz?:
Ya te has bajado el fichero patch (se pueden bajar del mismo subdirectorio donde esta la version completa), que necesitas para actualizar el nucleo, y ahora que haces?. Ahora, hay que aplicarlo al nucleo que tienes y compilar de nuevo. El procedimiento para actualizar el nucleo por medio de ficheros patch es el siguiente:
cp patch-XX.YY.ZZ.gz /usr/src/
cd /usr/src/; gunzip patch-XX.YY.ZZ.gz
patch -s -p0 < patch-XX.YY.ZZ
cd /usr/src/linux
make clean, make xconfig, make dep, make bzImage
, el resto es igual que en la
seccion anterior a partir del punto 12)Esto es todo lo que se me ocurre sobre los parches del nucleo.
Pregunta: Necesito actualizar el nucleo que utilizo, cada vez que una nueva version aparece? Respuesta: NO. Porque? La explicacion es la siguiente:
Cuando un nuevo nucleo aparece, puede ser por las siguientes causas:
Si las caracteristicas que se han anadido, no las vamos a utilizar, es evidente que no necesitamos actualizar. Si los fallos de programacion que se han corregido, afectan a caracteristicas/drivers que no utilizamos, no necesitamos actualizar. Si no utilizamos el nuevo hardware soportado, tampoco necesitamos actualizar.
De todas maneras es recomendable, actualizar de vez en cuando, sobre todo cuando se corrigen fallos de seguridad o cuando los cambios en el nuevo nucleo afectan a caracteristicas/funciones/hardware que utilicemos. El codigo esta ahi, libre y esperando a ser compilado en un nuevo ordenador, cada usuario debe de decidir cuando es hora de una actualizacion.
Pregunta: Soy nuevo en Linux y acabo de instalar una distribucion, como actualizo el nucleo? Respuesta: Te aconsejo que esperes un poquito. La distribucion que acabas de instalar (si es de las ultimas) viene con un nucleo de los "ultimos", totalmente funcional y que te sirve sin problemas. Utiliza el sistema un tiempo, familiarizate con el nuevo sistema que acabas de instalar, y cuando comprendas un poco mas como funcionan las cosas, actualiza el nucleo. Un buen punto de partida para encontrar informacion sobre el nucleo, lo tienes en estas paginas.