Init

Versió 7 Unix: /etc llistant, mostrant init i rc
Versió 7 Unix: contingut d'un /etc/rc Bourne shell script

En sistemes tipus Unix, init (abreviatura d'initialization), inicialització, és el primer procés en execució després de la càrrega del kernel. Té un ID de procés PID 1,[1] que s'executa en segon pla fins que el sistema s'apaga. També és responsable d'iniciar i gestionar directament o indirectament tots els altres processos que s'executaran a l'equip fins que s'apaga, supervisant el bon funcionament de tot el sistema.[2] Implicant diversos components com el BIOS/UEFI, el carregador d'arrencada, el nucli i el sistema d'inici.[3][4]

En posar-se en marxa l'init cerca el script d'arrencada, un cop establert el nivell d'execució, runlevel, init executa un determinat grup de processos: al nivell 0 per a apagar el sistema; al nivell 1, mode monousuari (generalment per a tasques de manteniment); al nivell 2, mode multiusuari sense suport de xarxa; al nivell 3, mode multiusuari amb suport de xarxa; al nivell 4, s'usa per a seqüències d'inici personalitzades; al nivell 5, mode multiusuari complet amb entorn gràfic; al nivell 6 per a reiniciar-lo. Si no es determina un nivell d'arrencada, el sistema queda parat.[4]

Tradicionalment, aquesta funcionalitat s'ha implementat de manera diferent en els dos grans sistemes operatius: System V i BSD. En l'Unix original, el procés init arrancava els serveis mitjançant un únic script denominat /etc/rc. Posteriorment, la versió System V de l'Unix d'AT&T va introduir un nou esquema de directoris en /etc/rc.d/ que contenia scripts d'arrencada/aturada de serveis.

Inicialment Linux va adoptar l'esquema de System V, l'anomenat SysV init, encara que algunes distribucions, com Slackware, optaren l'estil BSD i d'altres, com Gentoo, tenen un init personalitzat, OpenRC. Posteriorment l'init més emprat ha esdevingut Systemd, desenvolupat per RedHat, adoptat per distribucions com SUSE, Mageia o Debian i finalment per Ubuntu.

L'entrada en joc de Systemd, entre el 2012 i el 2015, va comportar polèmica dins de la comunitat de Linux. Ubuntu el criticava per ser un init molt invasiu. Posteriorment, l'adoptà, discontinuant Upstart, l'init desenvolupat per Canonical.[5] Però es feia notar que Systemd incrementava la complexitat del sistema, convertint-lo en una espècie de "segon kernel" que violentava la mateixa filosofia de funcionament d'Unix de fer una cosa i fer-la bé. Finalment, convertia Linux en monolític dificultant que el programari adaptat per a systemd es pogués usar sense canvis en altres init i dificultant la portabilitat a altres sistemes.[4][6] En nàixer Devuan va entrar en joc el concepte de “Init Freedom”, com el dret a triar el sistema d'inici equiparant-lo a les quatre llibertats de programari defensades per la Free Software Foundation.[7] El cert és que la major part de distribucions actualment empren Systemd i ha contribuit a estandaritzar Linux.[4][6]

  1. «6 Best Modern Linux 'init' Systems (1992-2023)». Tecmint, 20-09-2023. [Consulta: 9 febrer 2024].
  2. «Understand Linux: What is Init System». How to do it, 28-11-2023. [Consulta: 9 febrer 2024].
  3. Horan, John. «systemd vs. init: Decoding the Linux Boot Process». FossLinux, 19-11-2023. [Consulta: 9 febrer 2024].
  4. 4,0 4,1 4,2 4,3 Merino, Marcos. «Qué es init, el sistema de arranque de Linux (y qué alternativas existen según la distribución que uses)». Genbeta, 11-09-2021. [Consulta: 9 febrer 2024].
  5. F.Manuel. «Canonical acata la decisión de Debian y Ubuntu abrazará SystemD». Genbeta, 14-02-2014. [Consulta: 9 febrer 2024].
  6. 6,0 6,1 Dyer, Bill. «systemd vs init Controversy [A Layman's Guide]». It's Foss, 19-07-2023. [Consulta: 9 febrer 2024].
  7. Byfield, Bruce. «A Survey of Init Systems » Linux Magazine» (en anglès americà). [Consulta: 9 febrer 2024].