Inquadramento Storico
Le origini del sistema operativo UNIX risalgono al 1969 quando venne sviluppato nei Bell
Laboratories dell' AT&T. L'obiettivo era quello di realizzare un ambiente di calcolo
multiprogrammato portabile per macchine di medie dimensioni
Le prime versioni di Unix
Nel 1970 viene realizzata la prima versione di UNIX, interamente sviluppata nel linguaggio
assembler del calcolatore PDP-7; questa versione era multiprogrammata e monoutente.
Nel 1973 Unix viene realizzato nel linguaggio di programmazione C; essendo il C un linguaggio di
alto livello, il suo utilizzo nella realizzazione di Unix ha determinato vari vantaggi:


Elevata portabilità: capacità di fornire lo stesso ambiente di esecuzione e di sviluppo su
architetture diverse. Questa prerogativa, decisamente inusuale all'epoca in cui Unix è nato, è
stata la chiave di volta nella capillare diffusione che ha raggiunto nei giorni nostri.
Leggibilità: la struttura del sistema è facilmente comprensibile e quindi apprezzabile da
parte della comunità scientifica e accademica. Per questo motivo, Unix è stato utilizzato
dagli anni 80 in avanti per la formazione di intere generazioni di persone operanti nel settore
dell'informazione.
Linux
Una delle versioni di Unix attualmente più diffuse è Linux, un sistema operativo di tipo Unix
(System V) di pubblico dominio, disponibile su varie architetture (Intel x86, SUN sparc, motorola
68k, PowerPC, Alpha, MIPS).
Linux è nato nel 1991, per iniziativa di Linus Torvalds, uno studente dell'Università di Helsinki che,
per coltivare un interesse personale sviluppo il kernel di Minix (una versione semplificata di Unix,
definita in ambito accademico da A. Tanenbaum) per Personal Computer. I sorgenti della prima
versione di Linux furono messi a disposizione attraverso la rete Internet. Questa possibilità invogliò
molti programmatori a scaricare il codice di Linux per estendere il sistema con nuove o più
efficienti funzionalità. Lo sviluppo di Linux, quindi, da una sola persona passò ad un gruppo di
persone numeroso ed aperto, distribuite su una rete geografica. In questo modo nel 1994 viene
prodotta la prima versione completa ed affidabile del sistema operativo. Negli anni seguenti Linux
ha avuto una diffusione enorme grazie alle sue caratteristiche di affidabilità ed efficienza, che lo
mettono in diretta competizione con i corrispondenti rivali commerciali. La distribuzione di Linux è
gratuita: attualmente esistono numerosi siti Internet presso i quali è possibile scaricare tutto il
software necessario per l'installazione del sistema operativo. Nonostante questo, esistono anche
delle distribuzioni "commerciali" di Linux, che offrono tutto il software di Linux su CDROM
facendo pagare agli utenti non una licenza, ma semplicemente il lavoro necessario alla realizzazione
del CDROM.
L'architettura del sistema operativo Unix
Caratteristiche principali
Le caratteristiche del sistema Unix possono riassumersi nei seguenti punti:





Multiutente: più utenti possono interagire contemporaneamente (da terminali diversi) con il
sistema, che evita interferenze tra le attività dei vari utenti. All'interno del sistema ogni
utente è individuato univocamente da un nome logico (lo username In ogni sistema è
definito l'utente root, che rappresenta l'amministratore di sistema, e che, in generale, non ha
alcuna limitazione nell'accesso alle risorse del sistema.
Multiprogrammato: il suo nucleo, può supportare la contemporanea esecuzione di
processi, gestiti a divisione di tempo (time sharing)
Gestione della memoria virtuale: il sistema di gestione della memoria in Unix si basa su
paginazione e segmentazione (per mettere a disposizione dell’utente più memoria rispetto a
quela disponible)
Portabile: grazie all'impiego del linguaggio C nella realizzazione del sistema, il sistema
gode di un'elevata portabilità, ed è oggi disponibile su una vastissima gamma di architetture.
Ambiente di sviluppo per programmi C: Unix mantiene tuttora uno stretto legame con il
linguaggio C. Questa relazione si manifesta anche nella disponibilità all'interno delle utilità
di sistema di un insieme piuttosto ricco di strumenti per lo sviluppo di applicazioni C (tra i
quali il compilatore cc).
Interazione con l'Utente
Il sistema Unix prevede che 'interazione dell'utente avvenga attraverso un processore comandi (lo
shell) che interpreta ed esegue le richieste dell'utente formulate dall'utente attraverso opportune
direttive (i comandi). In particolare, allo shell è associato un vero e proprio linguaggio che definisce
il vocabolario e la sintassi dei comandi, che l'utente deve necessariamente conoscere per potere
interagire con il sistema.
Tuttavia, nelle moderne versioni di Unix l'interazione dell'utente con il sistema è semplificata grazie
all'introduzione di interfacce grafiche (simili a quella prevista dal sistema operativo Windows) che
permettono di specificare le proprie richieste in modo più semplice ed intuitivo mediante
l'introduzione di finestre, icone, menu da utilizzare con un dispositivo di puntamento (il mouse).
Modalità di interazione
Lo shell può acquisire i comandi dalla linea di comando, oppure da un file (detto file comandi).
Nel primo caso si parla di modalità interattiva di esecuzione: l'utente può impartire un comando
alla volta allo shell, digitandolo direttamente dalla tastiera al prompt della linea di comando.
Ogni shell prevede un prompt caratteristico: per lo shell di Bourne il classico prompt è il
carattere "$".
Nel secondo caso l'interazione avviene tramite file comandi: l'utente indica dalla linea di
comando il nome del file comandi. Lo shell eseguirà, nello stesso ordine con cui appaiono nel
file, i comandi specificati. Ogni volta che viene invocato un comando, lo shell genera un
processo dedicato all'esecuzione del comando.
Sintassi di comandi

La sintassi tipo di un comando è la seguente:
$ nomecomando [opzioni] [lista degli argomenti]
o
o
le opzioni indicano modalità specifiche di esecuzione del comando
la lista degli argomenti contiene i parametri del comando
Il File System
Struttura del File System
Il file system è la struttura all'interno della quale vengono memorizzati e gestiti i file.
In generale i file possono essere raggruppati in direttori (o cartelle). Una delle caratteristiche
fondamentali del file system di Unix è l'omogeneità: ogni risorsa del sistema è rappresentata
all'interno del file system sotto forma di file. In particolare, esistono tre tipi di file:



il file ordinario: rappresenta un insieme di blocchi di dati effettivamente allocati in
memoria di massa;
il direttorio
il file speciale: rappresenta un dispositivo fisico collegato al sistema;
Questa omogeneità di rappresentazione di file e dispositivi consente di uniformare le modalità di
input e output dei processi da/verso file e periferiche. Ad esempio, la stampa su un certo dispositivo
di output può essere effettuata con gli stessi strumenti utilizzabili per la stampa su file.
Organizzazione logica del File System di Unix
Il file system di Unix ha una struttura gerarchica che può essere rappresentata da un grafo ad albero
(v. Figura 2) , in cui:



esiste un direttorio principale che rappresenta la radice dell'albero (indicata con il simbolo
"/");
i direttori sono, in generale, nodi del grafo;
i file (ordinari e speciali) rappresentano le foglie dell'albero.
Nomi di file e di direttori Unix
Il nome di un file in Unix indica il cammino da compiere per raggiungere il file a partire da un
direttorio di riferimento.
In particolare, per riferire un file (o un direttorio), è possibile utilizzare due modalità:


