Si escucharon hablar de Systemd vs Upstart por todos lados, ya que ahora lo usarán en Debian y también en Ubuntu, aunque en Arch ya lo usaban desde hace un tiempo y demás distribuciones, y si os paso como a mi, que nunca supieron de que se hablaba, o que diferencias existían entre uno y otro, aquí hablaremos un poco en teoría, acerca de ello.
Para empezar, comenzamos por el Inicio (literalmente), cuando dios creó al mundo, a Adán y Eva...
En los sistemas tipo Unix, init (abreviatura de initialization) es el primer proceso en ejecución tras la carga del kernel y el que a su vez genera todos los demás procesos. Se ejecuta como demonio y por lo general tiene PID 1.
Tradicionalmente, esta funcionalidad se ha implementado de forma distinta en los dos grandes universos Unix: System V y BSD. En el Unix original, el proceso init arrancaba los servicios de mediante un único script denominado /etc/rc. Posteriormente, la versión System V del Unix de AT&T introdujo un nuevo esquema de directorios en /etc/rc.d/ que contenía scripts de arranque/parada de servicios.
Linux adoptó el esquema System V, aunque algunas distribuciones, como Slackware, usan el estilo BSD y otros, como Gentoo, tienen su propia versión personalizada. Ubuntu y algunas otras distribuciones de Linux utilizan ahora upstart como reemplazo para el proceso de inicialización tradicionales y el motivo son las desventajas que posee Init en comparación con Upstart:
El demonio init tradicional es estrictamente síncrono, bloqueando futuras tareas hasta que la actual se haya completado. Sus tareas deben ser definidas por adelantado, y solo pueden ser ejecutadas cuando el demonio init cambia de estado (cuando la máquina se arranca o se apaga). Esto hace que no sea capaz de manejar de forma elegante varias tareas en computadoras de escritorio modernas, incluyendo:
El modelo basado en eventos de Upstart le permite responder a los eventos de forma asíncrona cuando estos son generados.
En informática, Upstart es un reemplazo basado en eventos para el demonio init, el método utilizado por varios sistemas operativos Unix-like para realizar tareas durante el arranque del sistema. Fue programado por Scott James Remnant, un antiguo trabajador de Canonical Ltd.
Mientras que Init presentaba las desventajas mencionadas anteriormente, Upstart trabaja de forma asíncrona supervisando las tareas mientras el sistema esta arrancado. También gestiona las tareas y servicios de inicio cuando el sistema arranca y los detiene cuando el sistema se apaga.
La fácil transición y la perfecta retrocompatibilidad con sysvinit fueron objetivos explícitos en el diseño. Por lo tanto, Upstart es capaz de ejecutar scripts de sysvinit sin modificaciones. De esta manera se diferencia de la mayoría de reemplazos de init, que normalmente requieren una transición completa para funcionar correctamente y no son compatibles con un entorno mixto formado por métodos de arranque tradicionales y nuevos.
A medida que Upstart madura, se pretende que sus funciones se extiendan a las tareas gestionadas por cron, anacron, el demonio del comando at (atd) y posiblemente (pero mucho menos probable) inetd.
Las distribuciones en las que Upstart está habilitado por defecto son:
Las distribuciones que usaron Upstart en alguna versión pero han cambiado a systemd en versiones posteriores:
Otras:
Systemd es un sustituto para el Init de Linux. Está hecho para proveer un mejor framework para expresar las dependencias del servicio, permite hacer más trabajo paralelamente al inicio del sistema y reducir la sobrecarga del shell.
El nombre viene del sufijo system daemon (procesos en segundo plano) con la letra “d”.
Systemd fue escrito por Lennart Poettering y publicado como software libre bajo los términos de la GNU Lesser General Public License versión 2.1 ó posterior.
Comparado con System V init, que es utilizado por la mayoría de las distribuciones anteriores, systemd puede tomar ventaja de nuevas técnicas:
systemd es sólo para Linux por diseño, ya que depende de características como cgroups y fanotify.
systemd ha sido propuesto por Poettering como dependencia externa para GNOME 3.2. Esto esencialmente requeriría que todas las distribuciones que usan GNOME utilicen systemd, o al menos lo incluyan como opción configurable.
Distribuciones en las que systemd está habilitado de forma predeterminada:
Fedora 15 y superior, Frugalware 1.5 y superior, Mageia desde la versión 2, Mandriva 2011, openSUSE 12.1 y superior, Arch Linux desde octubre de 2012 y Siduction desde diciembre de 2013.
Distribuciones en las que systemd está disponible:
Debian GNU/Linux y Ubuntu han decidido utilizar systemd de forma predeterminada en sus próximas versiones.
Así que al menos en teoría ya sabemos algo acerca de este tema que un usuario novel (me incluyo) muchas veces dejamos pasar por completo ya que ciertamente es un lectura muy pesada, y no es tan divertido como un post incitando a un Flamewar de KDE vs Gnome, o similares.
Pero nunca está demás saber que se cocina detrás de nuestro S.O. favorito, o los términos y palabras que en un segundo nos pueden dejar completamente descolocados.
De igual forma, esto es un recopilatorio de la Wikipedia: