Tradicionalmente init era el programa encargado de controlar la secuencia de arranque de la inmensa mayoría de distribuciones GNU/Linux. Este sistema se derivaba del estilo de los sistemas BSD, y se diferenciaba de otro tipo de arranque basado en el estilo SysV, que se utilizaba recientemente en distros como Debian, SuSE o Red Hat.
En LinuxPlanet han escrito un interesante y didáctico artículo sobre estos sistemas de inicio de nuestros PCs con Linux, y en él explican por ejemplo que en init la ejecución de los distintos procesos estaba gestionada según distintos niveles de ejecución o runlevels. Esta aproximación era correcta hasta hace poco, pero sus desventajas fueron incrementándose. Por ejemplo, había problemas con hardware plug&play que introducíamos durante el arranque, y también con sistemas de ficheros de red que por ejemplo estaban disponibles solo en ciertas etapas del inicio. Para resolver eso y más llegó Upstart.
En upstart la gestión está basada en eventos, y no en niveles. Los servicios se pueden levantar o desactivar en respuesta a ciertos eventos, y este procedimiento permite por ejemplo manejar el reinicio de servicios que mueren de forma inesperada.
Tanto Fedora como Ubuntu basan sus secuencias de inicio en este sistema y parece que les ha ido muy bien el cambio porque entre otras cosas los tiempos de inicio son más reducidos, pero en LinuxPlanet aportan otros datos y de hecho seguirán tratando el tema en posteriores entregas de esta pequeña guía sobre init y upstart.