Fin dall'inizio, Unix è stato basato su semplici mattoncini fondamentali che sono al contempo potenti e flessibili. I componenti di base di un sistema Unix sono file, utenti, processi e dati. I programmi sono idealmente strumenti piccoli e semplici che eseguono un solo compito, ma lo fanno bene. Molti programmi possono agire da pipe (una condotta): leggono i dati da un lato e li scrivono in output dall'altro lato (stdin e stdout, ma c'è anche stderr che generalmente riceve l'output di errore).

Collegando svariati programmi insieme, è possibile costruire strumenti complessi in modo semplice e veloce, senza preoccuparsi della complessità. In Unix i programmi tendono ad essere altamente modulari.

Sebbene questi principi non siano stati seguiti pedissequamente nei 30 e più anni di vita di Unix, i principi fondamentali sono ancora validi e sono alla base della maggior parte dei sistemi Unix, così come di vari cloni o derivati come i sistemi BSD e GNU/Linux. Questa filosofia di progettazione modulare può essere chiaramente ritrovata in molti dei programmi e sottosistemi che essi contengono.

Quindi, ripetendo: "Un piccolo programma fa un solo piccolo compito, ma lo fa bene e in modo efficiente; l'"utente" (che può di fatto essere l'amministratore di sistema) può quindi combinare molti di questi programmi per ottenere il risultato voluto." (L'autore di questa pagina ha scritto un programma C per contare le occorrenze di parole in un testo, per accorgersi solo in seguito che ""cat file || tr \ \\n || sort || uniq -c" fa la stessa cosa... e in modo più veloce. ;-) )

L'amministrazione di sistema in Unix è generalmente effettuata o manipolando l'hardware (cambiando i nastri, ecc.), modificando le impostazioni dei file system usando comandi che sono frontend per le chiamate di sistema (chmod, chown, mount, ecc.), installando software e patch fornite dai produttori, compilando e installando le versioni più recenti del software libero o, cosa più importante, scrivendo e modificando (con un editor di testo) script e file di configurazione. Le funzioni relative al sistema operativo che sono effettuate invocando script di shell danno all'amministratore un alto grado di controllo sul comportamento del sistema. I programmatori Unix fanno sì che i loro programmi leggano dei file di configurazione: di fatto, la configurazione può implementare un linguaggio di scripting, come modo più diretto per dare all'amministratore il controllo sulle funzionalità del programma. Occasionalmente i produttori (o un amministratore capo) fornisce un sistema di amministrazione con menu o con interfaccia grafica, allo scopo di semplificare i vari compiti, ma il Metodo Unix è quello per cui piccoli file di testo vengono modificati e piccoli programmi vengono eseguiti. Dato che una semplificazione non può coprire tutte le sottigliezze (è impossibile scrivere programmi reali semplicemente con interruttori) gli amministratori deve comunque sapere ciò che accade sullo sfondo.

In questo caso è valido il concetto di "complessità non profonda".

System V e BSD a confronto

La maggior parte dei sistemi simil-Unix si colloca in un punto di mezzo tra System V e BSD. I sistemi simil-BSD tendono a seguire il Metodo Unix molto fedelmente, così come descritto prima. Sono specificatamente indirizzati a chi vuole avere un controllo totale in una piccola confezione. System V è indirizzato più agli ambienti "Aziendali", ed è progettato con interfacce e sottosistemi che lo rendono più amichevole a... ambienti dove è richiesto un collegamento tra le parti. In particolare è più facile che System V abbia metodi con cui software di terze parti possa essere integrato nel sistema con il minimo sforzo di amministrazione. Un esempio chiaro è la struttura degli script di inizializzazione del sistema che vengono eseguiti all'avvio del sistema. Mentre i sistemi BSD tendono ad avere un piccolo numero di script che vengono mantenuti a mano dall'amministratore, System V ha un insieme di directory che contengono script più piccoli, ciascuno dei quali fa una sola cosa. Mentre il metodo BSD è un metodo più diretto per un singolo amministratore, il metodo System V, senza contraddire i principi del Metodo Unix, permette ai pacchetti software di installare loro stessi script diminuendo le probabilità di avere errori.


CategorySystemAdministration | CategoryCommandLineInterface