|
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 kernel
experimental, decide que ha conseguido un kernel 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 kernel se numeran con 3
numeros, de la siguiente forma: XX.YY.ZZ
XX: Indica la serie principal del
kernel. Hasta el momento solo existen la 1 y 2. Este numero cambia
cuando
la manera de funcionamiento del kernel 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 revisiones 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 kernel 2.4.0: Kernel
de la serie 2 (XX=2), version de produccion 4 (YY=4 par), primera
version
de 2.4 (ZZ=0)
ej2: version del kernel 2.4.1:
Kernel de la serie 2, version 4, en el que se han corregido errores de
programacion presentes en la version 2.4.0 (ZZ=1)
ej3: version del kernel 2.5.0:
version 0 del kernel de desarrollo 2.5.
|
Donde conseguir el kernel
|
El kernel se puede bajar de un gran numero
de servidores en internet. En el directorio del kernel en
este servidor,
podras bajar las ultimas versiones del Kernel,
bajadas directamente de http://www.kernel.org/.
En este enlace tienes la lista internacional
oficial de servidores espejos, de donde es posible bajarse
cualquier version
del kernel (ultima y antiguas).
|
Configuracion e instalacion de un
nuevo kernel
|
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 kernel 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 kernel en tu sistema.
Has decidido instalar un nuevo kernel en
tu sistema, que es lo que tenemos que hacer?
- Bajarte la ultima version. De donde? Leete
la seccion anterior.
NOTA: Si vais a instalar un kernel de las ultimas
series de
produccion, teneis que tener en cuenta que algunas distribuciones (si
son antiguas) pueden no estar preparadas para hacer uso de estas
series. Si vuestra distribucion no viene preparada para soportar los
ultimos kernels, teneis que actualizar una serie de paquetes/programas
antes de instalar el nuevo kernel (mas informacion en la documentacion
que acompaña al kernel). o actualizar a una distribucion o
version de
vuestra distribucion que los soporte.
- Tener claro lo que vamos a hacer, leete el
documento HOWTO sobre el kernel (Ingles
/ Castellano)
- Tener claro las opciones que tenemos que configurar,
para poder utilizar el hardware de nuestro sistema, asi como las
caracteristicas
que queremos utilizar. Por ejemplo, si no utilizamos un dispositivo
SCSI,
no tenemos que configurar nada en el apartado SCSI de nuestro kernel.
Asi
nos ahorramos espacio y tiempo.
- Entrar como root: su root
- Copiar el archivo que te has bajado al directorio /usr/src/
cp linux-xx.xx.xx.tar.bz2
/usr/src/
- Descomprimirlo y desempaquetarlo: tar
-xvzpf linux-xx.yy.zz.tar.gz
NOTA IMPORTANTE: El archivo linux-xx.yy.zz.tar
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-xx.yy.zz, borra este enlace simbolico. Es importante que
no exista ningun directorio/enlace simbolico llamado linux, antes de
desempaquetar la nueva
version.
- Entrar en /usr/src/linux: cd
/usr/src/linux
- Configurar el kernel, esto se puede hacer
de tres maneras diferentes:
make config (modo
texto)
make menuconfig (modo
texto con menus)

make xconfig (X-windows
version)

- Os recomiendo el ultimo comando o el segundo, totalmente
desaconsejado usar el primero.
- Os recomiendo que las opciones que vienen
por defecto no las toqueis, si no sabeis lo que haceis. Configurar las
opciones que quereis tener en vuestro nuevo kernel. Una vez terminada
la
configuracion, grabar los cambios y salir del programa de configuracion.
- Una vez terminado el proceso de configuracion,
tenemos que compilar nuestro nuevo nucleo. Para ello hay que hacer lo
siguiente:
make dep
make clean
make bzImage
- Si en el proceso de configuracion, elegimos
alguna opcion como modulo, tendremos que compilar/instalar dichos
modulos:
make modules
make modules_install
NOTA: No olvidar ejecutar como root
el comando depmod -a
la primera vez que arranqueis con vuestro nuevo kernel, para computar
las
dependencias entre modulos.
- Ya tenemos el kernel y los modulos compilados,
ahora tenemos que instalarlo. Casi todo el mundo utiliza LILO para
arrancar
el sistema, por ello explicare como instalarlo utilizando LILO.
Todavia estamos en /usr/src/linux
ejecutar el comando make install
, esto copiara el kernel 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
- Ahora tenemos que configurar LILO para que
reconozca el nuevo kernel. Tendremos que modificar el fichero /etc/lilo.conf
Aqui teneis un ejemplo, del fichero /etc/lilo.conf
antes de modificarlo:
boot=/dev/hda
prompt
timeout=50
image=/boot/vmlinuz-2.0.34
label=linux
root=/dev/hda1
read-only
Y aqui como quedaria despues de la modificacion
para que reconozca nuestro nuevo kernel 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
- Ahora solo tenemos que ejecutar el comando /sbin/lilo
y arrancar el sistema de nuevo. Si tuviesemos algun problema con el
nuevo
kernel, siempre podriamos arrancar con el antiguo escribiendo linux
<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 kernel 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.
|
Parches (patches) para el Kernel
|
- Que son los parches y para que sirven:
Un parche para el kernel 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 rapida 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.35), 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 kernel, 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:
- Copia el fichero patch-XX.YY.ZZ.gz al directorio
/usr/src : cp patch-XX.YY.ZZ.gz /usr/src/
- Cambia a este subdirectorio y descomprime el fichero: gunzip patch-XX.YY.ZZ.gz
- Aplica el parche: patch -s -p0 < patch-XX.YY.ZZ
- La opcion -s hara que solo se impriman mensajes de
error. Si no
recibes ningun mensaje de error (como deberia de ser ;-)) solamente te
queda entrar en /usr/src/linux: cd
/usr/src/linux
- Y ejecutar make clean, make xconfig, make dep, make
bzImage, el resto es igual que en la seccion
anterior a partir del punto 12)
- Pregunta: Necesito actualizar el
kernel que utilizo, cada vez que una nueva version aparece?
Respuesta: NO. Porque? La explicacion
es la siguiente:
Cuando un nuevo kernel aparece, puede ser
por las siguientes causas:
- Nuevas caracteristicas se han anadido.
- Fallos de programacion se han corregido
- Fallos de seguridad se han corregido.
- Nuevo hardware es soportado.
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 kernel 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 kernel?
Respuesta: Te aconsejo que esperes
un poquito. La distribucion que acabas de instalar (si es de las
ultimas)
viene con un kernel 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 kernel. Un buen punto
de partida para encontrar informacion sobre el kernel, lo tienes en
estas
paginas.
|