El hecho de disponer del código fuente del núcleo de Linux (de ahora en adelante, simplemente Linux) nos permite personalizarlo, por ejemplo, para incluir soporte de hardware adicional, características aún no incluidas de serie, corregir problemas conocidos sin depender de que nuestro fabricante lo haga por nosotros o simplemente optimizar el tamaño o la velocidad de ejecución del mismo.
Hay que decir sin embargo que esta característica de personalizar y optimizar el sistema operativo no es exclusiva de Linux: en la mayoría de los UNIX comerciales se puede llevar a cabo un proceso conocido como relinkado del núcleo, que consiste en reconstruir el archivo que contiene el sistema operativo para incluir características no presentes previamente, o parametrizar ciertas magnitudes. La diferencia principal es que el relinkado tiene lugar usando componentes binarios, en lugar de archivos de código fuente, como sucede en Linux.
Además casi todos los sistemas operativos modernos son modulares, en el sentido de que no es necesario que el núcleo incluya soporte para todo el hardware o características disponibles, sino que existe un conjunto de funcionalidad básica (gestión de procesos, memoria, archivos, etc.) al que se puede añadir de manera más o menos sencilla soporte para más dispositivos o características, mediante los llamados módulos o drivers. Algunos sistemas operativos hay que reiniciarlos para que tomen efecto los cambios, en otros se puede hacer "en caliente", en otros es necesario relinkado e iniciar con la nueva versión del núcleo, etc.
En este artículo nos vamos a centrar en describir el proceso para compilar el núcleo de Linux. Iremos paso por paso, detallando qué hay que hacer en cada momento, porqué, y los posibles problemas que nos podemos encontrar. Finalmente indicaremos la configuración necesaria en los dos gestores de inicio más conocidos, LILO y GRUB, para usar el núcleo recién compilado.
En primer lugar tenga en cuenta que el núcleo proporcinado por su fabricante dispone de todo el soporte de características y dispositivos de que dispone la versión estándar que puede descargar de kernel.org, y muchas más que el fabricante incluye como servicio a sus clientes. Es decir, casi con toda seguridad su actual núcleo ya soporta todo lo que necesita, aunque para dispositivos especialmente modernos o cuyo funcionamiento no sea aún muy estable es posible que no tenga soporte, y pueda ser necesario recompilar.
También puede resultar interesante recompilar para optimizar el núcleo que use, tanto su tamaño como su velocidad de ejecución. Es habitual que los núcleos de los fabricantes no estén optimizados para su procesador, y pueda aumentar el rendimiento recompilando específicamente para su modelo. Además, si sólo compila el soporte necesario para sus actuales dispositivos y para las características que necesita el núcleo será menor, y tenderá a ejecutar más rápido y a ocupar menos memoria. Aunque actualmente el soporte de módulos cargables y las opciones de compilación usadas por los fabricantes evitan en gran medida este problema.
Otra posible motivación puede ser la de solucionar algún problema conocido, añadir alguna característica novedosa que desea probar, o actualizar a una versión superior a la proporcionada por su fabricante. Por último, también puede compilar el núcleo simplemente por aprender, y espero que este artículo le resulte útil en su aprendizaje.
El primer paso para compilar un núcleo personalizado será obtener el código fuente del mismo, así como el de todos los añadidos que deseemos incluir. La localización de estos añadidos es muy diversa, pero el código fuente estándar del núcleo de Linux se encuentra en kernel.org. Verá que hay disponibles para descargar varias versiones diferentes, en principio debería descargar la correspondiente a la llamada serie estable, que actualmente es la 2.4.20. La actual serie en desarrollo, la 2.5.x, va por la versión 2.5.59, y cuando los desarrolladores consideren que ya es suficientemente estable, la etiquetarán como 2.6.0, que será la primera versión de la siguiente serie estable. No debería usar versiones en desarrollo salvo que sepa bien lo que está haciendo.
Quizás le resulte más cómodo descargarse las fuentes del núcleo desde el servidor FTP de kernel.org. Bajo el directorio /pub/linux/kernel/v2.4/ dispone de las fuentes del núcleo para todas las versiones de la serie 2.4.x, así como multitud de archivos con nombres similares a patch-2.4.20.bz2: éstos son parches del núcleo que aplicados sobre las fuentes estándares de la versión inmediatamente anterior (2.4.19 en el ejemplo) nos generan las fuentes del núcleo de la versión indicada por el archivo.
La utilidad de estos parches es fundamentalmente evitar la descarga de cada nueva versión completa de las fuentes del núcleo, así como ver en detalle los cambios realizados en las fuentes entre versiones consecutivas. Compruebe como un archivo con las fuentes completas del núcleo ocupa más de 25 MiB de tamaño, pero el parche para llegar a esta versión desde la inmediatamente anterior suelen ser menos de 3 MiB.
Usuarios que han visto este tema también han visto...
- ¿Cómo remediar penalización de una página Web y recuperar posicionamiento en Google?
- Google asciende a los cielos
- Iniciar un negocio con poco dinero
- Creación de DHTML compatible
- El manejo de los errores 404 ante los buscadores
- Versión imprimible de este documento
- Enviar por e-mail este documento