Sistemi Operativi
Lo scopo principale di un sistema 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 ed il resto del computer.
Se tutto quello che fa il sistema operativo è supportare le applicazioni, perché è necessario un libro intero
solo per poterlo usare? Ci sono varie attività di manutenzione (senza considerare i problemi più grossi) che è
necessario fare. Nel caso di Linux, 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 (apologia
per gli utenti DOS, OS/2 e VMS. Ho usato tutti e tre, e ognuno ha i suoi lati positivi). 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 (questo fu in realtà determinato
dall'hardware in cui originariamente funzionava Unix. Per qualche strana ragione, il sistema operativo risultante era molto pratico
su altri hardware. Il progetto di base viene ancora usato dopo venticinque anni). 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. Questa guida vi insegnerà quali strumenti usare nelle varie situazioni e come collegarli tra loro.
La parte chiave di un sistema operativo è chiamata "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
|