nome relativo: indica la posizione del file rispetto direttorio corrente;
nome assoluto: indica la posizione del file rispetto al direttorio radice ("/").
Le convenzioni da adottare per la costruzione di nomi di file in Unix sono:




"/" è il direttorio radice
"." è il direttorio corrente
".." è il direttorio padre del direttorio considerato
ogni passo del cammino è separato dal successivo mediante il simbolo "/".
Nell'ipotesi che il direttorio corrente sia home:


per riferire il file F4 è possibile utilizzare :
o il nome assoluto:
/home/cesare/F4
o il nome relativo:
cesare/F4
analogamente, per riferire il direttorio tmp si possono usare indifferentemente:
o il nome assoluto:
/usr/tmp
o il nome relativo:
../usr/tmp
File e Direttori
Attributi del file
Ogni file Unix è caratterizzato da un insieme di attributi, tra cui:




Tipo: indica se il file è ordinario, direttorio o file speciale (cioè, rappresenta un dispositivo)
Proprietario e Gruppo: indicano rispettivamente chi è l'utente proprietario del file e qual è
il gruppo di appartenenza del proprietario.
Dimensione: è il numero di blocchi occupati dal file in memoria di massa.
Data: indica la data dell'ultima modifica effettuata sul file;


I bit di protezione: è un insieme di 12 bit che sintetizza la politica di protezione da
applicare al file; si vedrà nel capitolo 7 in che modo è possibile specificare tale politica.
Vettore di Indirizzamento: è costituito da un insieme di indirizzi (tipicamente 15) che
consentono di individuare la collocazione dei vari blocchi componenti il file all'interno della
memoria di massa.
Sicurezza e Protezione
Come ogni sistema operativo multiutente, anche Unix affronta e risolve alcune problematiche
relative alla sicurezza ed alla protezione delle risorse, offrendo alcune funzionalità di sicurezza
come l'autenticazione degli utenti ed il controllo nell'accesso delle risorse.
Autenticazione
Il sistema Unix controlla l'accesso degli utenti utilizzando un meccanismo di autenticazione basato
su password.
Utenti e Guppi
Ad ogni utente viene assegnato uno username ed un groupname.
L'elenco degli utenti (e relativi attributi) del sistema è contenuto all'interno del file di sistema
/etc/passwd. Questo file, leggibile da ogni utente, può essere modificato soltanto dall'utente root.
Per motivi di sicurezza, nel file /etc/passwd le password degli utenti vengono memorizzate in forma
crittografata. Ad ogni password, cioè, viene applicato un algoritmo di crittografia che la trasforma
in modo tale che risalire alla password vera e propria da quella crittografata sia così arduo, da
rendere questa evenienza praticamente impossibile.
Accesso al sistema
L'accesso di ogni utente al sistema, avviene attraverso il login. In questa fase, l'utente deve fornire
al sistema i propri username e password, affinchè possa avvenire l'autenticazione.
Solo se l'autenticazione ha successo (cioè, se la coppia di informazioni (username, password) è
presente nel file /etc/passwd), l'utente ottiene l'accesso al sistema.
La protezione delle risorse
Nel sistema Unix il meccanismo che controlla l'accesso alle risorse da parte degli utenti è basato
sulle liste di controllo degli accessi, o ACL : per ogni risorsa sono stabiliti i diritti di accesso
associati ad ogni utente. Ricordando che in Unix ogni risorsa è presente nel file system come file
(v.capitolo 4), la protezione riguarda essenzialmente il controllo degli accessi a file e direttori.
Come già accennato nel paragrafo 4.2, ad ogni file è associato un utente proprietario: il proprietario
stabilisce la politica di protezione da applicare al file, concedendo o negando agli altri utenti il
permesso di accedervi.
In particolare, per ogni file sono previste tre modalità di accesso:



Lettura: il contenuto del file può essere letto;
Scrittura: il contenuto del file può essere modificato;
Esecuzione: il file può essere eseguito; in questo caso è necessario che il file contenga del
codice eseguibile o una sequenza di comandi Unix (nel caso di file comandi).
Per ogni file l'ACL è sintetizzata da 9 bit (i bit di protezione), che indicano quali sono i diritti di
accesso al file per ogni utente del sistema.
In particolare, dato un file, ogni utente del sistema può rientrare in una delle tre categorie seguenti::



User: è il proprietario;
Group: l'utente non è il proprietario, ma appartiene al gruppo del proprietario;
Others: l'utente non appartiene al gruppo del proprietario.
I 9 bit di protezione sono suddivisi in tre triplette: ogni tripletta è associata ad una delle tre categorie
di utenti (User, Group e Others), come mostrato in Figura 6 .
I tre bit di ogni tripletta rappresentano rispettivamente il diritto di lettura (indicato con "r"), il diritto
di scrittura (indicato con "w") ed il diritto di esecuzione (indicato con "x"): se un certo bit è settato,
significa che il diritto di accesso che rappresenta è concesso agli utenti della categoria a cui la
tripletta è associata; se invece ha valore 0, il diritto è negato.
Grazie ai bit di protezione, il sistema operativo è in grado di controllare gli accessi alle risorse.
Comandi relativi a sicurezza e protezione


Cambio della password: ogni utente può, con il comando passwd, sostituire la propria
password con una nuova stringa.
Visualizzazione dei bit di protezione: I bit di protezione, l'utente proprietario ed il gruppo
associati ad un file possono essere visualizzati mediante il comando ls con opzione -l.
Modifica dei bit di protezione: l'utente proprietario (o l'utente root) può configurare i bit
di protezione associati ai propri file con il comando chmod.
Comandi per la gestione del File System
L'insieme dei comandi Unix per la gestione del file system è piuttosto ricco: in questa sede verranno
descritti ed esemplificati solo alcuni dei comandi di uso più comune, rinviando eventualmente al
manuale di riferimento del sistema, per un approfondimento sulla gestione del file system.
Comandi per la gestione dei direttori

Visualizzazione del direttorio corrente: il comando pwd restituisce come risultato il nome
assoluto del direttorio sul quale l'utente è correntemente posizionato.

Cambio di direttorio: per modificare il direttorio corrente si utilizza il comando cd, che
richiede come argomento il nome (assoluto o relativo) del nuovo direttorio.

Visualizzazione del contenuto di un direttorio: si utilizza il comando ls , che visualizza la
lista dei nomi di file e di direttori contenuti nel direttorio dato. Il comando ls prevede che il
direttorio da ispezionare sia specificato come argomento; in assenza di argomenti l'azione
del comando viene riferita al direttorio corrente.

10 caratteri che indicano il tipo di file e la politica di protezione (si veda il paragrafo 7.2) applicata ad esso
(il carattere "d", indica che si tratta di un direttorio);
l'utente proprietario del file ed il relativo gruppo di appartenenza;
la dimensione in blocchi;
la data e l'ora di modifica;
il nome del file.





