Lo scopo principale di un sistema operativosistema operativo è supportare i programmi che eseguono realmente il lavoro a cui si è interessati. Per esempio, state usando un editor per creare un documento. Questo editor non può lavorare senza l'aiuto del sistema operativo-- necessita di questo aiuto per interagire con il terminale, i file e il resto del computer.
Se tutto quello che fa il sistema operativo è supportare le applicazioni, perché è necessario un libro intero solo per usare il sistema operativo? Ci sono varie attività di manutenzione (senza considerare i problemi più grossi) che è necessario fare. Nel caso di , il sistema operativo contiene anche una serie di ``mini-applicazioni'' per aiutare ad eseguire il lavoro in modo più efficiente. Conoscere il sistema operativo può essere utile quando non si lavora con grosse applicazioni.
I sistemi operativi (in breve OS) possono essere semplici e
minimalisti, come il
DOS , o grandi e complessi, come OS/2 o
VMS .
Unix tenta di essere una
via di mezzo. Mentre fornisce più risorse e fa più cose dei primi sistemi
operativi, non tenta di fare tutto. Unix è stato
originariamente progettato come una semplificazione di un sistema
operativo chiamato Multics.
La filosofia originale di Unix fu di distribuire le funzionalità in
piccole parti, i programmi.
In questo modo si possono aggiungere nuove funzionalità e
caratteristiche combinando le piccole parti
(programmi) in nuovi modi. E se appaiono nuove utility (e succede), si
possono integrare con i vecchi strumenti. Sfortunatamente i programmi
tendono con il tempo a crescere e acquistare nuove caratteristiche, ma la
flessibilità rimane. Mentre sto scrivendo questo documento, per
esempio, sto usando attivamente questi programmi: fvwm per gestire
le mie ``finestre'', emacs per editare il testo, LaTeX per
formattarlo, xdvi per vedere l'anteprima, dvips per preparare la
stampa e lpr per stamparlo. Se un domani mi procurassi un visualizzatore
dvi migliore, lo potrei usare al posto di xdvi senza cambiare il resto
della mia configurazione. In questo momento, il mio sistema ha
trentotto programmi che girano simultaneamente. (La maggior parte
sono programmi di sistema che ``dormono'' finché non hanno qualcosa
di specifico da fare).
Quando si usa un sistema operativo, si vuole minimizzare la quantità di lavoro necessaria per ottenere lo scopo. Unix fornisce molti strumenti per aiutarvi, ma solo se sapete cosa fanno. Passare ore tentando di fare qualcosa e alla fine arrendersi non è molto produttivo. Questo libro vi insegnerà quali strumenti usare nelle varie situazioni, e come collegarli tra loro.
La parte chiave di un sistema operativo è chiamata ``kernel''kernel (nucleo). In molti sistemi operativi, come Unix, OS/2 o VMS , il kernel fornisce ai programmi le funzioni da usare e gestisce la sequenza della loro esecuzione. Semplicemente dice che il programma A può avere un certo tempo a disposizione, il programma B un altro tempo, e così via. C'è sempre il kernel che gira: è il primo programma ad essere inizializzato quando si accende il sistema, e l'ultimo a fare qualsiasi cosa quando lo si ferma.