Concetti Chiave
- Un programma diventa un processo quando viene eseguito, e la sua creazione avviene su richiesta di un altro processo già esistente.
- I processi formano una gerarchia ad albero con un processo principale, generalmente l'eseguibile init, avviato dal kernel.
- Il kernel può avviare qualsiasi programma come processo principale, ma preferisce l'eseguibile /sbin/init per un sistema standard.
- Il kernel gestisce una tabella dei processi per monitorare il loro stato e registrare varie informazioni come nome, ID e argomenti.
- Vengono tracciati anche l'ID del processo genitore, l'ID utente e gruppo, e il dispositivo di comunicazione, se controllato da un terminale.
In linea di principio, il programma avviato dal kernel come processo principale, può essere qualunque cosa, anche una shell (tenendo conto, comunque, che il kernel predilige l'eseguibile /sbin/init), ma in tal caso si tratta di applicazioni specifiche e non di un sistema standard.
Qui si preferisce utilizzare il nome Init per identificare il processo principale, tenendo conto che questo si concretizza generalmente nell'eseguibile init.
Il kernel gestisce una tabella dei processi che serve a tenere traccia del loro stato. In particolare sono registrati i valori seguenti:
il nome dell'eseguibile in funzione;
gli eventuali argomenti passati all'eseguibile al momento dell'avvio attraverso la riga di comando;
il numero di identificazione del processo;
il numero di identificazione del processo che ha generato quello a cui si fa riferimento;
il nome del dispositivo di comunicazione se il processo è controllato da un terminale;
il numero di identificazione dell'utente;
il numero di identificazione del gruppo;