martes, mayo 10, 2005

Booting GNU/Linux

Arrancar cualquier distribución medianamente importante (véanse SuSe, Red Hat o Mandrake) es un verdadero calvario. Otro día pondré a parir a todas las distribuciones que conozco/he probado (que son unas cuantas). De lo que quiero hablar ahora es del arranque.

30 segundos en arrancar es un suplicio cuando uno tiene prisa, y más para el sistema, pues más tiempo arrancando significa más recursos consumidos por programas iniciados en el tiempo de arranque, y a más recursos usados, menos para nosotros y menos aún para OpenOffice.org (que ya de por sí necesita los suyos, no sé cómo irá la versión 2.0). Hace tiempo empecé a construirme un sistema LFS. Me llamó la atención el ver que el programa encargado de realizar todas las tareas de arranque era SysVInit, cuyo nombre me recordó (y supongo que a todos) a Unix System V, desarrollado por los laboratorios de AT&T. Curioso, ahora resulta que el arranque de GNU/Linux es una imitación del de un sistema Unix de los años 70.

Aunque nadie presta demasiada atención a esto, (y menos aún las grandes empresas implicadas en el desarrollo de las distribuciones mayoritarias) hoy en día no es aceptable un sistema de arranque secuencial. Es de locos tener que esperar 15 segundos (hablo de SuSe 9, sin tunear) mientras DHCP intenta detectar la red, tiempo que se podría usar para hacer mientras otras tareas, tales como detectar dispositivos USB o borrar el contenido del directorio /tmp. Hace tiempo me planteé dicha cuestión, pero cayó en el olvido (consecuencia de tener poco tiempo libre) hasta el otro día, cuando vi que un desarrollador se había planteado lo mismo y publicó Initng, programa sustituto de SysVInit que aporta ese grado de paralelismo (falso, ya que mantiene la secuencialidad en ciertas cosas necesarias) que necesita aquel para lograr un arranque más optimizado.

Otra alternativa, la observé hace tiempo, pero no ha sido hasta hoy cuando he visto que estaba disponible al público. Se trata de Runsol, que se basa en XML para crear los scripts de inicio del sistema. Aún con lo novedoso de usar XML (creo que MacOS X Tiger hace lo mismo, pero paralelizando), no aporta la "gran" novedad de Initng, el paralelismo.

Y por si alguien lo duda, sí, Initng está pensado para sistemas monoprocesador.

No hay comentarios: