miércoles, 22 de octubre de 2008

Cómo iniciar Linux en 5 segundos

Dos expertos en el kernel de GNU/Linux demostraron recientemente en la conferencia LPC cómo lograr que este sistema operativo esté disponible en tan sólo 5 segundos, algo que parece reservado a unos pocos, pero que ya es una realidad. Estos dos desarrolladores se han especializado en la optimización del consumo y la latencia de este sistema operativo y de su núcleo, y la evolución de proyectos como PowerTOP es impresionante.

El logro es especialmente espectacular, y para lograrlo usaron un ASUS Eee PC con disco SSD que iniciaron en menos de 5 segundos delante de la audiencia de la Linux Plumbers Conference (algo así como la “Conferencia de Fontaneros de Linux”). De hecho, el sistema arrancó tan rápido que no pudieron conectar el proyector, que tardaba más de ese tiempo en sincronizar la señal.

Arjan van de Ven, desarrollador de Linux que trabaja en Intel y autor de PowerTop, y Auke Kok, otro desarrollador empleado por Intel en su Open Source Technology Center, demostraron que un sistema con Linux podía arrancar en este tiempo, y lo demostraron con una versión modificada de Fedora y otra de Moblin. El logro, como decían ellos, no tenía truco: “el tiempo de finalización se marca con la CPU y el disco inactivos”. No tiene sentido mostrar el escritorio mientras en segundo plano se están cargando servicios. Eso sí, ese tiempo no incluyó poner en marcha la conectividad, aunque sí se inició el servicio NetWorkManager.

Un arranque “de serie” con estas características tardaría unos 45 segundos en realizarse, tal y como demuestra la herramienta BootChart, es posible ir reduciendo el tiempo que consumen ciertos procesos, y eliminar aquellos no realmente innecesarios. En Fedora, por ejemplo, uno de los conflictos lo provoca la herramienta setroubleshootd, que detecta posibles errores en el software SELinux. En Ubuntu la ejecución de modprobe lleva nada menos que 12 segundos, de modo que es poco eficiente y se puede evitar su activación al menos en el inicio.

Cosas como mostrar las famosas ’splash screens’ o de los gestores de sesión (gdm, kdm) también llevan su tiempo, así que los desarrolladores evaluaron qué procesos tomaban más tiempo y prescindieron de ellos si era posible. Además de eso, compilaron versiones especiales del núcleo. Eliminar cosas como el initrd, que ocupa medio segundo sin hacer nada, era uno de los secretos, pero eso implica generar un kernel con todos los módulos necesarios incluidos en él. Una selección de un puñado de módulos cubre, según estos desarrolladores, el 95% de los casos, de modo que resulta un modo muy eficiente de reducir los tiempos.

También lidiaron con otros problemas, como el servidor X, con el que tuvieron que realizar algunos “trucos” para lograr por ejemplo saltarse la pantalla de GDM o hacer que mientras se inicializa el hardware de vídeo también se inicialice el USB o los ATA. Puede que estos desarrollos sean complicados para muchos usuarios, pero probablemente veamos avances prácticos gracias a estos investigadores, uno de los cuales fue recientemente entrevistado en O’Reilly para hablar de proyectos como PowerTOP, una interesante iniciativa para reducir el consumo al mínimo en máquinas con GNU/Linux.

0 entradas a blog:

..:: Acerca de este blog ::..

Este blog fue diseñado por el Lic. Felipe Aguilera - Lic. en Análisis de Sistemas. Cualquier duda o consulta comunicarse con: msfa001@gmail.com