Hace algún tiempo que quiero sacarle todo el jugo a mi equipo, es por eso que me compilo el kernel con cada versión nueva que sale, quitando todo lo que no me sirve, si bien no es nada del otro mundo tampoco es tan sencillo y a veces da problemas.
Lo que siempre me pareció algo que debería de ser mas agil es el arranque del equipo. El arranque tradicional se realiza mediante init, usando generalmente sysvinit, el problema de esto es que init carga una serie de scripts ejecutando los secuencialmente (uno después de otro), que se encuentran en /etc/rc.*, según estén definidos en /etc/inittab.
Este método tiene sus desventajas: Al realizar el inicio secuencial se desaprovecha recursos ej, mientras se ejecuta el script de alsa no se realiza otra cosa, cuando el disco y el procesador podrian realizar otras tareas !
La otra desventaja que tiene es la carga de dependencias, claro esta que no se puede cargar el modulo de una tarjeta wifi si todavía no tenemos acceso al disco (este se puede agregar al initrd.img) La solución se llama InitNG y lo que propone es lo siguiente, los procesos al inicio se realizan de forma paralela, es decir, se ejecutan todos los script de inicio al mismo tiempo cada uno de ellos usa una variable con las dependencias y estará en espera hasta que estas estén satisfechas, y la instalación como podrán ver es realmente sencilla.
Instalación en Debian:
deb http://pkg-initng.alioth.debian.org/debian/ experimental main
ejecutamos # apt-get update y luego apt-get install initng initng-ifiles
cuando finalicé la instalación debemos de modificar nuestro gestor de arranque para que no use el clásico init y pase a usar initng, GRUB: editar /boot/grub/menu.lst y a la opción correspondiente del kernel que vamos a usar le agregamos init=/sbin/initng, ej:
title kernel 2.6.16.11 // InitNG root (hd0,1)
kernel /vmlinuz-2.6.16.11 root=/dev/hda5 ro init=/sbin/initng
initrd /initrd.img-2.6.16.11
savedefault
boot
La conflagración: los archivos están ubicados en /etc/initng , y vemos 2 tipos de archivos, los .runlevel (system.runlevel, default.runlevel, etc.) y los .i (system/alsasound.i y el resto a la manera directorio/nombre.i) el sistema es sencillo, desde los .runlevel se llama a los .i (sin la extension .i) Luego solo debemos quitar o agregar referencias a los .i que queremos dentro de los .runlevel
Control:
Para poder controlar initng contamos con al herramienta ngc, si lo usamos sin opciones nos muesta las opciones, pero los usos mas frecuentes son:
ngc –stop (script) detiene ese script (ej. ngc –stop postfix)
ngc –start (script) inicia el script (ej. ngc –start postfix)
ngc –restart (script) reincia el script (ej. ngc –restart postfix)
Claro, estos son los básicos, y puden profundizar leyendo el FAQ.
Espero que les sea de utilidad.