Creazione di direttori: il comando per la creazione di un nuovo direttorio è mkdir, che
richiede come argomento il nome del direttorio da creare:

Cancellazione di direttori: per eliminare un direttorio esistente si utilizza il comando
rmdir, che richiede la specifica del direttorio da eliminare.Affinchè un direttorio sia
cancellabile, è necessario che non contenga alcun file
Comandi per la gestione dei file

Cancellazione di file: si effettua utilizzando il comando rm, con uno o più argomenti che
indicano i nomi dei file da cancellare. Il comando rm può servire anche per eliminare
direttori non vuoti; in questo caso va utilizzato con l'opzione -r.

Copia di file: il comando cp consente di duplicare file. Per eseguire la copia di un file in un
altro, la sintassi del comando cp prevede che vengano specificati due argomenti: il primo
rappresenta il nome del file da copiare (l'origine della copia) ed il secondo indica il nome da
attribuire alla copia (la destinazione della copia). Nel caso in cui il file destinazione esista
già, il comando provoca la perdita del contenuto preesistente.

Visualizzazione del contenuto di file: il comando cat visualizza il contenuto dei file
specificati come argomenti.

Ricerca di un file: con il comando find è possibile localizzare un file all'interno del file
system (o di un sottoalbero del file system), conoscendone il nome.
La ridirezione
Le già evidenziate caratteristiche di omogeneità delle risorse nel sistema Unix, rendono possibile la
gestione dei dispositivi di I/O in modo del tutto analogo a quanto visto finora per i file.
A questo scopo, esistono degli operatori di ridirezione che consentono di modificare l'associazione
tra canale di Input o Output di un comando, e file.

Ridirezione in uscita: mediante l'operatore ">" è possibile deviare l'output di un comando
su un qualunque file o dispositivo.
Utilizzando l'operatore di ridirezione in uscita si sostituisce il dispositivo standard di output con un
file o altro dispositivo: pertanto nei due esempi precedenti, non viene prodotto alcun risultato sullo
standard output (monitor).

Ridirezione in ingresso: i comandi filtro (come visto in 3.1) sfruttano il canale di input per
l'acquisizione dei dati. Con l'operatore di ridirezione in ingresso (rappresentato dal simbolo
"<") è possibile sostituire al dispositivo standard di input (normalmente associato al canale
di input) un qualunque altro file.

Ad esempio, il comando filtro sort, produce sul canale di output le linee di testo fornite
attraverso il canale di input ordinate in ordine alfabetico.

Ridirezione in ingresso ed in uscita possono essere utilizzate in modo congiunto, quando si
vogliono deviare entrambi i canali di input ed output su file (o dispositivi differenti da quelli
standard).
I Processi in Unix
Come più volte è stato ricordato, Unix è un sistema operativo multiprogrammato: il sistema può
quindi supportare la contemporanea esecuzione di più processi, eventualmente interagenti tra loro
Processi Pesanti
Il processi Unix sono processi pesanti: non esiste cioè la possibilità di condivisione di variabili tra
processi. Esiste, invece, la possibilità di condividere file (e quindi, più in generale, risorse): processi
diversi possono quindi, in generale, accedere contemporaneamente allo stesso file.Va comunque
sottolineato che in molte delle versioni attualmente commercializzate di Unix vengono fornite
librerie addizionali (si vedano ad esempio le librerie specifiche di Sun-OS) che forniscono funzioni
per la creazione e la gestione di processi leggeri
Rientranza del codice
Tra le caratteristiche più importanti del processo Unix, vi è la rientranza del codice: più processi
possono condividere lo stesso codice; più processi, cioè, possono eseguire lo stesso programma.Il
codice non consente quindi di individuare il processo in modo univoco: per questo motivo il
sistema, all'atto della creazione, assegna ad ogni processo un valore intero (il PID, o Process
IDentifier) che consente di identificarlo univocamente.
Creazione di Processi
Il meccanismo fondamentale a supporto del concetto di processo è il meccanismo di creazione:
attraverso opportuni strumenti, ogni processo è in grado di creare altri processi. Lo strumento per la
creazione dei processi è costituito dalla chiamata di sistema fork, mediante la quale un processo
può creare un nuovo processo che condividerà il codice con il creatore, e farà riferimento ad aree
dati ottenute per copia dalle aree dati del creatore. Ogni processo creato può, a sua volta generare
altri processi, che possono generarne altri, ecc. Si vengono così a formare delle gerarchie di processi
(come illustrato in Figura 3) in cui ogni processo creatore assume il ruolo di padre, mentre il
processo creato è un figlio. Ogni padre può sospendersi in attesa della terminazione dell'esecuzione
del figlio, e rilevarne lo stato di terminazione; la stessa cosa non è possibile per il processo figlio.
Lo scheduling in Unix
Unix è un sistema a time sharing. In particolare, ad ogni processo è associato un livello di priorità.
Lo scheduler esegue un algoritmo per l’assegnazione della cpu (scheduling)) per i processi a diverse
priorità. Le priorità possono variare in funzione di alcuni parametri come ad esempio, il tempo di
inattività o il tipo di operazioni che il processo è in attesa di eseguire
Interazione tra processi: comunicazione e sincronizzazione
Come già visto, in Unix non è consentita la condivisione di variabili tra processi. Per questo motivo,
i processi, facendo riferimento al modello ad ambiente locale, possono interagire essenzialmente in
due modi:


