Questo capitolo dà una panoramica di un sistema Linux: per
prima cosa verranno descritti i principali servizi forniti, poi,
senza scendere nei dettagli, i programmi che implementano tali
servizi. Lo scopo di questo capitolo è dare delle nozioni sul
sistema in generale, le singole componenti sono descritte in
altre parti della guida.
Un sistema operativo UNIX è formato da un
kernel e da programmi di
sistema, oltre ad applicazioni
con cui si fa il vero lavoro. Il kernel è il cuore del sistema
operativo[1]:
tiene traccia dei file sul disco, avvia i programmi e li fa girare
contemporaneamente, assegna la memoria ed altre risorse ai vari
processi, scambia i pacchetti con la rete e così via. Il kernel
fa pochissime cose da solo, ma fornisce gli strumenti con cui si
possono costruire tutti i servizi; evita anche che chiunque acceda
all'hardware direttamente, forzando tutti a utilizzare gli strumenti
che fornisce: in questo modo protegge gli utenti l'uno dall'altro.
Gli strumenti forniti dal kernel vengono usati attraverso
chiamate di sistema: consultate le pagine man
della sezione 2
per ulteriori informazioni su questo argomento.
I programmi di sistema usano gli strumenti forniti dal kernel
per implementare i vari servizi propri di un sistema operativo.
I programmi di sistema, come tutti gli altri programmi, girano
`sopra al kernel', in quella che viene chiamata modalità
utente (user mode).
La differenza tra i programmi di
sistema e gli applicativi è lo scopo: le applicazioni sono
concepite per fare delle cose utili (o per giocare, se si tratta di
un gioco), mentre i programmi di sistema servono per fare funzionare
il sistema stesso. Un word processor è un'applicazione,
telnet
è un programma di sistema. La differenza è comunque spesso non ben
definita, ed è importante solo per chi è abituato a dividere tutto
in categorie.
Un sistema operativo può anche contenere dei compilatori e le
corrispondenti librerie (sotto Linux in particolare GCC e la libreria
C), anche se non c'è bisogno che tutti i linguaggi di programmazione ne
siano parte integrante. Ne possono fare parte
anche la documentazione, e qualche volta anche dei giochi.
Tradizionalmente, il sistema operativo è stato definito come il
contenuto del nastro o dei dischi di installazione; con Linux non è
così chiaro, perché è sparso su tutti i siti FTP del mondo.