init
From Wikipedia, the free encyclopedia
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]
Aquest article o secció no cita les fonts o necessita més referències per a la seva verificabilitat. |
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]