Sincronizzazione mediante l'invio di segnali;
Comunicazione attraverso scambio di messaggi.
Sincronizzazione
Attraverso i segnali, un processo (che svolge il ruolo di mittente) genera un evento che può essere
rilevato da uno o più processi (che svolgono il ruolo di destinatari). Il destinatario di un segnale, in
generale, interromperà la propria esecuzione per reagire alla ricezione di un segnale. Nel sistema
Unix esistono vari tipi di segnale, ad ognuno dei quali è associata un'azione di default che
stabilisce in che modo il destinatario deve reagire alla ricezione del segnale. Il processo destinatario,
tuttavia, ha la possibilità di sostituire all'azione di default associata ad un segnale un'azione diversa,
o eventualmente, di "mascherare" il segnale (in questo caso, esso non reagirà in alcun modo alla
ricezione del segnale
Comunicazione
I processi comunicanti sfruttano i meccanismi di comunicazione forniti dal sistema operativo, basati
sul concetto di pipe. La pipe è un canale di comunicazione bidirezionale che consente lo scambio di
messaggi (rappresentati da sequenze di caratteri) tra processi. In particolare, la pipe incorpora dei
meccanismi di sincronizzazione che permettono uno scambio di messaggi affidabile.
Comandi per la gestione dei processi

Monitoraggio dei processi: mediante il comando ps, un utente può ottenere informazioni
sui processi presenti nel sistema.
Il comando ps prevede delle opzioni che consentono di visualizzare informazioni più dettagliate sui
processi.

Gestione delle priorità dei processi: il comando nice permette modificare la priorità
associata al processo. Gli utenti normali possono solo decrementare la priorità dei processi.
Soltanto l' utente root può incrementarla.
Il supporto alla rete
L'evoluzione dell'informatica moderna ha definito uno scenario in cui la distribuzione delle risorse,
e la comunicazione tra sistemi sono diventate caratteristiche irrinunciabili per ogni sistema
operativo. Questa costante, decisa tendenza nella direzione dei sistemi distribuiti ha portato allo
sviluppo e alla diffusione delle reti di calcolatori, e, in particolare, ad Internet.
Come si vedrà nel seguito, il sistema operativo Unix incorpora dei meccanismi e dei servizi che,
sfruttando i protocolli di comunicazione tipici della rete Internet, consentono il collegamento di
sistemi Unix alla rete. Questo aspetto spiega perché, in origine, la maggior parte dei nodi della rete
Internet utilizzava il sistema operativo Unix: Unix, infatti, ha rivestito un ruolo fondamentale nello
sviluppo e nella espansione della rete, rappresentando per molti anni il sistema operativo di
riferimento in ambiente Internet.
Il supporto alla comunicazione tra processi nella rete
In particolare, Unix fornisce supporto alla comunicazione tra processi in esecuzione su nodi diversi
della rete. A questo scopo, uno degli strumenti disponibili è la socket. La socket rappresenta un
punto di accesso alla rete che permette ai processi di scambiare messaggi con altri processi nella
rete. Il meccanismo di comunicazione offerto dalle socket in una specifica libreria di sistema, è
realizzato mediante alcuni dei protocolli di comunicazione tipici della rete Internet.
I Servizi di rete
Alcuni dei più diffusi servizi Internet sono integrati all'interno del sistema operativo Unix. Tra
questi, ad esempio, citiamo il servizio telnet per effettuare il login presso nodi remoti, il servizio
ftp per il trasferimento di file tra nodi della rete e la posta elettronica, disponibile attraverso il
comando
mail.
Nel seguito vedremo brevemente le caratteristiche di questi servizi.
Login remoto
Ogni utente del sistema può effettuare un login presso un qualunque sistema collegato alla rete,
mediante il comando telnet. Il requisito essenziale affinchè il login possa avere successo è che
l'utente possegga un account presso il sistema remoto.
Superata la fase di login, come nel caso locale, all'utente viene presentato il prompt dello shell remoto: l'utente
anna può quindi interagire con il sistema remoto esattamente con le stesse modalità previste per il login locale.
Trasferimento di file
Il comando ftp consente il trasferimento di file tra nodi diversi, ed è realizzato con il protocollo
FTP (File Transfer Protocol).
ftp
è, in realtà, un'applicazione che prevede un proprio linguaggio comandi per l'interazione con
l'utente. Tra i comandi più comuni ricordiamo:




open e close, rispettivamente per il collegamento e la chiusura della connessione con il
server remoto;
get e put, per il trasferimento di un file rispettivamente da e verso il file system del server
remoto;
dir, per visualizzare il contenuto di direttori del server remoto;
cd, per posizionarsi in un dato direttorio del server remoto
Posta Elettronica
Gli utenti di sistemi Unix possono scambiarsi messaggi utilizzando il servizio di posta elettronica,
realizzato mediante il protocollo SMTP (Simple Mail Transfer Protocol). Si può accedere al
servizio di posta elettronica utilizzando il comando mail. Ogni utente è univocamente individuabile
attraverso un indirizzo il cui formato è "nome@host", dove host è il nome della macchina presso la
quale l'utente di username uguale a nome riceve la posta.
Gestione di un sistema Unix
Come in ogni sistema multiutente, anche in Unix è necessario prevedere la presenza di un utente
amministratore del sistema, il cui ruolo è quello di occuparsi della gestione delle risorse del sistema,
della gestione degli utenti, della riconfigurazione del sistema in caso di modifiche o aggiunte di
risorse, e di intervenire nel caso di malfunzionamenti. In Unix questo ruolo può essere ricoperto
dall'utente root, che, come visto in precedenza, non ha limitazione alcuna nell'accesso alle risorse
del sistema (per questo motivo, l'utente root viene anche chiamato super-user). Nel seguito
verranno descritte alcune caratteristiche dei Unix relative all'amministrazione di sistema.
Gestione degli utenti
Le tipiche operazioni di gestione degli utenti che il super-user di ogni sistema Unix compie sono la
creazione e l'eliminazione di utenti e gruppi.
File di sistema
Come già visto, le informazioni relative ad ogni utente sono memorizzate nel file /etc/passwd, In
modo del tutto analogo, nel file /etc/group vengono memorizzate le informazioni relative ai gruppi
di utenti. In particolare, in questo file viene realizzata l'associazione tra groupname e group-id.
Creazione e rimozione di utenti
In Unix non esistono comandi specifici per la definizione di nuovi utenti; quasi sempre, però, ogni
diversa versione di Unix propone strumenti proprietari (non standard, ma di solito più user-friendly)
che
assistono
l'amministratore
di
sistema
nella
gestione
degli
utenti.
In questa sede, tuttavia, parleremo delle procedure da effettuare nel caso più generale (cioè, in
assenza di tool), rinviando eventualmente ai manuali delle varie realizzazioni per gli stumenti non
standard. La creazione di un nuovo utente è una procedura che richiede le seguenti fasi:




aggiungere una nuova linea al file /etc/passwd (con uno strumento di editing) contenente
la definizione del nuovo utente , con il campo della password vuoto.
creare la home directory del nuovo utente;
attribuire la proprietà della home directory (creata al punto precedente) al nuovo utente;
creare una password iniziale per l'utente (effettuando un login con il nuovo username e
utilizzando il comando passwd).
Più semplicemente, la rimozione di un nuovo utente si effettua eliminando dal file /etc/passwd
la linea in cui è definito l'utente, e cancellando la home directory dell'utente dal file system.
Gestione delle risorse
Come già visto, in Unix tutte le risorse sono rappresentate da file. Per ogni amministratore di
sistema la gestione del file system è quindi di importanza fondamentale, in quanto dall'integrità del
file system dipende la vita del sistema stesso. In particolare, i dispositivi sono collocati all'interno
del direttorio /dev. La lista di tutti i dispositivi del sistema è quindi visualizzabile, come al solito,
con il comando ls.
L'installazione di ogni nuovo dispositivo richiederà quindi l'aggiunta del corrispondente file
speciale nel direttorio /dev.
Le Prime Versioni della Piattaforma Windows
Il sistema operativo Microsoft Windows nasce alla metà degli anni ottanta, con lo scopo di fornire
un'interfaccia grafica al sistema operativo MS-DOS, in modo da semplificare l'interazione degli
utenti con i primi Personal Computer.
Le prime due versioni di Windows hanno in realtà forti limitazioni, derivanti dallo stretto legame
con il sottostante sistema operativo MS-DOS. La prima versione che ottiene un importante successo
commerciale (Windows 3.0) è del 1991 e sfrutta le capacità dei processori Intel 80386. Nel corso di
pochi anni la piattaforma Windows diventa la principale piattaforma operativa per i Personal
Computer.
Nel 1995 Microsoft immette sul mercato Windows 95, che è un vero e proprio sistema operativo
per Personal Computer e supera i 100 milioni di copie vendute. Windows 95 è un sistema operativo
a 32 bit, monoutente e multitasking. In seguito, Microsoft produce Windows 98, Windows
Millennium e Windows XP, evoluzioni di Windows 95, per seguire le innovazioni dell'hardware e
soprattutto per agevolare l'utilizzo di Internet e delle Intranet aziendali.
Il Progetto Windows NT
Il progetto della versione NT (New Technology) della piattaforma Windows nasce nel 1989 e
rappresenta, anche dal punto di vista tecnico, un significativo passo in avanti compiuto da Microsoft
rispetto alle versioni 3.x e 95/98. La versione NT è un nuovo sistema operativo completamente
diverso dalle versioni precedenti e offre una piattaforma solida e robusta indirizzata al mercato dei
server aziendali e di rete Internet e Intranet. Windows NT presenta alcune significative differenze e
alcuni vantaggi rispetto alla piattaforma 95/98:



NT è portabile (esistono versioni per Intel, DEC Alpha, PowerPC, ecc.), a differenza di
95/98 che funziona solo sui processori Intel x86.
NT è un sistema operativo multiutente, con funzioni per l'autenticazione dell'utente e per il
controllo nell'accesso ai file.
supporta i sistemi multiprocessore (fino a 8 CPU), mentre Windows 95/98 supporta solo
macchine monoprocessore.
La Piattaforma Windows: Ragioni del Successo
Uno dei motivi principali del successo ottenuto da Windows è sicuramente legato alla presenza di
un'interfaccia grafica, che rende più semplice l'interazione tra utente ed elaboratore.
Inoltre, Windows si propone come ambiente di lavoro capace di spostare a livello di sistema
operativo l'integrazione tra le diverse funzioni applicative. È infatti Windows che fornisce il
supporto per scambiare informazioni tra applicazioni: per esempio gli appunti (clipboard) sono una
memoria temporanea di Windows che può essere usata per spostare dati tra due applicazioni
diverse, come per esempio da un documento Word a un foglio elettronico come Excel. In questo
modo un utente può scegliere i programmi applicativi che preferisce, lasciando al sistema operativo
il compito di integrarli
L'Evoluzione della Piattaforma Windows
Il motivo alla base dell'introduzione da parte di Microsoft di diverse versioni dell'ambiente
Windows (NT, 95/98, CE) era per offrire una piattaforma di lavoro di caratteristiche simili su un
vasto insieme di architetture hardware. Windows 95/98 è indicato per macchine poco potenti e con
poca memoria RAM a disposizione (4-8 MB); Windows NT è indicato come piattaforma di calcolo
per i desktop più potenti e Windows CE per i sistemi palmari, in cui la configurazione hardware è
sacrificata per favorire il minimo ingombro e la massima facilità di trasporto.
Considerato il notevole miglioramento delle caratteristiche hardware di tutti i desktop, Microsoft si
sta preparando al lancio di una nuova piattaforma, Windows 2000, che rappresenta un'evoluzione di
NT 4.0, con cui condivide molte caratteristiche architettoniche (stesso kernel, stesso modello di
interfaccia con i dispositivi, medesima organizzazione del file system, stessa architettura del sistema
di sicurezza). Windows 2000 dovrebbe essere l'unica piattaforma Microsoft per tutti i tipi di
desktop, dai meno potenti alle workstation multiprocessore, con l'esclusione dei soli sistemi
palmari.
La principale innovazione di Windows 2000 rispetto a NT 4 riguarda il ruolo centrale acquisito
dalla rete. L'integrazione in Internet e in Intranet aziendali è un obiettivo centrale, per il quale
Windows 2000 offre un nuovo insieme di servizi distribuiti e di rete. Alcuni dei principali servizi
presenti in Windows 2000 sono:


un'infrastruttura distribuita per la sicurezza, per rendere il sistema più sicuro contro attacchi
di possibili utenti malintenzionati;
un'infrastruttura centralizzata per l'amministrazione, per facilitare l'amministrazione di tutte
le macchine Windows presenti in una stessa rete locale.
Architettura del Sistema Operativo WindowsNT
Caratteristiche Principali
Le caratteristiche principali di Windows NT si possono così riassumere:







sistema operativo multiutente; più utenti possono accedere contemporaneamente al sistema,
che evita interferenza tra i diversi utenti;
sistema operativo multitasking a 32 bit; più processi possono eseguire concorrentemente
sulla macchina; ogni processo dispone di uno spazio di indirizzamento privato di 32 bit;
portabile; Windows NT è disponibile su diverse architetture (Intel, PowerPC, DEC Alpha,
MIPS, ecc.);
sicuro; Windows NT offre molte funzionalità di sicurezza, come l'autenticazione degli
utenti e la protezione dei file;
stessa interfaccia utente di Windows 95; questo rende l'ambiente di lavoro di NT intuitivo
per tutti gli utenti con una esperienza sviluppata su Windows 95/98;
architettura microkernel; molti dei servizi offerti da Windows NT sono eseguiti in modalità
utente;
supporto per sistemi multiprocessore
Architettura del Sistema Operativo WindowsNT
Architettura
L'architettura di Windows NT è strutturata in una serie di livelli, in maniera simile a quanto
visto per il sistema operativo Unix e può essere rappresentata come in Figura 1. Il livello più
basso è costituito dall'hardware, al di sopra del quale si trova il sistema operativo, chiamato
modulo esecutivo e incaricato della gestione dei processi , della memoria, e del file system. Il
modulo esecutivo mette a disposizione i propri servizi ai livelli superiori mediante l'interfaccia
costituita da servizi di sistema.Al di sopra dell'esecutivo si trovano i sottosistemi di ambiente,
che offrono l'interfaccia di programmazione mediante API (Application Program Interface). Le
applicazioni Windows NT possono richiedere le funzionalità del sistema operativo invocando
le Win32 API.
L'Interfaccia per il Programmatore
L'interfaccia fondamentale per la programmazione nella piattaforma Windows è l'API Win32. Le
API sono funzioni che un programmatore può utilizzare nel progetto di un'applicazione per
richiedere dei servizi al sistema operativo. Per esempio, se un'applicazione vuole cancellare un file,
può invocare la funzione DeleteFile(…), che fa parte della Win32 API.
La Win32 API rappresenta la specifica (in termini di nome, di parametri passati e di
comportamento) di tutte le funzioni che si possono usare per programmare in Windows, e tale
specifica è la stessa per le diverse piattaforme Microsoft, come NT, 95/98 e CE.
L'obiettivo è quello di assicurare la portabilità delle applicazioni che fanno uso della interfaccia
Win32 a tutte le stazioni di lavoro basate sul piattaforme Microsoft. Questo obiettivo è in pratica
limitato dal fatto che l'implementazione delle Win32 API è ovviamente diversa e specifica per
ognuna delle tre piattaforme. Ogni piattaforma implementa un sottoinsieme diverso delle funzioni
specificate nella Win32 API. NT le implementa quasi tutte, Windows 95/98 e CE ne implementano
solo dei sottoinsiemi, a causa delle limitazioni hardware delle macchine a cui tali piattaforme sono
indirizzate.
Concentrando la nostra attenzione su Windows NT, la Figura 1 mostra come i programmi
applicativi possano richiedere i servizi del sistema operativo invocando le Win32 API, un set di
funzioni molto esteso e documentato. Il compito delle funzioni implementate in Win32 è quello di
trasformare le richieste ricevute in chiamate ai servizi di sistema di NT, che sono un insieme di
funzioni del sistema operativo NT, che possono essere invocate dalla modalità utente ma di cui non
è provvista nessuna documentazione. Per esempio, la funzione CreateProcess() della Win32 API
internamente richiede il servizio di sistema della NtCreateProcess().
Alcuni dei servizi più importanti che possono essere richiesti attraverso la Win32 API riguardano la
gestione dei processi, la comunicazione tra processi, la gestione della memoria., dell'I/O, delle
finestre e della grafica.
Le funzioni della Win32 API sono implementate da librerie ad aggancio dinamico (Dynamic
Linked Library, DLL), che sono delle funzioni tradotte in codice eseguibile e che possono essere
caricate da una applicazione dinamicamente a tempo di esecuzione. Le principali DLL sono:

KERNEL32.dll; implementa le funzioni per la gestione della memoria, dei thread e dei
processi;
USER32.dll; per la gestione dell'interfaccia con l'utente e del sistema di finestre;
GDI32.dll; Graphics Device Interface, contenente le funzioni di grafica.


L'interfaccia Grafica di Windows
L'interfaccia grafica, uguale nelle versioni 95/98 e nella versione NT, rappresenta una
delle principali ragioni del successo di Windows. L'interfaccia grafica adotta
opportune metafore per riprodurre su computer un ambiente di lavoro tradizionale e
sfrutta dei dispositivi di puntamento (per esempio, il mouse) per selezionare e
manipolare gli oggetti.






le icone, oggetti grafici che rappresentano le risorse del sistema. I programmi sono
rappresentati attraverso icone che richiamano le loro specifiche funzionalità, le stampanti
e i dischi fissi da icone rappresentanti i vari dispositivi, i direttori sono rappresentate da
icone simili a cartelle, i file da icone simili a documenti con uno specifico aspetto che
rappresenta il loro tipo;
le finestre, che contengono i programmi applicativi in esecuzione;
la scrivania (desktop), che rappresenta la tradizionale scrivania utilizzata nel lavoro di
ufficio e sulla quale si tengono i documenti su cui si sta lavorando e gli strumenti di
utilizzo più frequente. La scrivania può essere personalizzato dagli utenti, che possono
cambiare la disposizione delle icone, decidere di inserirne altre, o modificare lo sfondo;
il cestino, in cui sono depositati gli oggetti che vengono cancellati;
la casella della posta in ingresso (mailbox), che contiene i messaggi arrivati;
la barra delle applicazioni, che visualizza le applicazioni attive e contiene il pulsante
Avvio, che permette di attivare tutte le principali funzionalità del sistema operativo, come
l'avvio dei programmi, l'apertura dei documenti, lo spegnimento del sistema, la modifica
delle impostazioni di sistema, la ricerca degli oggetti e la visualizzazione della guida;
Struttura del File System
Il file system di Windows è organizzato in maniera gerarchica. La radice è chiamata desktop, che
contiene tutte le risorse fisiche e logiche della macchina. Nell'esempio sono rappresentati due dischi
fissi, di nome Programmi e Dati, con un insieme di direttori (Varie, Temp, Sw, ecc.) appartenenti al
disco Dati. Sono inoltre presenti un direttorio chiamato Stampanti, un direttorio chiamato Pannello
di controllo, un direttorio chiamato CD-ROM e uno chiamato Floppy disk. La Figura 5 mostra
come lo stesso file system viene visualizzato utilizzando gli strumenti grafici messi a disposizione
dell'utente in Windows.
Un'ultima considerazione a proposito del file system Windows riguarda la possibilità di
caratterizzare i file sulla base di un tipo, definito dall'estensione del file stesso. Per esempio, un
file chiamato documento.doc è un file con un'estensione doc , che viene solitamente utilizzata
per identificare i file creati con Microsoft Word. Un file dati.xls è un file di nome dati creato
con il foglio elettronico Excel. Inoltre, i file sono rappresentati da icone con uno specifico
aspetto che rappresenta il tipo di file (e quindi, indirettamente, l'applicazione usata per aprirlo).
Strumenti per la Gestione del File System
Tutte le versioni di Windows mettono a disposizione alcuni strumenti grafici per la gestione del
file system e delle risorse disponibili su una macchina.
Lo strumento Gestione risorse
Lo strumento Gestione risorse è il principale strumento di Windows per la visualizzazione
delle varie risorse (dischi, stampanti, ecc.) disponibili nel computer.
Gestione risorse visualizza le informazioni avvalendosi di due pannelli: la gerarchia del file
system sulla sinistra, che può essere utilizzata per facilitare lo spostamento all'interno del file
system, e il contenuto della cartella selezionata sulla destra.
Più in dettaglio,le informazioni a cui si può accedere mediante Gestione risorse sonole seguenti:


file e cartelle;
dischi e dispositivi periferici (per esempio stampanti);





tutti gli strumenti presenti nel Pannello di controllo;
i documenti in attesa di essere stampati, per ognuna delle stampanti contenute nella
cartella Stampanti;
il Cestino, che rappresenta un'area di memorizzazione temporanea in cui vengono
salvati i file eliminati e dal quale è possibile recuperare quelli eliminati erroneamente. I
file eliminati non sono effettivamente rimossi dal disco rigido fino a quando il cestino
non viene esplicitamente svuotato;
i computer collegati alla stessa rete locale e raggruppati nell'icona Risorse di rete.
La cartella Sincronia file che può essere usata per mantenere aggiornate e sincronizzate
le versioni degli stessi file presenti in due diversi computer (tipicamente, un personal
computer e un portatile).
Tutte le principali operazioni sul file system possono essere eseguite utilizzando le funzioni
messe a disposizione dai menù di Gestione risorse. Il menù File offre le principali funzioni per
la creazione e per la cancellazione dei file e dei direttori, il menù Modifica permette di copiare
file e direttori, il menù Visualizza cambia il modo in cui possono essere mostrate le
informazioni e Strumenti offre alcune funzionalità tra cui quella di ricerca dei file
Lo strumento Risorse del computer
Lo strumento Risorse del computer è rappresentato da una icona sulla scrivania e contiene le
informazioni contenute nel pannello destro di Gestione risorse, mentre non visualizza la
gerarchia delle cartelle. Per cambiare direttorio è sufficiente utilizzare il mouse per selezionare
il direttorio di interesse. Risorse del computer offre inoltre un sottoinsieme dei menù già
descritti per lo strumento Gestione risorse.
La ricerca di un file
Windows mette a disposizione un semplice strumento per la ricerca dei file all'interno dei file
system di una macchina. Tale strumento, chiamato Trova può essere attivato dal menù
Strumenti di Gestione risorse oppure dal menù Avvio della Barra degli strumenti
Lo strumento Trova consente di cercare un file in una specifica cartella, o di elencare tutti i file
modificati in un certo intervallo di tempo, o i file che contengono una stringa specificata.
I Processi in Windows NT
Windows NT è un sistema operativo multitasking, che supporta quindi l'esecuzione concorrente di
più processi. Ogni processo dispone di un proprio spazio di indirizzamento e il sistema operativo
impedisce interferenza tra processi diversi. Windows NT è inoltre multithreaded e supporta quindi
il concetto di thread. All’interno di un processo possono essere presenti molti thread, che
condividono tra di loro lo spazio di indirizzamento del processo stesso. Questo permette di
migliorare le prestazioni in molti casi applicativi (es. processi server Web), poiché i thread possono
scambiarsi dei dati in modo molto efficiente (a differenza di quello che avviene in Unix) e il sistema
operativo impiega molto meno tempo nell'eseguire il cambio di contesto dei thread rispetto a quanto
avviene nel caso di processi tradizionali.
Il thread che in un qualunque momento ha il controllo della CPU si trova nello stato di esecuzione,
mentre lo stato di attesa contiene il successivo thread che prenderà il controllo della CPU. I thread
sospesi in attesa del completamento di operazioni di I/O sono nello stato bloccato, quelli che sono
invece logicamente pronti ad eseguire si trovano nello stato pronto.
Lo Scheduling in Windows NT
In Windows NT le unità di scheduling sono i thread, a ognuno dei quali è associata una priorità. In
particolare, NT dispone di 32 livelli di priorità suddivisi in tre classi (classe real time, classe a
priorità variabile, classe di sistema).
Lo scheduler di NT esegue il thread (di qualunque classe) con priorità più alta, eventualmente
togliendo il controllo del processore a un thread con priorità più bassa. Thread con la stessa priorità
appartengono a una stessa coda di scheduling, all'interno della quale sono gestiti in modalità roundrobin .
La priorità di un thread viene definita in relazione alla priorità del processo che lo ospita e, inoltre, i
thread della classe a priorità variabile possono cambiarla dinamicamente: NT abbassa la priorità
dei thread che impegnano intensamente la CPU e privilegia i thread interattivi che interagiscono con
l'utente e con i dispositivi di I/O come dischi, stampanti, ecc.
Il Task Manager
Il principale strumento per la gestione dei processi in Windows NT è il Task Manager, che può
essere attivato premendo il pulsante destro del mouse su un'area vuota della barra delle applicazioni.
Le principali funzioni messe a disposizione dal Task Manager sono le seguenti:



visualizzazione dello stato delle applicazioni in esecuzione, con possibilità di terminare le
applicazioni bloccate.
visualizzazione dei processi in esecuzione sulla macchina, con indicazione delle risorse
utilizzate da ognuno di essi; è anche possibile modificare la priorità dei processi.
visualizzazione dello stato di occupazione delle risorse della macchina, in termini di
memoria occupata, percentuale di utilizzo della CPU, ecc.
Il Performance Monitor
Un altro strumento molto potente per visualizzare lo stato delle risorse di una macchina è il
Performance Monitor, che rende possibile anche la visualizzazione dello stato in cui si trovano
tutti i thread presenti su una macchina. Tale strumento di gestione si trova tra gli Strumenti di
amministrazione.
La Memoria Virtuale
Windows NT fornisce l'astrazione di memoria virtuale per permettere a ogni processo di
usufruire di aree di memoria di dimensioni molto superiori a quelle della memoria centrale
effettivamente disponibile. In pratica, ogni processo in Windows NT dispone di una memoria
virtuale di 4Gbyte, grazie all'uso di indirizzi a 32 bit. NT utilizza pagine di 4KB.
Sicurezza e Protezione
Una delle principali differenze di NT rispetto alle piattaforme 95/98 riguarda l'aspetto della
sicurezza e della protezione. Le piattaforme Windows 95/98 sono indirizzate a sistemi
monoutente e non offrono quindi nessuna autenticazione dell'utente e nessun controllo
nell'accesso ai file: un qualunque utente è autorizzato ad accedere a tutti i file del sistema.
Windows NT è invece indirizzato a sistemi multiutente e quindi offre alcune importanti
funzionalità di sicurezza quali l'autenticazione degli utenti e il controllo nell'accesso alle risorse.
L'Autenticazione degli Utenti
Il sistema operativo Windows NT controlla l'accesso degli utenti utilizzando un meccanismo
di autenticazione basato su password. Un utente può entrare nel sistema solo se è provvisto
di uno username e se è a conoscenza della corrispondente password. Username e password
sono richieste e verificate nella fase di logon.
Ogni utente è quindi identificato in modo univoco all'interno del sistema dal proprio
username, e può inoltre appartenere a uno o più gruppi. Un utente che appartiene a più
gruppi può svolgere le azioni consentite a tutti i singoli gruppi.
La Protezione delle Risorse
Windows NT è dotato di un meccanismo di protezione di tutte le risorse del sistema che ne
controlla l'accesso da parte degli utenti. Il sistema operativo verifica che un utente, una volta
superata la fase iniziale di autenticazione, possa accedere solo alle risorse per le quali dispone di
una autorizzazione. Alcune delle principali risorse che possono essere protette sono, per esempio, i
file, i direttori, i dispositivi, le stampanti, ecc.
Il meccanismo di protezione di NT associa a ogni risorsa l'identificativo dell'utente proprietario
della risorsa stessa. È compito del proprietario definire per una risorsa una lista di controllo degli
accessi (ACL, da Access Control List), cioè una lista di utenti o di gruppi che possono eseguire
delle azioni specifiche sulla risorsa. Il tipo di azioni che possono essere eseguite sono detti diritti,
ed NT estende l'insieme dei diritti già presentati nel paragrafo di Unix.
A differenza di Unix, NT permette di specificare i diritti su una risorsa per una lista di un
qualsivoglia numero di utenti; inoltre, i diritti di operare su una risorsa possono essere concessi, ma
possono anche essere vietati, per indicare le azioni che sono esplicitamente vietate a un particolare
utente o gruppo di utenti. La lista di controllo degli accessi associata a una qualunque risorsa di
sistema può essere modificata direttamente dalla finestra che visualizza le proprietà della risorsa
stessa (uso del tasto destro del mouse). Come esempio, si consideri un direttorio e si guardino le
proprietà associate a tale risorsa. Nella finestra Proprietà è possibile selezionare varie opzioni di
protezione, tra cui compaiono le Autorizzazioni, il Controllo e il Proprietario.
L'Ambiente di Rete
Negli ultimi anni tutti i sistemi informativi di industrie e aziende sono evoluti nella direzione di una
maggiore distribuzione delle risorse, con collegamenti su scala globale, in un contesto in cui
Internet e tutti i sistemi aperti hanno acquisito grande importanza. Un qualunque sistema operativo
moderno deve quindi fare fronte a nuovi scenari, con un aumento della complessità dovuto, più in
dettaglio, a:



eterogeneità delle piattaforme sia hardware sia software (all'interno di una stessa azienda
possono coesistere workstation e PC, con varie versioni di sistema operativo, come
Windows, Unix, ecc.);
collegamento in rete di tutte le risorse di calcolo, a volte anche su scala globale (una
azienda può dover collegare macchine appartenenti a diverse filiali geograficamente
distribuite);
accesso alla rete Internet, con tutti i problemi di sicurezza che derivano da una
interconnessione su una rete pubblica come Internet (un'azienda può voler accedere alle
informazioni attraverso Internet, o può usare tale rete come supporto per il collegamento di
macchine di filiali diverse).
Il Supporto di Rete
I progettisti di Windows NT hanno dotato il sistema operativo di un supporto di rete capace di
rispondere alle esigenze sopra elencate, che sono caratteristiche diffuse in tutti i nuovi ambienti di
lavoro. Per fronteggiare il problema della eterogeneità, NT dispone di un'interfaccia di sistema di
rete flessibile in grado di interagire con molti altri sistemi operativi Per facilitare il collegamento in
rete delle stazioni di lavoro, NT supporta tutti i principali standard di comunicazione (per esempio,
TCP/IP). Infine, NT è stato progettato tenendo in considerazione le esigenze di sicurezza e di
protezione delle informazioni e delle risorse di calcolo che emergono nello scenario Internet.
Organizzazione di Rete Windows
I sistemi informativi delle aziende e delle organizzazioni sono costituiti da numerose
macchine collegate in rete e il problema dell'amministrazione e della gestione di tutto il
sistema può facilmente raggiungere una complessità molto elevata. Per fronteggiare questi
problemi, Windows NT offre alcuni modelli per l'organizzazione e la gestione dei
sistemi in rete.
Il modello a workgroup
Il più semplice modello organizzativo delle macchine proposto da NT è il modello a
workgroup, a gruppo di lavoro (vedi Figura 22), in cui ogni macchina è amministrata
autonomamente e tutte le operazioni, come per esempio l'aggiunta di un utente, devono
essere eseguite su ogni singola macchina presente nell'organizzazione. Il difetto principale
di questa soluzione è chiaramente la scarsa scalabilità nella gestione dell'insieme delle
macchine.
Il modello a dominio
In molti ambienti di lavoro esistono dei gruppi di utenti, come gli impiegati di una stessa
organizzazione, che si vuole siano in grado di accedere a delle risorse condivise messe a
disposizione di tutti. Per gestire le politiche di accesso di questi gruppi di utenti, NT
propone il modello di organizzazione a dominio (vedi Figura 23). Un dominio NT è un
gruppo di macchine Windows che condividono le politiche di sicurezza e l'archivio degli
utenti. In particolare, tutte le informazioni amministrative e le politiche di sicurezza per il
dominio sono concentrate in una macchina Server, in figura chiamata PDC (Primary
Domain Controller). Le altre stazioni di lavoro del dominio interrogano il PDC per avere
le informazioni corrette e aggiornate sui diritti di accesso di ogni utente.
Questo modello di organizzazione centralizza l'amministrazione di tutto il dominio.
Infatti, tutte le operazioni di configurazione e modifica delle politiche di sicurezza, come
per esempio l'aggiunta di un nuovo utente, vengono eseguite solo sulla macchina PDC. In
questo modo si semplifica notevolmente la gestione e l'amministrazione delle macchine
del dominio.
La centralizzazione imposta dalla presenza del PDC potrebbe in alcuni casi rappresentare
un collo di bottiglia per il sistema e addirittura portare a un blocco di tutte le macchine del
dominio nel caso di un malfunzionamento della macchina PDC. Tale rischio può essere
ridotto utilizzando una o più macchine Server di backup, in figura indicate come BDC
(Backup Domain Controller). Sulle macchine BDC vengono periodicamente
immagazzinati i dati presenti nel server PDC, soprattutto quelli più importanti e strategici,
in modo da poterli avere disponibili anche quando il server PDC dovesse interrompere la
propria attività. In Figura 23 è rappresentato un dominio NT con un server PDC e 2
stazioni BDC di backup.
In
Strumenti per la Gestione di Rete
L
O
Il sottosistema di rete di Windows NT permette la trasmissione dei dati, la comunicazione tra
processi, la condivisione dei file attraverso la rete e la possibilità di stampare utilizzando
stampanti remote. Le stampanti remote collegate alla macchina sono presenti nella cartella
Stampanti.
L
W
Il
L
La condivisione delle risorse
In Windows NT è possibile offrire delle risorse presenti su una macchina (che svolge le funzioni
di servitore) a tutte le altre macchine (che agiscono come clienti) che sono collegate alla stessa
rete locale). In generale, una stessa macchina potrà essere servitore di alcune risorse e accedere
come cliente a delle altre.
Un utente che vuole mettere a disposizione una risorsa (lato servitore), la offre in condivisione
modificando le Proprietà della risorsa stessa. Una risorsa condivisa può essere acceduta da un
utente su una macchina cliente mediante lo strumento Risorse di rete e utilizzata come se fosse
una risorsa locale. Le macchine e le risorse presenti sulla stessa rete locale sono accedute
utilizzando degli strumenti per la gestione di rete.
Lo strumento Risorse di rete
Lo strumento Risorse di rete è rappresentato da una icona sulla scrivania e permette di
visualizzare tutte le macchine Windows collegate a una stessa rete locale. Ogni macchina è
identificata da un nome logico Windows.
Lo strumento Trova
Lo strumento Trova (già incontrato per la ricerca di file) può anche essere utilizzato per la
L
S
L
G
W
ricerca di computer collegati sulla rete locale.
Gestione di un Sistema Windows NT
La gestione di un sistema è un compito complesso e delicato, che prevede la configurazione
iniziale, la riconfigurazione a fronte dell'aggiunta o della modifica di nuove periferiche collegate
alla macchina, l'amministrazione del sistema, la gestione degli utenti, ecc. Per ridurre il rischio che
utenti inesperti possano compromettere l'integrità del sistema, molte delle operazioni di gestione
sono eseguibili solo dagli utenti che abbiano i diritti di amministratore. La configurazione e
l'amministrazione di un sistema Windows NT sono facilitate dalla presenza di molti strumenti con
una facile interfaccia grafica, che sono raggruppati in due posizioni: all'interno del Pannello di
controllo e nel menù Strumenti di amministrazione.
Pannello di Controllo
Il Pannello di controllo è una cartella che si può raggiungere dal menù Avvio, oppure usando
Gestione risorse. Contiene molti strumenti di configurazione del sistema:

la cartella Stampanti mostra le stampanti collegate alla macchina (sia in locale sia
attraverso la rete locale) e permette di aggiungere nuove stampanti;
la Rete permette di configurare schede di rete, servizi e protocolli di comunicazione, e
l'inserimento della stazione di lavoro in uno specifico dominio;
lo Schermo, per modificare l'aspetto dello schermo, cambiando colori, tipi di caratteri,
sfondo, ecc.;
l'installazione delle applicazioni per installare e rimuovere programmi o componenti
software;
il Modem per la configurazione di un modem per il collegamento su linea telefonica.




Strumenti di Amministrazione
Gli Strumenti di amministrazione si trovano all'interno dei Programmi, a loro volta dentro il
menù Avvio e sono i principali strumenti per l'amministrazione di un sistema Windows NT.
Alcuni degli strumenti più importanti sono i seguenti:




lo User manager consente di gestire il sistema di protezione e sicurezza di Windows
NT; grazie a questo strumento è possibile svolgere tutte le funzioni di gestione degli
utenti e dei gruppi (inserimento nuovi utenti, modifica password, cambio di gruppo,
ecc.);
il Disk administrator consente di gestire i dispositivi di memorizzazione di massa e di
configurare i nuovi dischi che possono essere aggiunti a una macchina (partizionamento
e formattazione dei dischi);
il Performance monitor, per controllare le prestazioni della macchina;
il Backup per eseguire il backup dei dati sull'unità a nastro locale, in modo da evitare la
perdita di dati a causa di malfunzionamenti.