Init

Da Wikipedia, l'enciclopedia libera.

init, in un sistema operativo Unix, è il primo processo che il kernel manda in esecuzione dopo che il computer ha terminato la fase di bootstrap. Esso ha il compito di portare il sistema in uno stato operativo, avviando i programmi e servizi necessari.

Dato che init è sempre il primo processo eseguito, esso ha tipicamente il PID 1.

Il suo file di configurazione, sulla maggior parte dei sistemi, è /etc/inittab.

I runlevel[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Runlevel.

Solitamente, init viene configurato in modo da potere portare il sistema in diversi livelli operativi con caratteristiche diverse, detti runlevel. Ad esempio, può esistere un runlevel in cui il sistema fornisce servizi di rete, come HTTP e FTP, e può essere comodo avere un altro runlevel in cui tali servizi non sono forniti, da utilizzare nei casi in cui la connettività di rete sia mancante o quando è necessario eseguire interventi di manutenzione. init ha il compito di impostare il runlevel iniziale, e di portare il sistema da un runlevel ad un altro.

Differenza tra sistemi in stile System V e quelli in stile BSD[modifica | modifica sorgente]

Esistono due filosofie per organizzare il funzionamento di init:

  • Nel metodo System V, a ogni runlevel corrisponde una directory (solitamente /etc/rcX.d,[1] dove X è il numero del runlevel), nella quale risiedono una serie di script i cui nomi iniziano per K (= Kill) o per S (= Start), seguite da un numero. I primi vengono eseguiti quando si abbandona il runlevel, e hanno il compito di terminare i servizi in esecuzione, mentre i secondi vengono eseguiti quando si entra nel runlevel, e servono ad avviare i suoi servizi caratteristici.
  • Nel metodo BSD, a ogni runlevel corrisponde uno script (solitamente chiamato /etc/rc.d/rc.X)[1], che ha il compito di prendere tutti i provvedimenti necessari a portare il sistema nel runlevel richiesto.

Un esempio di sistema attuale che utilizza il metodo System V è Debian, mentre Slackware preferisce il metodo BSD.

Processi orfani[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Processo orfano.

Altro importante compito delegato al processo init è quello di prendere in affidamento i processi orfani, che altrimenti non avrebbero più un parent PID valido, assicurandosi di recuperare alla loro terminazione il loro valore di uscita tramite le chiamate di sistema wait() o waitpid(), in modo da evitare che essi restino nel sistema come processi zombie.

Note[modifica | modifica sorgente]

  1. ^ a b rc è l'abbreviazione di run commands

Voci correlate[modifica | modifica sorgente]

  • UNIX
  • runlevel
  • initng - Candidato sostituto di init per sistemi unix-like
  • launchd - Un altro progetto che mira a rimpiazzare init, cominciato da membri da Apple
  • upstart - Usato da Ubuntu e in via di adozione anche in Fedora

Collegamenti esterni[modifica | modifica sorgente]

Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica