ISTITUTO SUPERIORE “E.FERMI”
Tecnico Settore Tecnologico e Liceo Scientifico delle Scienze Applicate
Strada Spolverina, 5 – 46100 MANTOVA
Tel. 0376 262675 Fax 0376 262015
www.fermimn.gov.it
e-mail: [email protected]
Sistemi
Operativi
Argomenti:
• Sistemi Operativi
• File System
Descrizione e funzioni dei Sistemi Operativi
Il Sistema Operativo (SO; OS=Operating System), detto anche software di base, è un insieme di programmi
destinati alla gestione dei dispositivi che costituiscono un computer (detti risorse o risorse fisiche). Il SO
serve all’utente ed al programmatore di applicazioni, offrendo ad entrambi un’interfaccia con i componenti
hardware. Tutti i computer, dai PC ai grandi elaboratori militari, hanno il sistema
operativo: comandi e interfacce possono cambiare, ma le funzioni sono le stesse.
Chi si occupa di sistemi operativi è generalmente uno specialista, che non si
occupa di software applicativo; analogamente, altri specialisti si occupano di
scrivere i driver, programmi presenti su dispositivi esterni (stampanti, switch,
router, telefoni VOIP,…), destinati a comunicare con il sistema operativo dei
computer cui verranno collegati. Entrambe queste figure professionali, quasi
sempre specialisti di hardware, sono spesso confuse con i programmatori
applicativi, che invece scrivono software destinato a risolvere problemi di varia
umanità, e generalmente sono specialisti di software, non di hardware.
Il diagramma a fianco riassume ciò che collega l’utente all’hardware, ma, essendo
solo una schematizzazione, non va preso troppo alla lettera. Ad esempio, il
sistema operativo è posizionato ai livelli bassi, ma l’utente è in grado di attivarne
tutte le funzioni direttamente; analogamente, ci sono utenti che usano solo il
middleware (software per produrre altro software, usato dai programmatori), ed
altri che usano i programmi applicativi scritti tramite il middleware. Sarà quindi
Informatica a strati
facile trovare, su testi o su siti didattici, diagrammi simili, ma con lievi differenze:
ad esempio, si potrebbero trovare due livelli del sistema operativo anziché uno, o i driver subito sopra
l’hardware, o il livello del middleware mancante. Sono dettagli dovuti alle preferenze di chi predispone il
diagramma, ma non modificano il quadro generale.
Ad un amministratore di sistema (un tempo detto sistemista) si richiede la conoscenza delle funzioni del
sistema operativo, la sua organizzazione interna, le tecniche di gestione dei dispositivi e dei dati; nella
pratica, dovrebbe essere in grado di eseguire le operazioni di installazione, configurazione, manutenzione,
aggiornamento del SO, oltre che saper analizzare (e possibilmente risolvere) i problemi più frequenti.
Il sistema operativo, come intermediario tra utente e computer, è responsabile da una parte del controllo e
della gestione delle componenti hardware, e dall’altra di garantire all’utente la possibilità di eseguire
programmi in modo efficiente1.
Si può quindi riassumerne in questo modo:
•
Dal punto di vista interno (macchina), il SO è un gestore che dispone
di tutte le risorse del computer, fisiche (dispositivi) e logiche (dati).
•
Dal punto di vista esterno (utente), il SO è un’interfaccia per l’uso
delle risorse, col fine ultimo di risolvere i problemi dell’utente.
Il SO, e in particolare la sua componente fondamentale, il kernel2, è
l’unico programma che è sempre in esecuzione sul calcolatore. Viene
caricato all’accensione della macchina e continua a funzionare fino allo
spegnimento. Esso si occupa di gestire:
•
•
•
•
•
Stavvi Minos orribilmente, e ringhia;
essamina le colpe ne l’intrata;
giudica e manda secondo ch’avvinghia.
i processi (programmi in esecuzione);
la memoria centrale (dove sono presenti i processi);
la memoria di massa (dove sono memorizzate le informazioni);
i sistemi di Input/Output (I/O) con tutte le periferiche (per lo scambio delle informazioni).
l’interfaccia utente (attraverso la quale si manovra il computer);
1
Aggettivi come “efficiente”, “sicuro”, “veloce” non vanno considerati in modo assoluto: si tratta degli obiettivi del
sistema operativo, non necessariamente del loro raggiungimento. Anche se un sistema operativo è “peggiore” o “meno
efficiente” di altri (cose spesso soggettive), le operazioni che svolge sono le stesse. In questo corso i differenti sistemi
operativi sul mercato non vengono giudicati.
2
kernel (=nucleo): software che fornisce ai processi in esecuzione un accesso sicuro e controllato all'hardware
Evoluzione e classificazione dei S.O.
I primi computer (anni ’40) prendevano in input singoli programmi
(detti job) attraverso cablaggi tra componenti dell’unità centrale: il
programma era inserito assieme ai suoi dati e veniva eseguito usando
tutte le risorse di calcolo disponibili, per poi stampare l’output al
termine delle operazioni. Non si può nemmeno parlare di SO, perché il
computer funzionava con collegamenti elettrici ed elettronici diretti,
effettuati manualmente, da operatrici dette computer (nella foto a
fianco, Gloria Ruth Gordon e Esther Gerston, passeggiando all’interno
dell’hardware con i cavi sottobraccio, definiscono i dati da elaborare).
Pagate meno dei colleghi maschi, erano comunque scienziate di prim’ordine3.
Pochi più tardi (anni ’50) comparvero lettori di schede e di nastri. Le schede,
essenzialmente dei cartoncini perforati, consentivano di mantenere una copia delle
istruzioni, e quindi di non dover modificare
i cablaggi per ogni nuovo programma;
inoltre, una volta trasferite le istruzioni su
nastri magnetici, i programmi potevano
essere mandati in esecuzione a lotti, anziché
singolarmente. I job di un lotto venivano comunque eseguiti sequenzialmente e senza interruzioni: ciascuno
rimaneva in coda fino al termine di quello precedente. Al termine del lotto tutti i risultati venivano portati ad
un sistema secondario che consentiva di stampare i risultati. Questo modo di eseguire i programmi viene
detto elaborazione batch4.
Le schede sarebbero state usate fino agli anni ’70, anche dopo altre evoluzioni dei sistemi operativi. Con
questo modo di operare, programmatori e utenti erano fisicamente lontani dal computer: i programmi,
composti da mazzi di schede a volte alti come scatole di scarpe, venivano consegnati alle operatrici (anche
qui, generalmente si trattava di donne), che avevano l’unica funzione di introdurre le schede nel lettore e
riconsegnarli ai proprietari, assieme agli stampati, dopo l’elaborazione.
L’era delle schede perforate
Con l’introduzione dei dischi (1956) venne adottata una tecnica detta spooling (Simultaneous Peripheral
Operation On Line), una registrazione temporanea di dati in memoria per velocizzare le operazioni di input:
•
•
•
•
•
le schede sono lette ed il loro contenuto (dati compresi) memorizzato su disco;
l’input del job in esecuzione avviene dal disco;
l’output è riversato sul disco;
dall’output su disco vengono stampati i risultati;
i dati su disco vengono cancellati (in quanto le memorie sono limitate in capacità).
Lo spooling sarebbe stato in seguito adottato anche per la gestione dell’output. La quasi
totalità dei risultati veniva stampata su moduli continui; a volte, per i disegni, si usavano dei
plotter, dispositivi a penna ormai obsoleti (ma con un discreto mercato di appassionati
dell’usato). Macchine simili ai plotter, ma dotate di lame, vengono tuttora usate per il taglio
del vetro o di altri materiali, come metalli e plastica.
3
Queste giovani, fondamentali per il funzionamento dei computer militari, rischiarono di sparire dalla storia, come
spesso accadeva alle donne. La loro vicenda fu scoperta nel 1985 da Kathy Kleiman, programmatrice e avvocato
specializzato in informatica. Il gruppo originale delle sei “computer” era composto da: Frances Bilas Spence, Jean
Jennings Bartik, Ruth Lichterman Teitelbaum, Kathleen McNulty Mauchly Antonelli, Frances “Betty” Snyder
Holberton, Marlyn Wescoff Meltzer.
4
Batch = “a lotti”: termine mutuato dai panettieri, indica l’infornata di un gruppo di coppie di pane per la cottura
Evoluzione
La presenza dell’unità disco (anni ’60) permise anche di eseguire più job (a quel punto denominati task),
caricati contemporaneamente in memoria (multitasking): la RAM inizia ad essere vista come un grande
contenitore per i programmi in esecuzione, che, nel caso la CPU necessiti di spazio per i calcoli o i risultati
parziali, possono essere trasferiti su disco e sospesi per il tempo necessario: la memoria logica (quella che
ogni programma “pensa” di avere a disposizione) diventa un’estensione della memoria fisica (quella
effettivamente presente nell’unità centrale). In questo modo il programmatore inizia a liberarsi dal compito
di dover predisporre la memoria a sua disposizione, anche se spesso era costretto a suddividere il task in
blocchi indipendenti, che potevano essere scambiati tra di loro in RAM (una tecnica ormai non più
conosciuta, anche perché già predisposta all’interno dei moderni sistemi operativi, chiamata overlay).
I task vengono mandati in esecuzione da un programma detto scheduler; il controllo della CPU viene
assegnato ad un dato task dal programma dispatcher (o CPU scheduler). In questo periodo nasce il bisogno
di migliorare l’efficienza nello sfruttamento della CPU, il cui uso è solitamente a pagamento. A questo scopo
si escogita il meccanismo delle interruzioni (interrupt), attivato quando un task necessita di un’operazione
di I/O: dal momento che le periferiche hanno tempi elevati rispetto alla CPU (millesimi di secondo contro
milionesimi), sospendere l’operazione del task fino al reperimento dei dati rende possibile assegnare l’unità
centrale ad un altro task, riducendo così i tempi morti (nei quali la CPU viene detta idle).
Questo meccanismo nasce quando non esistono ancora applicazioni interattive. Questo è il successivo
sviluppo della multiutenza; la multiprogrammazione viene estesa con il meccanismo del time sharing
(condivisione di tempo). Nei nuovi sistemi, anche il tempo di uso delle risorse viene suddiviso tra i task: in
particolare, il tempo della CPU è gestito mediante un timer che scatta periodicamente, assegnando l’unità
centrale a turno5. La gestione del timer si aggiunge a quella delle interruzioni, con l’obiettivo è di provvedere
risposte immediate ad un utente che istruisce direttamente il computer o un programma. I programmi che non
necessitano di interazione né di risposte immediate, e che magari consumano molto tempo della CPU,
possono essere eseguiti in background, uno stato particolare, a bassa priorità, nel quale si cercano gli
intervalli in cui la CPU è libera, interferendo il meno possibile con i processi principali.
Il time sharing nasce con la l’obiettivo di minimizzare i tempi di risposta alle operazioni dell’utente
interattivo, che deve essere in grado di lavorare come se avesse il sistema a sua completa disposizione. Se i
tempi di risposta del computer si mantengono nell’ordine dei secondi, risultano corrispondenti alla velocità
di interazione dell’utente, che riesce quindi a lavorare in modo continuativo, senza troppe attese.
Mentre le unità a nastro venivano gestite sequenzialmente, per le memorie di
massa (hard disk) il SO dovette occuparsi anche della gestione del file system,
l’organizzazione del contenuto di un disco (che verrà esaminata in seguito).
Questo si aggiunge alle notevoli esigenze che la multiutenza comporta:
controllo dell’uso della CPU, sincronizzazione dei task, gestione delle risorse,
il tutto con l’obiettivo di rendere più efficiente e continuo il funzionamento del
sistema, evitando le situazioni di deadlock (blocco).
In breve nascono anche sistemi operativi real-time, in cui è necessario
Hard disk da 16 Mb, anni ‘60
ottenere una risposta immediata in situazioni rischiose o di alta precisione.
Sistemi real-time governano le centraline di auto o moto, molti processi
industriali, e dispositivi medici come pacemaker o alimentatori automatici. Questi sistemi, detti dedicati, non
sono oggetto di questo corso.
Nei sistemi operativi attuali, le attività, che siano dell’utente o del SO, sono dette processi (l’evoluzione della
terminologia consente di distinguere i periodi storici). Spesso i processi sono suddivisi in unità più piccole,
dette thread: diversi thread contenuti nello stesso processo possono condividere alcune risorse (solitamente
la memoria centrale del computer). Questa tecnica, detta multithreading, attua il principio detto divide et
impera, consentendo di migliorare l’efficienza nella gestione delle risorse tramite la sovrapposizione di
operazioni distinte. Per fare un esempio molto semplice, capita spesso di visualizzare un filmato da una
pagina Web intanto che parte del contenuto non è ancora completamente caricata.
5
Il meccanismo di turnazione viene detto round robin, espressione usata anche per descrivere quei campionati sportivi
dove ogni partecipante incontra tutti gli altri.
Gestione dei processi
Un processo è un programma in esecuzione, che necessita di un insieme di risorse (tempo di calcolo,
memoria centrale, memoria di massa, connessioni di rete, periferiche, ecc.) per svolgere la propria attività. Il
SO assegna dinamicamente al processo le risorse che questo richiede e inoltre mantiene informazioni su
tutti i processi presenti in memoria.
Tra le informazioni contenute nel descrittore di processo (PCB, Process Control Block6), che il sistema
mantiene per ogni processo attivo, ci sono:
• l’identificatore del processo;
• lo stato del processo;
• informazioni sull’esecuzione: a che punto il processo è arrivato, quali sono i suoi dati parziali;
• informazioni relative alle risorse assegnate (tra cui, per esempio, i file aperti dal processo).
Lo stato del processo cambia durante il suo ciclo di esecuzione:
•
•
•
il processo viene creato e lo stato è nuovo (new);
viene quindi ammesso nella lista dei processi che possono entrare in esecuzione (ready);
il processo cui viene assegnato l’uso della CPU va in esecuzione (running) e resta in tale stato finché
non avviene un evento tra i seguenti:
o interruzione per gestione dati (I/O): il processo entra in uno stato di attesa (waiting) per la risposta
dalla periferica consultata; una volta terminata l’operazione, il processo tornerà nello stato di ready.
Per soddisfare richieste contemporanee da più processi, ogni periferica li inserisce in una coda
gestita dal proprio driver, lasciando libero il sistema operativo per altre operazioni.
o interruzione per termine dello slot di tempo a disposizione del processo7: il processo torna nello stato
di ready, in attesa di una nuova attivazione da parte dello scheduler, dopo di che riprenderà
l’esecuzione dal punto in cui era stato interrotto;
o il processo esegue una istruzione di “fine lavoro”, o incontra un errore irreversibile8: passa allo stato
di terminated, e lo spazio da esso occupato in RAM verrà rimesso a disposizione (riallocato).
Un altro tipo di interruzione avviene quando un processo effettua una richiesta d’uso di parti di memoria o di
dati non presenti in RAM, ma in memoria virtuale. Questa è una situazione molto comune quando la
memoria centrale ha dimensioni ridotte, ed è detta page fault. Capita, per esempio, quando si riprende
l’esecuzione di un programma lasciato a lungo inattivo, o si naviga all’interno di documenti molto grandi,
che il software di gestione suddivide in blocchi, lasciando in RAM solo quelli in elaborazione, per non
occupare troppo spazio.
Ad ogni interruzione viene anche salvato il contesto d’esecuzione, ovvero lo stato dei registri al momento
dell’interruzione, che dovrà essere ripristinato quando il processo tornerà running. In entrambe le situazioni,
l’operazione viene detta context switch (cambio di contesto).
Considerazioni analoghe si hanno anche quando i processi sono suddivisi in thread.
6
7
8
Prima era detto TCB (Task Control Block)
Alcuni manuali chiamano questa situazione timed waiting.
La gestione delle situazioni di errore viene detta error trapping; quando l’errore non viene intercettato correttamente,
il processo va in “crash”, o, come si diceva in tempi ormai trascorsi, in “abend” (abnormal end). Può essere errore
irreversibile una divisione per zero, se un programma non ha previsto possibilità alternative di elaborazione.
Sistemi Operativi per PC
Il concetto di sistema operativo nasce negli anni ’50. Il primo del quale si
ha nome e traccia potrebbe essere stato GM-NAA I/O, sviluppato nel 1956
da Robert Patrick (General Motors) e Owen Mock (North American
Aviation) per gestire i sistemi batch IBM delle rispettive ditte. Nel 1959
nasce una versione perfezionata chiamata SHARE (o anche SOS), poi
distribuita dalla IBM con il nome di IBSYS. Siamo ancora nell’era dei
tecnici in camice bianco, gli unici che avevano la possibilità di toccare il
computer, sempre in ambienti asettici ed a temperatura costante (21°).
Alla fine degli anni ’60 la AT&T (allora la maggior compagnia telefonica USA) sviluppa UNIX, un sistema
operativo con interfaccia testuale ed interazione tramite riga di comando,
nato per i computer delle serie PDP costruiti dalla DEC9. A questo SO si
ispirarono quelli destinati ai Personal Computer: in particolare, il CP/M
(Control Program for Microcomputers10) ed il successivo MS-DOS11. Sui
PC sono comparsi brevemente altri sistemi operativi, tutti soppiantati dal
DOS (1981), e da Windows (circa 1995). Anche un sistema successivo
UNIX: Thompson, Ritchie, Kernighan
(OS/2) fece la stessa fine.
L’interfaccia grafica con mouse (GUI: Graphical User Interface) compare nel computer Xerox Alto (1973).
Tutte le altre GUI sono ispirate12 a questa, comprese quelle che alcuni sostengono essere originali.
Al momento, i sistemi operativi per PC sono di due categorie: sistemi Windows (proprietari) e sistemi UNIXlike (anche se sono tutti derivati da UNIX). Tra questi ultimi ci sono quelli open-source, come, ad esempio,
MINIX, XENIX, GNO/Linux13), e uno proprietario che funziona in ambiente Apple, chiamato Mac OS X14.
Sistemi operativi Microsoft
Sono da sempre i più diffusi nelle piattaforme ad uso personale, con buona pace dei loro
detrattori. La ragione storica di questo sta nell’uscita, nel 1981, del Personal Computer IBM. Al
momento la IBM (soprannominata Big Blue) era l’azienda dominante, quella che stabiliva il
mercato, per cui l’introduzione del PC diede uno standard che cancellò di fatto tutti gli
“esperimenti” precedenti, compreso l’unico definibile come “standard” (il CP/M). Avendo la
IBM scelto il sistema operativo DOS di William “Bill” Gates, questo diventò lo standard di fatto.
Il ben noto (per molti, famigerato) Windows nasce come applicazione DOS, per offrire un’interfaccia grafica
alle operazioni di sistema (questo fino alla versione 3.11). Negli anni si sono succedute, più o meno
regolarmente, varie versioni: Windows 95, 98, 2000, Millennium, XP, Vista, 7, 8, e 9.
GNU/Linux
Gli amanti del software libero e dell’open source preferiscono affidarsi a una delle svariate distribuzioni del
sistema operativo GNU/Linux (impropriamente chiamato Linux), derivato, come tutti
del resto, dallo storico UNIX. La sigla GNU è un gioco di sigle che significa GNU’s Not
Unix, ed è stato scritto quasi in prima persona dall’americano Richard Stallman.
Linux, sviluppato a partire dal 1991 dal finlandese Linus Torvalds, è “solamente”
(per modo di dire: in realtà è un ottimo prodotto) un kernel che è stato inserito nel
resto del sistema GNU. A leggere le interviste, pare di intuire che Stallman e Torvalds non siano in termini
esattamente amichevoli. Stallman non sembra del tutto felice che il sistema operativo sia attribuito a
Torvalds; Torvalds, da parte sua, non sembra approvare la dedizione maniacale di Stallman alla libera
circolazione del software.
9
Ora estinti, sono entrati comunque nella storia come i primi computer a “portata di uomo” (e non di tecnico-sacerdote
in camice bianco).
10
Negli anni ’70 erano usati i termini minicomputer (per i piccoli sistemi multiutente) e microcomputer (più tardi
personal computer).
11
Esistevano molti sistemi analoghi, come PC-DOS, DR-DOS, FreeDOS, Novell DOS, ed altri.
12
Anticamente si diceva “copiate”.
13
Linux NON è un sistema operativo completo: è un kernel per il sistema GNU.
14
In realtà si tratta di una versione glorificata di UNIX, rivestita con un‘interfaccia grafica e spacciata come geniale.
Installazione
Rispetto ai primi anni ’90, abbiamo assistito ad una notevole evoluzione dei sistemi operativi; siamo passati
da sistemi con shell testuali (di cui rimane traccia nel “Prompt dei comandi” di Windows, e anche in certi
oscuri comandi in GNU/Linux) a sistemi con interfacce grafiche sempre
più intuitive con utility che permettono di svolgere ogni tipo di operazione,
dalla formattazione di un disco alla gestione dei programmi TV. Di
conseguenza, i programmi di installazione che prima erano distribuiti su
floppy disk ora sono distribuiti in DVD o con altre modalità15.
Quando acquistiamo un personal computer possiamo richiedere una
versione OEM (Original Equipment Manufacturer) del sistema operativo,
che viene solitamente preinstallata sull’hard disk, e talvolta, alla prima
accensione, richiede le informazioni per la configurazione del sistema. È
possibile poi registrare dei CD o DVD di ripristino per poter reinstallare o modificare una o più componenti
del sistema.
Un sistema operativo può essere installato usando diversi dispositivi e tecniche:
•
•
•
•
supporti ottici come CD e DVD, generalmente compatibili con tutti i sistemi, anche se non con i net-PC;
un sistema lento ma efficace;
memorie a stato solido USB (pen-drive) o dischi removibili; un sistema veloce ed affidabile, però non
tutti i sistemi supportano questa operazione;
rete (Network-based): rispetto ai precedenti dà la possibilità di eseguire più installazioni in parallelo;
anche se molto lenta, è una soluzione comunemente usata dove è presente una LAN di medie/grandi
dimensioni con decine di computer da predisporre.
installazioni ibride (CD+rete), in certi sistemi GNU/Linux (Debian, Fedora)
•
clonazione: dopo avere installato il SO su un singolo computer, opportuni software consentono di
replicare l’installazione su altri; questo per evitare di ripetere la stessa procedura molte volte.
Ogni sistema operativo ha requisiti minimi che possono variare da sistema a sistema e che possono dipendere
anche dal tipo di installazione che si vuole effettuare. Generalmente si parla di configurazione hardware
minima e configurazione consigliata: per configurazione minima si intende quella che permette al sistema
operativo di andare in esecuzione. Se uno dei requisiti minimi non è soddisfatto il sistema operativo in
questione non può essere installato e bisogna procedere ad un aggiornamento dell’hardware (o cambiare
computer). Per configurazione hardware consigliata, invece, si intende quella ottimale che permette al
sistema di andare in esecuzione fornendo delle buone prestazioni. In realtà la configurazione minima non è
solitamente in grado di funzionare in modo soddisfacente (e talvolta non funziona proprio). Per quanto
riguarda l’eventuale aggiornamento dell’hardware, è una situazione impraticabile: ci sarebbero quasi
certamente componenti obsoleti, incompatibili con quelli disponibili sul mercato.
Convivenza
Sullo stesso PC è possibile installare più sistemi operativi. Se si sceglie di installarli su partizioni fisiche
separate (che verranno esaminate più avanti), potrà poi operare solamente un sistema alla volta; una
soluzione più flessibile è quella di usare macchine virtuali, per consentire a tutti i sistemi di operare
contemporaneamente, anche se sotto il comando di quello effettivamente
funzionante.
Se i sistemi da installare sono tutti Microsoft (ad esempio: XP, Vista, 7),
l’ordine d’installazione deve essere dal sistema più vecchio al sistema più
recente, per motivi di compatibilità. Se i sistemi sono GNU/Linux si può
procedere con una qualsiasi sequenza purché all’ultima installazione il
computer venga configurato per avviare tutti i sistemi. Se invece sullo stesso
PC si vogliono installare entrambi i tipi di sistemi, si consiglia di installare
prima i sistemi Microsoft e poi quelli GNU/Linux (più versatili).
15
Anche perché i floppy disk da 1.44 Mb sono stati abbandonati da parecchi anni.
PROCESSO DI AVVIO DI UN SISTEMA OPERATIVO
Il processo di avvio di un sistema operativo viene chiamato, per lunga tradizione, boot,
abbreviazione di bootloading, a sua volta abbreviazione di bootstrap loading. Le
bootstrap sono le strisce di cuoio cucite agli stivali per facilitarne la calzata16. In tempi
ormai andati (quelli dei camici bianchi) si usava la sigla IPL17 (Initial Program Load).
BIOS e MBR
Il BIOS (Basic Input-Output System18) è il primo programma che viene eseguito all’avvio del PC. Il BIOS
risiede in una memoria permanente di tipo EEPROM (ROM19 programmabile) che conserva le informazioni
anche quando il PC è spento. Il BIOS mantiene parecchie informazioni, tra cui la boot sequence (sequenza
di boot), l’elenco dei dispositivi dai quali caricare il sistema operativo, che vengono esaminati nell’ordine,
fino a quando non se ne incontra uno funzionante20. Una tipica boot sequence è: hard disk, CD, USB.
Dal dispositivo di boot il BIOS estrae il MBR (Master Boot Record) che contiene i dati necessari per il boot del
sistema. Detto anche settore di avvio, occupa la zona iniziale dell’hard disk.
Il BIOS svolge le seguenti funzioni:
•
•
La fase POST (Power-On Self Test) esegue una serie di test diagnostici sull’hardware per verificare il
corretto funzionamento dei principali dispositivi (CPU, RAM, scheda video, memorie di massa, mouse e
tastiera): nel caso vengano rilevati errori questi vengono segnalati tramite un codice sonoro (una
sequenza di beep che indica qual è il dispositivo guasto);
La fase di bootstrap in cui, seguendo la sequenza di boot, viene individuato il dispositivo da cui leggere
le informazioni per il boot, viene letto il MBR e si procede con l’avvio del sistema operativo.
Avvio nei sistemi Windows
1. POST (Power-On Self Test): controllo del corretto funzionamento dei principali dispositivi hardware;
2. il BIOS individua ed esamina il MBR, poi avvia il bootloader21 che legge il file di configurazione22; in
caso di multi-boot, l’utente sceglie il sistema operativo;
3. Caricamento del kernel;
4. Caricamento dei driver;
5. Avvio dei programmi residenti (quelli che restano sempre in memoria centrale: in Windows sono detti
servizi; in altri sistemi daemon);
6. Login (autenticazione);
7. Avvio: vengono caricati desktop, icone e programmi in “avvio automatico” (quelli che l’utente ritiene di
usare sempre, risparmiandosi così la necessità di attivarli).
Le versioni di Windows dalla 7 in poi hanno sostituito il file di
configurazione con dati detti BCD (Binary Configuration Data),
modificabili con i programmi chiamati MSCONFIG e BCEDIT. In
precedenza venivano usati dei file di testo (boot.ini) contenenti le
descrizioni delle modalità di boot, la cui complessità sempre crescente
ha reso consigliabile la ricerca di formati più flessibili e veloci da
consultare, analoghi a quelli del registry.
Per gli amanti del rischio c’è anche un’opzione del Pannello di
Controllo, chiamata Configurazione di Sistema.
16
L’espressione deriva da “to pull oneself up by one’s bootstraps”, storpiatura di una delle incredibili avventure del
Barone di Munchhausen (R.E.Raspe, 1781).
17
Dalla sigla IPL certi manuali in italiano ricavavano la dubbia indicazione di “ipiellare la macchina”
18
Si chiama Input-Output perché nei primi sistemi Windows conteneva anche i driver per le periferiche
19
ROM = Read Only Memory
20
In mancanza di un dispositivo funzionante, di solito sono guai
21
bootmgr.exe in Windows (ntldr.exe in Windows XP); GRUB o LILO in GNU/Linux; BootX in Mac
22
BCD data in Windows (boot.ini in Windows XP); lilo.conf o grub.conf in GNU/Linux.
Patch e service pack
Le patch e i service pack sono aggiornamenti che il produttore del sistema operativo mette a disposizione
per correggere i problemi (bug). La differenza sta nell’entità dell’intervento: un patch serve a correggere un
determinato bug, un service pack di solito è molto più consistente, e, oltre a raggruppare tutti i patch
rilasciati fino a quel momento, talvolta aggiunge nuove funzionalità al sistema operativo.
Durante l’installazione degli aggiornamenti il sistema effettua un backup dei file modificati in
modo da poter disinstallare il patch o il service pack (operazione detta rollback).
Lo strumento che permette di verificare gli aggiornamenti nei sistemi Microsoft è “Windows Update”,
attivabile dal menu Start o anche da Internet Explorer (menu Strumenti). Il programma viene avviato in una
finestra di Internet Explorer, ma è forse consigliabile scaricare l’aggiornamento ed eseguirlo direttamente
dall’hard disk. Il controllo può essere:
•
Rapido: effettua la verifica solo degli aggiornamenti critici
•
Personalizzato: effettua la verifica di tutti gli aggiornamenti disponibili permettendo all’utente di
scegliere quali aggiornamenti installare.
Nella parte destra viene indicato se sono attivi o meno gli aggiornamenti automatici.
Aprendo ogni voce è possibile vedere in dettaglio gli aggiornamenti possibili; dopo aver selezionato quali
aggiornamenti installare viene mostrato l’elenco nella parte destra della finestra. Ogni aggiornamento è
rappresentato da un titolo e un codice Microsoft (di solito ha il suffisso KB e una sequenza di numeri); è
possibile visualizzare i dettagli ed effettuare ulteriori selezioni.
Anche i sistemi non Windows hanno le loro patch:
Oltre ai sistemi operativi, è comune trovare patch anche per applicazioni varie:
File
System
ystem
Introduzione
Il file system (FS) è una componente fondamentale del sistema di calcolo, dato che definisce e controlla
l’accesso alla memoria di massa da parte di utenti e applicazioni. Senza di esso, le informazioni su un disco
sarebbero un insieme indefinito di dati, senza modo di riconoscerli e distinguerli.
I dati sono memorizzati sui dischi in sezioni separate, individuate da un nome, dette file. Il termine è lo
stesso che viene usato per gli armadi metallici usati nelle aziende per archiviare pratiche e schede. Anche il
termine cartella, che indica un contenitore secondario dove si
possono raggruppare più file, viene dal mondo del lavoro d’ufficio.
Nel passato, le cartelle venivano chiamate directory, termine che
indica un qualsiasi elenco, ed in particolare quello telefonico.
Con file system non si indicano solo i file (intesi come blocchi di
informazioni indipendenti), ma anche la struttura e le regole usate
File, cartella, directory
per gestirli. Ci sono molti file system diversi, ciascuno con la
propria struttura e la propria logica: cambiano, ad esempio, velocità, flessibilità, misure di sicurezza,
dimensioni. In alcuni casi, i FS sono stati progettati per unità specifiche (come è avvenuto, ad esempio, per i
CD e poi per i DVD).
Esistono diversi dispositivi di memoria, ciascuno con il suo tipo di supporto. Quello più usato è il disco fisso
(hard disk, hard drive), un piatto di metallo con superficie magnetizzata, sulla quale i bit dei dati sono
registrati con impulsi elettrici che attivano una testina magnetica di lettura/scrittura. I dischi fissi risalgono
agli anni ’50, ed erano inizialmente chiamati “Winchester”. Nelle memorie a nastro DAT (Digital Audio Tape,
eredi delle prime memorie di massa) i principi fisici della registrazione sono ancora magnetici. Nei dischi
ottici (CD e DVD) i byte sono rappresentati da indentazioni nella superficie di plastica. Nelle memorie flash
(come i pen-drive e le schedine delle macchine fotografiche), i dati sono registrati su dispositivi elettronici
tramite un procedimento chiamato Fowler-Nordheim tunneling, che ha le sue basi nella meccanica
quantistica. A volte anche la RAM del computer può essere usata per contenere un file system temporaneo
(disco virtuale), con le stesse convenzioni usate per i dischi: l’unica differenza sarà nel nome (o la lettera)
che verrà assegnato alla zona usata.
Le cartelle sono raggruppamenti separati di file, presumibilmente associati tra loro. Mentre nelle prime unità
di memoria la struttura del file system era flat (piatta), ora è possibile strutturare un sistema gerarchico di
cartelle con un’organizzazione detta tree. Gli alberi informatici sono rovesciati, con la cartella principale,
detta radice (root) in alto: ogni cartella può contenere file o altre cartelle. Gli elementi della struttura sono
detti nodi, e quelli terminali sono detti foglie. Rispetto ad una sottocartella,
quella che la contiene viene detta parent folder; a sua volta, quella
subordinata viene detta child folder. Le parentele si fermano lì (non ci sono
nonni, né cugini, né nipoti).
I file sono identificati, oltre che dal loro nome, dall’unità e dalla cartella
nelle quali risiedono. Nei sistemi Windows, il nome dell’unità è
tradizionalmente una lettera. Dato che la struttura ad albero indica quali cartelle si incontrano per definire la
posizione di un elemento, il nome completo di un file è detto pathname (path=cammino), dove, proseguento
l’analogia botanica, incontriamo: cartella, stem (stelo), estensione.
C:\storage\data\inventory.jpg
L’estensione indica il tipo di file e l’uso a cui è destinato. Ad esempio, exe viene usato per programmi e
applicazioni, jpg per immagini, mp3 per clip audio, e così via per migliaia di casi diversi.
Ogni file system prevede convenzioni per i nomi dei file: ad esempio, la lunghezza massima in caratteri del
nome e dell’estensione, i caratteri ammessi, il numero di livelli di sottocartelle, se le lettere maiuscole e
minuscole sono significative. A dispetto di tutte le possibilità offerte, sono generalmente sconsigliati caratteri
“strani” (non alfanumerici, tranne trattini o underscore), e anche gli spazi, per possibili incompatibilità tra
file system diversi.
Cosa contiene il file system
Dal punto di vista dell’utente, il file system è un’organizzazione che rende disponibili:
•
•
I file (=archivi), zone di spazio su disco collegate tra loro e associate da un nome comune, in cui sono
contenute le informazioni di interesse per gli utenti (programmi oppure dati).
Il sistema gerarchico di gestione dei file che consente a utenti e applicazioni di organizzare i propri dati.
Un disco (ormai divenuto un nome generico anche per altre memorie di massa, come i pen-drive) può essere
usato interamente per un file system, oppure può essere diviso in partizioni, ciascuna delle quali può ospitare
un file system diverso (anche se questa situazione è abbastanza inconsueta).
Tutte le informazioni relative alle partizioni sono contenute in una struttura dati gerarchica, anticamente detta
directory (elenco), oppure indice. Il nome ora usato è folder (cartella), che descrive quegli elementi del file
system che contengono i nomi di file o di altre cartelle. Ci sono alcune cartelle privilegiate, tra le quali:
• home folder: contiene i file personali di un utente specifico;
• root folder: la cartella principale del FS, quella che contiene file e altre cartelle;
• system folder: contiene i file del sistema operativo;
• program folder: contiene programmi di utilità e middleware.
Nei sistemi Windows, il file system è organizzato in unità logiche indicate con le lettere dell’alfabeto. Le
lettere A: e B: sono storicamente riservate per le unità floppy, ora non più un uso (esistono solo come unità
esterne USB). L’unità C: è il disco di sistema (contenente il sistema operativo) All’interno della partizione di
sistema sono presenti, tra le altre, le seguenti cartelle:
•
Utenti (in XP, Documents and Settings): contiene tutti i profili degli utenti. Di default oltre alla
directory relativa all’utente “Administrator” sono presenti le directory “All Users” e “Default User": la
prima contiene informazioni valide per tutti gli utenti, la seconda è una matrice per i nuovi profili utente.
• Programmi (a volte, con versioni in inglese, “Program Files”): contiene varie cartelle con programmi e
applicazioni installati nel sistema. È possibile installare applicazioni in altre cartelle, ma per ragioni
organizzative è generalmente sconsigliato.
• Windows: contiene i principali file del sistema
• Recycler: cartella di sistema nascosta (cestino);
• System Volume Information: cartella di sistema nascosta che viene usata dallo strumento “Ripristino
configurazione di sistema” per memorizzare le informazioni e i punti di ripristino.
La cartella utenti contiene una sottocartella per ogni utente; detta profilo utente e avente per nome lo stesso
username, contiene, tra le altre, queste informazioni:
•
Dati applicazioni: contiene alcune impostazioni specifiche dei programmi installati determinate dal
produttore del software.
• Impostazioni locali: contiene i dati come la cronologia e i file temporanei.
• Desktop: file e le cartelle presenti nel desktop dell’utente;
• Documenti, musica, video che l’utente ha salvato;
• Preferiti: collegamenti ai siti web preferiti memorizzati dall’utente.
Nel sistema operativo Windows tutte le configurazioni (hardware, sistema, utente, dati) sono
memorizzate nel registry (registro di sistema). Anch’esso è organizzato come una cartella, ed è
modificabile con un programma chiamato regedit (da usare con cautela).
Partizioni
Una partizione è sostanzialmente una parte di un disco (o di più dischi) che il sistema operativo rende
indipendente dal punto di vista logico e a cui assegna un apposito file system. Molto frequentemente su unità
disco fisiche sono definite più partizioni (ovvero più unità disco logiche) come mostrato nella prima
immagine sottostante. A volte, al contrario, sono usati più dischi per creare un’unica partizione, come
mostrato nella seconda immagine:
Per usare una partizione bisogna assegnare predisporre la superficie fisica del disco e il file system.
Questa operazione si chiama formattazione, e può essere di due tipi:
•
ad alto livello (rapida), che cancella i riferimenti ai file, ma lascia inalterata la superficie del disco.
•
a basso livello (completa), che cancella sia le informazioni del file system sia il disco.
N.B.: un disco usato, anche se formattato, può essere comunque letto, anche se solo in
parte, e da utenti molto esperti. L’unico modo per impedire l’accesso alle informazioni
con assoluta sicurezza è la distruzione del disco.
Esistono due tipi di partizioni: primarie ed estese. Una partizione estesa è una partizione che può contenere
una o più sottopartizioni, chiamate dischi logici (o partizioni logiche). Una partizione primaria invece non
può contenere sottopartizioni ma può essere usata per contenere ed avviare il sistema operativo. Una sola
delle partizioni primarie può essere attiva in un certo momento e solo da quella partizione può essere avviato
il sistema operativo.
Un disco di base [vedere sotto] può contenere fino a 4 partizioni primarie, o tre partizioni primarie ed una
estesa, all’interno della quale è possibile creare fino a 60 partizioni logiche.
Le partizioni, normalmente, sono statiche ed associate ad un singolo disco. Per superare questo vincolo, in
ambiente Windows (ed anche in Linux) sono stati creati particolari metodi di allocazione dello spazio disco,
volumi di base e volumi dinamici. In un volume di base, le partizioni si possono estendere solo all’interno
del disco fisico, mentre in un volume dinamico si possono estendere anche ad altri dischi fisici. La gestione
dei volumi avviene attraverso il comando DiskPart ed è possibile solo per il file system NTFS (si tratta di
operazioni delicate, che si consiglia lasciare agli utenti esperti).
Memorizzazione dei dati
Per ottimizzare le operazioni di lettura e scrittura, il file system non alloca la memoria del disco settore per
settore, ma in unità costituite da un insieme contiguo di settori (cluster). Il cluster è
quindi l’unità di allocazione su disco (la più piccola quantità di memoria disco che
possa essere allocata). La struttura del disco, diviso in tracce (A), settori (B), e cluster
(C) è mostrata nella figura a destra (può esserci anche uno sviluppo verticale, nel caso
l’hard disk sia composti da più “piatti”: il disco a sinistra ha
4 piatti e 8 testine di lettura/scrittura).
Per esempio, in un disco che usa 512 byte per settore, un
cluster di 512 byte contiene 1 settore, mentre uno di 4 Kb
contiene 8 settori. Essendo il cluster l’unità minima di allocazione, se sono troppo
grandi potrebbe verificarsi un forte spreco di memoria su disco. Per esempio, per
memorizzare un file di 5 Kb su un file system con cluster di 4 Kb sono necessari 2 cluster, per un totale di 8
Kb ed uno spreco di 3 Kb. In questo caso si parla di frammentazione interna, poiché la memoria disco
risulta allocata ma non disponibile.
La frammentazione esterna, invece, avviene quando tra due file si viene a
creare uno spazio vuoto troppo piccolo per memorizzare i cluster di nuovi file in
modo contiguo (tipicamente, questo avviene cancellando file il cui spazio è
compreso tra zone del disco già occupate). Il nuovo file verrà pertanto
frammentato su più cluster non contigui. In questo caso, più piccolo è il cluster
e maggiore è la frammentazione.
Nell’immagine a fianco, i file sono rappresentati da papere di diverso colore. Si
pu trovare (con alcune interessanti spiegazioni) presso:
http://electronics.howstuffworks.com/how-to-tech/how-to-defrag-hard-drive2.htm
Interna o esterna, la frammentazione è la causa principale del rallentamento del tempo di accesso al disco,
dato che aumenta il tempo di latenza medio per il reperimento dei cluster. La testina di lettura deve essere
ruotata sul proprio perno per raggiungere la traccia, inoltre la rotazione del disco deve portare il settore in
corrispondenza della testina. Queste due azioni determinano il tempo di latenza per il reperimento dei
cluster: appare chiaro che quando i dati sono sparsi per tutto il disco, il tempo di overhead23 aumenta in
modo insostenibile.
Quindi la scelta della dimensione del cluster (né troppo grande, né troppo piccolo) deve essere effettuata
molto accuratamente, tenendo in considerazione il file system da usare e la dimensione media dei file che
dovrà contenere. Ad esempio, se un utente ha a che fare con file molto grandi (come film e animazioni)
dovrà aumentare la dimensione dei cluster, per tentare di ridurre l’overhead.
L’immagine seguente esemplifica due possibili situazioni (frammentata e riorganizzata, anche se non
perfettamente). La seguente immagine è tratta da http://bucarotechelp.com:
Più avanti verrà esaminata la procedura per la deframmentazione.
23
Si definisce così il tempo sottratto all’elaborazione per svolgere operazioni di manutenzione.
Metodi di allocazione
I file system si differenziano nel modo in cui allocano i cluster di un file. Il primo metodo usato è stato quello
detto allocazione contigua, nel quale, come dice il nome, si usavano sempre cluster contigui: fu presto
abbandonato per le scarse prestazioni dovute ai tempi di latenza della testina di lettura/scrittura, e sostituito
progressivamente dai seguenti:
•
Allocazione concatenata (FAT24): i cluster di un file sono organizzati
come lista, memorizzando in ogni cluster il riferimento a quello
successivo
•
Allocazione indicizzata (prima HPFS25, poi NTFS26): il file è
memorizzato in un insieme di cluster elencato in un cluster indice,
consentendo così un accesso più veloce, perché non c’è bisogno di
inseguire i collegamenti tra un cluster e l’altro.
•
UDF27, creato dalla OSTA (Optical Storage Technology Association), per le memorie ottiche (prima CD e
poi DVD), al fine di ottimizzare la gestione di file di grandi dimensioni e per minimizzare la necessità di
cambiamenti quando un file deve essere aggiunto o cancellato (operazioni lente sulle memorie di questo
tipo).
Cache del disco
Quando si effettua una lettura da disco, l’unità individua il settore richiesto dalla memoria di massa, per
caricarlo in memoria centrale (spesso ne servono più di uno per contenere i dati necessari), ma estrae anche
quelli nelle immediate vicinanze, copiandoli dentro una zona chiamata cache del disco. Questa memoria di
passaggio (una volta definita buffer=tampone) è in un’area privilegiata del disco fisso, ad accesso veloce.
Nel caso (abbastanza probabile) che i dati della richiesta successiva siano già nella cache, si minimizza il
loro tempo di estrazione; c’è poi un altro effetto secondario nella riduzione l’usura del disco, perché la
testina di lettura/scrittura necessita di meno spostamenti. Ovviamente, prima o poi si dovrà di nuovo
accedere al disco, ma presumibilmente con meno frequenza).
E’ possibile usare la cache solo in lettura oppure anche in scrittura. In quest’ultimo caso le modifiche dei dati
vengono effettuati prima nella cache e, in un secondo momento, anche nel disco. Se vi è un interruzione di
corrente prima che i dati della cache siano stati scritti sul disco, le modifiche vengono perse (questo spiega la
presenza della rimozione sicura).
I sistemi operativi possono usano anche parte della memoria centrale (anticamente chiamata HSB: High Speed
Buffer) come cache, migliorando ulteriormente le prestazioni di accesso al disco.
Per la gestione della cache esistono diverse possibilità, sia dal Pannello di Controllo (con Strumenti di
Amministrazione / Gestione Computer / Gestione Periferiche), sia dal Prompt dei comandi, con il
programma devmgmt.msc. Immagine tratta da http://www.maran.com/dictionary/c/cachedi:
24
File Allocation Table
High Performance File System
26
New Technology File System
27
Universal Disk Format
25
Gestione dei dischi
I dischi sono unità fondamentali, in quanto deposito dei dati utente. Questi vanno protetti e controllati in ogni
modo possibile, essendo un patrimonio di informazioni spesso di vitale importanza per un’attività o una
persona28. Le situazioni da evitare si possono suddividere in questo modo:
•
•
perdita di dati;
danneggiamento dell’unità disco (che, ovviamente, comporta anch’esso una perdita di dati).
I dati vengono persi molto più spesso per propria imperizia che per interventi malevoli da parte di pirati
informatici. Può anche mettersi di mezzo la malasorte, quando uno spegnimento improvviso del computer
avviene prima che tutti i dati siano stati salvati: la protezione maggiore, tuttavia, è quella contro sé stessi:
manovre avventate o frettolose si traducono spesso nella sovrascrittura o nella cancellazione di dati
importanti, molto più frequentemente degli “interventi” esterni. A volte può avvenire un danno fisico ad un
disco, che, ovviamente, comporta anch’esso la perdita di tutti i suoi dati; anche in questo caso ha poca
importanza se si tratta di un sabotaggio o del semplice fatto che ogni dispositivo è soggetto a guasti.
Il sistema operativo e i programmi sono generalmente recuperabili, ripetendo le procedure di installazione; i
dati, invece, sono responsabilità dell’utente. Per quanti strumenti possano essere adottati (backup automatici
e RAID29 su tutti) è sempre consigliato fare delle copie su unità rimovibili, da conservare in luogo sicuro o su
un altro computer; hard disk esterni, CD e DVD sono comunemente usati per queste operazioni. Una volta che
i propri dati sono al sicuro, sarà possibile lavorare con più tranquillità, riguardo sia a nostre azioni inconsulte,
sia a tutti i possibili guasti e danni che possono capitare. Esistono specialisti e strumenti in grado di
recuperare dati, anche da dischi danneggiati, ma non è garantito che venga ripristinato tutto quanto è andato
perso, perciò la copia preventiva rimane sempre e comunque l’unica vera protezione.
Permessi
L’accesso ai dati, legittimo o no, può essere regolato con i permessi di
accesso, Introdotti con il file system NTFS, possono essere attribuiti con
diverse opzioni, che possono riguardare singoli utenti o interi gruppi, singoli
file o intere cartelle.
La gestione dei permessi viene attivata selezionando le proprietà del file o
della cartella interessati. I permessi possono riguardare varie operazioni:
Lettura, Modifica, Scrittura, Esecuzione, Elenco. Esistono anche permessi
più avanzati, che di solito vengono lasciati agli specialisti.
I permessi sono gestiti da due categorie di utenti:
• l’utente proprietario di un oggetto;
• l’amministratore del sistema operativo.
Sono detti utenti privilegiati quelli che hanno a disposizione tutti gli accessi; normalmente si tratta di esperti,
meno propensi a commettere errori o a danneggiare il contenuto o il funzionamento del file system.
Salvataggio automatico
Questa operazione (detta backup) può facilitare nella manutenzione dell’integrità dei dati. Può essere
effettuata in modo logico (copia di file) o fisico (duplicazione di un intero disco); oltre ai sistemi operativi,
anche molti software permettono di pianificare i salvataggi.
Journaling
Questa tecnologia è usata in molti file system moderni: ogni transazione effettuata su disco genera un log30 in
un apposito registro, dove vengono memorizzati i dettagli dell’operazione, compresi tipo, data e ora, utente
responsabile. Questo permette di rintracciare le registrazioni fatte, per tentare di ricostruire dei dati in seguito
danneggiati o, più spesso, per individuare i responsabili di azioni dannose o criminose.
28
29
I video porno di solito non rientrano nella categoria dei dati importanti.
Redundant Array of Independent Devices: si tratta di dischi aggiuntivi dove i dati vengono copiati, o con operazioni
periodiche o con duplicazioni complete dei dischi di lavoro.
30
Captain’s log è il giornale di bordo in marina.
Manutenzione dei dischi
I dischi dei computer sono dispositivi soggetti ad errori, data la loro struttura complessa
e il numero elevato di operazioni che vengono eseguite su di essi. A questo si
aggiungono possibili guasti di natura esterna, solitamente dovuti a bruschi spegnimenti
del sistema o ad altri incidenti fisici. I principali sistemi operativi mettono a
disposizione delle utility che permettono di controllare in modo accurato il file system e
la consistenza della sua struttura, per correggere gli errori e rimediare alle situazioni di
frammentazione. Un’altra operazione che può risultare utile è l’eliminazione dei file
temporanei che molte applicazioni lasciano sparsi per il disco, sia in fase di installazione sia in fase di uso.
A seconda del tipo di disco che si vuole controllare questi strumenti possono essere eseguiti senza
interrompere le normali attività oppure, come ad esempio quando si vuole analizzare il file system in cui è
installato il sistema operativo, richiedono il riavvio del sistema per effettuare la verifica in fase di boot,
quando ancora nessun servizio è stato avviato.
In Windows esistono due utility che correggono (o tentano di farlo) gli errori dovuti a perdita di informazioni
sui file, per perdita di collegamenti o danneggiamento a settori:
scandisk
chkdsk
da Accessori (pulizia disco/controllo superficie del disco)
da Prompt dei comandi (comando legacy residuo del DOS)
Un’altra utility riorganizza il contenuto del disco per ridurre il fenomeno della frammentazione, e consentire
così migliori prestazioni nelle successive operazioni di accesso alla memoria di massa, compattando le
informazioni associate in aree contigue del disco.
defrag
da Accessori o da Prompt dei comandi
Questo programma (e tutti quelli commerciali ad esso simili) visualizzano una mappa dei settori del disco
prima e dopo la cura: va detto che difficilmente si riesce a riorganizzare completamente il contenuto, ma
generalmente la situazione finale è molto meno critica.
Queste utility consentono anche la sola analisi del contenuto del disco, senza procedere agli aggiornamenti,
per progettare e pianificare meglio l’azione effettiva: si tratta infatti di operazioni complesse, che non devono
essere interrotte, altrimenti si corre il rischio di ritrovarsi una situazione incompleta, con perdita di dati.
Nei sistemi GNU/Linux la contiguità dei file è un problema minore, soprattutto nei file system più recenti.
Questo perché hanno a disposizione sofisticati algoritmi che permettono di ottimizzare al massimo la
disposizione dei file sull’hard disk, in particolare delle procedure di garbage collection, che hanno lo scopo
di unire in un unico blocco il maggior numero di aree libere. Il problema in questi sistemi è che, al momento
in cui si giunge al bisogno della deframmentazione, generalmente il disco è quasi pieno, e non ha più lo
spazio sufficiente per effettuarla (è anche vero che questo avviene dopo anni di uso, ed a quel punto il disco è
probabilmente da sostituire).
Pulizia dei dischi
Eliminazione dei dati inutili
Spesso le unità a disco subiscono un degrado delle prestazioni per l’uso generalizzato di file temporanei, che
possono essere residui di installazioni, dati provvisori di svariati programmi applicativi, o, più spesso, per
mantenere traccia delle proprie frequentazioni Web. Per evitare che numero e dimensioni di questi file cresca
a dismisura può essere utile sapere dove questi file vengono comunemente memorizzati e come usare
strumenti che ci aiutano ad eliminarli, almeno periodicamente.
Nei sistemi Windows è possibile rimuovere questi dati:
•
tracce della navigazione nell’Internet;
•
dati del Cestino;
•
file temporanei di Windows;
•
componenti facoltativi di Windows.
•
punti di ripristino della configurazione del sistema (ad eccezione, possibilmente, di quello più recente).
Anche il Cestino, nonostante le apparenze, è una cartella del disco di sistema. Ci sono anche alcuni che lo
usano come tale, per contenere dati di servizio, ma non è un’abitudine consigliabile: potrebbe essere
impostato lo svuotamento automatico del cestino, che ne cancella definitivamente il contenuto. Un file
eliminato con il Prompt dei Comandi, invece, è comunque perso per sempre.
Eliminazione dei programmi inutili
Nel pannello di controllo, alla voce “Programmi e funzionalità” , è possibile consultare l’elenco di tutti i
programmi installati. Spesso capita di scaricare versioni dimostrative di programmi, o di provare nuove
applicazioni: in questa sede possono essere selezionati e disinstallati i programmi che non si usano.
Eliminazione delle barre di strumenti inutili
Tutti gli interventi descritti sono indubbiamente da fare, almeno periodicamente. Vanno però integrati con la
rimozione periodica di tutto il ciarpame che viene installato inavvertitamente quando si scaricano utility
dall’Internet. Un vero flagello sono le barre di ricerca, che spesso accompagnano i programmi scaricati,
usando a tradimento spunte di consenso ben nascoste: prestando un po’ di attenzione è possibile non
installarle, ma talvolta, per la fretta o per la distrazione, ci si ritrova il computer intasato, con visibili
rallentamenti e schermi occupati dalle barre anziché dai dati che servono. Alcune di queste oscenità possono
essere rimosse da “Programmi e funzionalità”, altre vanno disattivate delle impostazioni dei “Componenti
aggiuntivi” dei browser.
Ad esempio, la barra di ricerca della “Transport for London” (l’azienda dei trasporti di Londra) non riesce a
trovare un treno che sia uno, in compenso rallenta tragicamente il computer e occupa, nella sua trionfante
inutilità, un bel po’ di spazio sullo schermo31:
Esistono alcuni software che permettono di controllare ed eliminare le barre di ricerca, effettuando il
cosiddetto cleanup:
31
Indicato con il termine real estate, usato per le proprietà immobiliari..
Come si organizzano i programmi
Il desktop è una cartella
Molti hanno la pessima abitudine di salvare tutto quanto è possibile sul proprio desktop. Il problema è che,
contrariamente a quanto sembra, il desktop non è un luogo privilegiato, ma una cartella come tutte le altre,
all’interno della cartella Utenti. Il nome completo di tale cartella è piuttosto complesso; nell’esempio
sottostante è:
C:\Users\Docente (a scuola)\Desktop
N.B.
Nella versione italiana di Windows,
sullo schermo si legge Utenti, ma in
realtà il nome è quello della versione
originale, Users.
Nell’uso di alcuni programmi di sviluppo (come i compilatori dei linguaggi di programmazione) è una
pessima abitudine quella di usare il desktop come contenitore. Per prima cosa, questi programmi hanno
difficoltà a distinguere i propri file all’interno di cartelle con nomi complessi, comprendenti per di più degli
spazi; la difficoltà è ancora maggiore per chi sviluppa, quando si tratta di unire parti di programma
memorizzate in sottocartelle diverse.
I maestri insegnano ad usare sottocartelle del disco fisso con nomi semplici e significativi, senza passare per
un intricato percorso che porta dal disco all’utente, dall’utente al desktop, dal desktop ad altre sottocartelle.
Nell’esempio sottostante, ad ogni cartella corrisponde un’applicazione o un elenco di file associati. Non ci
sono complicazioni, né nomi dalla difficile gestione:
Due delle applicazioni presenti sul disco sono nelle seguenti cartelle:
C:\circe
C:\eclipse
Il consiglio dei maestri rimane fondamentale:
usate le cartelle nel disco,
disco non nel desktop