Il computer
2.1 Cosa e' un computer concettualmente
Un computer e' essenzialmente una
macchina, composta da parti di plastica, parti
metalliche, cavi e circuiti elettrici. Non e' un
apparecchio molto diverso da un'automobile, una macchina
per cucire od un frullatore. La sola differenza che lo
distingue dalle altre macchine e' il fatto che puo'
essere programmato.
Cosa significa cio'? Semplice:
puo' essere istruito in modo da poter eseguire qualsiasi
tipo di compito. Un frullatore puo' fare solo una cosa:
frullare dei cibi. Un'automobile puo' solo percorrere
una strada ed una macchina per cucire puo' solo
cucire dei tessuti. Nessuno si sognerebbe mai di usare un
frullatore per andare al lavoro o di usare un'automobile
per preparare un frullato di mele. Un computer al
contrario, puo' essere programmato
in modo da eseguire di volta in volta delle cose
completamente diverse.
Per programmare un computer
occorre scrivere un programma.
Cosa e' un programma? E' un insieme di istruzioni
che vengono impartite alla macchina. Facciamo il classico
esempio del caffe': chiunque e' in grado di fare un
caffe' usando una caffettiera. La cosa sulla quale non
riflettiamo mai pero', e' l'insieme di operazioni che
effettuiamo tutte le volte che prepariamo un caffe'. Sono
sempre le stesse. Vediamole:
- apriamo il rubinetto
- versiamo dell'acqua nella
parte inferiore della macchinetta
- appoggiamo il filtro sopra
la parte che contiene l'acqua
- versiamo il caffe' sopra il
filtro con un cucchiaino
- avvitiamo la parte superiore
della macchinetta alla parte inferiore
- appoggiamo la macchinetta
sulla fiamma della cucina a gas
- attendiamo che l'acqua salga
sulla parte superiore della macchinetta
Bene. Supponiamo di voler
insegnare a fare il caffe' ad una persona che non lo sa
fare. Cosa dovremmo fare? Dovremmo elencargli tutte
queste operazioni. Insomma, dovremmo dargli delle istruzioni.
Ora supponiamo che tale persona abiti in una citta'
diversa dalla nostra. Potremmo scrivere le istruzioni in
una lettera e spedirgliela. Ecco: le istruzioni scritte
in quella lettera sono un programma.
Potremmo chiamarlo programma 'prepara-caffe'. Questo
programma fara' sempre la stessa cosa: insegnera' a
preparare un caffe'. Tutte le volte che eseguiremo
quelle istruzioni prepareremo un caffe'. E' impossibile
che qualche volta esca fuori un frullato di frutta! ;o)
In altre parole, eseguendo fedelmente le istruzioni non
sbaglieremo mai.
Ecco: un computer e'
solo una macchina che esegue delle istruzioni contenute
all'interno di un programma. Se le
istruzioni sono corrette il risultato sara' sempre lo
stesso. Ma supponiamo che chi abbia preparato le
istruzioni sia stato un po' maldestro o distratto.
Supponiamo che nell'esempio di prima non sia stata
specificata la quantita' di acqua da versare nella
caffettiera. Cosa accadra'? Semplice: tutte le volte che
verra' versata troppa acqua, verra' prodotto del caffe'
lungo e la caffettiera potrebbe far schizzare il caffe'
fuori dalla macchinetta. Ma colui che ha scritto il
programma 'prepara-caffe' in realta' ha dimenticato di
specificare varie cose: ad esempio la quantita' esatta di
acqua da versare, la quantita' esatta di caffe' da
versare, la quantita' di gas da dosare per produrre la
fiamma, il tempo che occorre aspettare prima di spegnere
la fiamma. Omettendo queste cose, il caffe' prodotto
potrebbe risultare ogni volta leggermente diverso. Se
colui che scrive il programma si dimenticasse di scrivere
l'istruzione numero 2 (versare l'acqua nella parte
inferiore della macchinetta), eseguendo tale programma
non si produrrebbe del caffe' affatto! Al contrario si brucerebbe la guarnizione di gomma della macchinetta
(cosa realmente accaduta al sottoscritto in un momento di distrazione ). ;o) Ecco perche'
quando il computer esegue le istruzioni di un programma,
puo' piantarsi a causa di un errore contenuto in detto
programma. Se al contrario il programma e' perfetto, il
computer non si piantera' mai.
Un computer quindi e' una
macchina molto ma molto stupida: non prende mai
iniziative, esegue solo le istruzioni contenute nei
programmi. Fedelmente ed alla lettera. Se i programmi
sono perfetti, il computer non sbagliera' mai, in caso
contrario sbagliera' a volte. Pero' il computer ha una
qualita' che lo rende superiore agli umani: esegue le
istruzioni che gli vengono fornite, alla velocita' della
luce! Esistono tanti tipi di computer diversi, dai piu'
piccoli ai piu' grandi. I computer molto grandi si
chiamano mainframe, i computer
piu' piccoli microcomputer,
quelli che stanno a meta' strada, minicomputer.
Il computer oggi e' diventato una macchina molto diffusa
nelle case, come qualsiasi altro elettrodomestico. Con un
grosso computer lavorano centinaia di persone (pensiamo
ad esempio al computer di un centro di elaborazione dati
di un aereoporto). Il computer che utilizziamo nelle
nostre case al contrario, solitamente permette di
lavorare ad una persona alla volta. E' un computer
personale, ossia un Personal Computer
(che abbreviato diventa PC).
Anche se in realta' non e' esattamente cosi', in quanto
come vedremo in seguito, questo dipende in gran parte dal
Sistema Operativo utilizzato.
2.2 Cosa e' un
Sistema Operativo
Quando accendiamo il nostro
computer, diamo corrente ai circuiti elettrici della
macchina, ma, come abbiamo detto prima, la macchina non
prende mai iniziativa: attende sempre che qualcuno la
imbecchi con delle nuove istruzioni. Attende cioe' quello
che in termini tecnici viene definito input.
Bene, le istruzioni che la macchina esegue, sono sempre
contenute all'interno di un programma. Sorge quindi
spontanea la domanda: qual'e' il primo programma che la
macchina esegue non appena viene accesa? E' presto detto.
Tale programma si chiama Sistema Operativo.
In realta' un Sistema Operativo (abbreviato SO oppure OS
in inglese) non e' un solo programma, ma un insieme di
programmi. Un Sistema Operativo puo' contenere milioni di
istruzioni, percio' di solito si preferisce dividerlo in
tanti pezzetti piu' piccoli, tanti piccoli programmi,
ognuno dei quali si occupa di compiti ben precisi. Di
solito chi scrive un Sistema Operativo non e' una sola
persona, ma una squadra di persone (programmatori).
Ognuna si occupa di un singolo pezzetto. Cosi' e' piu'
facile evitare degli errori. Infatti e' molto piu'
semplice scrivere un piccolo programma che un programma
gigantesco. Cosi' come e' molto piu' semplice scrivere un
tema su un argomento specifico che non un intero romanzo.
Tutti i pezzetti, o meglio i programmi che compongono il
Sistema Operativo, vengono riposti all'interno di librerie.
Una libreria e' paragonabile ad uno scaffale che contiene
dei libri. Solo che in questo caso al posto dei libri ci
sono dei programmi. I programmi contenuti nella libreria
vengono definiti moduli o membri.
2.3 Cosa e' un
computer realmente
Un computer e' un congegno
composto da due parti:
- una parte meccanica ed
elettrica (hardware)
- un insieme di programmi
(software)
Non e' possibile far funzionare
un computer senza programmi. E' un po' come una
automobile senza autista od un aereo senza pilota. La
parte meccanica ed elettrica viene definita 'parte dura'
o meglio hardware, mentre
l'insieme dei programmi viene definito 'parte morbida' o
meglio software. Una operazione
per noi semplicissima, come la stampa di una videata ad
esempio, e' in realta' un'operazione molto complessa
nella quale entrano in gioco piu' di un programma. Sono
minimo 2 i programmi coinvolti in questa operazione: il
programma che si occupa della stampa ed il driver
della stampante. Cos'e' un driver? Un driver
e' un programma super specializzato che interagisce con
una specifica periferica. Una periferica e'
una macchina aggiuntiva che viene collegata al computer,
come ad esempio una stampante, un modem, uno scanner od
una webcam. Esistono centinaia di stampanti diverse,
cosi' come esistono centinaia di modem diversi o di
scanner. Esistono varie marche di stampanti, come ad
esempio IBM, Canon, Hewlett-Packard, Lexmark, Fujitsu,
Epson, cosi' come esistono varie marche di scanner o di
modem. All'interno di ogni marca poi, esistono varie
tipologie, come ad esempio le stampanti a getto di
inchiostro, le stampanti laser, le stampanti ad aghi o
quelle termiche. Esistono poi stampanti a colori e
stampanti in bianco e nero. Infine esistono vari modelli
di stampanti laser o di stampanti a getto di inchiostro.
Insomma, esistono migliaia di apparecchi tutti diversi
tra loro. Bene, un driver (pilota) puo' essere paragonato
ad un pilota di F1: infatti un pilota di F1 puo' non
essere capace di pilotare un aereo come il Boeing 747,
cosi' come un pilota di tale aereo puo' non essere capace
di pilotare un elicottero od un treno. Questo perche'
tali macchine sono completamente diverse tra loro, ed e'
molto improbabile che una sola persona sia in grado di
pilotare tutte queste macchine indifferentemente. Un
driver quindi e' un programma specializzato che pilota
una periferica ben precisa. Un driver di una stampante a
getto d'inchiostro ad esempio, si occupa di fornire le
istruzioni adatte a tale stampante affinche' venga
spruzzata la giusta quantita' di inchiostro per ogni
carattere, affinche' la pagina venga stampata all'interno
di un foglio e non a cavallo tra due fogli, affinche' la
pagina stampata venga espulsa fuori dalla stampante etc.
Queste operazioni sono diverse a seconda del modello di
stampante, ecco perche' solitamente driver vengono
forniti dagli stessi produttori delle periferiche. Quando
si acquista una stampante laser ad esempio, all'interno
della confezione vengono forniti anche dei dischetti
contententi i driver che gestiscono quella data
stampante. Per scrivere un driver di una stampante
occorre sapere minuziosamente come funziona quella data
stampante all'interno: chi meglio del produttore della
stampante conosce il funzionamento interno di tale
apparecchio? Ma se un driver e' un programma, ossia un
insieme di istruzioni, quale computer si occupera' di
eseguire tali operazioni? Il nostro PC? No. Un driver
solitamente fornisce istruzioni al piccolo computer super
specializzato che e' contenuto all'interno di ogni
periferica. Qualsiasi stampante o qualsiasi scanner ad
esempio, contiene all'interno un piccolo computer che
esegue le istruzioni contenute all'interno del driver
muovendo delle parti meccaniche (dosando la pompa
dell'inchiostro, aprendo o chiudendo gli ugelli di stampa
etc.). Ma un driver non fornisce solo delle istruzioni ad
una stampante: produce anche dei risultati sotto forma di
responso finale. In caso di errori della stampante ad
esempio, il driver fornisce un messaggio di errore al
programma di stampa che e' contenuto nel nostro PC. Se
tutto va bene invece, fornisce un messaggio che indica
che la situazione e' sotto controllo. Il driver e' un
programma, e come tale puo' contenere degli errori. Ad
esempio puo' non contenere delle istruzioni adatte per
gestire un tipo di errore preciso, come la mancanza dei
fogli di carta o la fine dell'inchiostro. Se tale errore
non viene preso in considerazione dal driver, a causa di
una distrazione del programmatore che ha scritto il
driver stesso, il programma di stampa contenuto
all'interno del Sistema Operativo del nostro PC puo'
andare in tilt, in quanto non riceve risposta dal driver
o riceve una risposta errata. In questi casi puo'
accadere che il Sistema Operativo gestisca l'errore come
puo', fornendo a video un messaggio del tipo: 'questo
programma ha causato un errore e sara' terminato'.
Messaggio ben noto agli utilizzatori del Sistema
Operativo Windows. ;o) In realta' tutto il meccanismo e' piu' complesso, in quanto entrano in gioco
altre entita' come ad esempio gli IRQ (Interrupt ReQuest) che sono delle interruzioni hardware
che permettono la comunicazione tra periferiche e cpu. Al momento comunque non e' importante
conoscere questi meccanismi in dettaglio ma e' sufficiente capire il concetto generale che
sta alla base.
2.4 Cosa e' una
periferica
Una periferica quindi e' una
macchina che viene collegata al nostro PC. Ma non e'
necessariamente una macchina che si trova all'esterno del
nostro PC, perche' puo' essere anche contenuta
all'interno. Il disco fisso, la scheda video o quella
sonora ad esempio, sono delle periferiche interne. Il
computer vero e proprio infatti, non e' altro che un
circuito elettrico miniaturizzato che e' contenuto
all'interno di un contenitore non piu grande di un
centimetro quadrato. Questo componente in realta' non si
chiama computer ma microprocessore
o, in termine tecnico microchip.
Il microprocessore e' il vero calcolatore,
colui che esegue tutte le istruzioni dei vari programmi
di volta in volta in esecuzione. Tutto le
altre parti esterne al microprocessore vengono definite
periferiche. Il cuore del nostro PC e' quindi il
microprocessore.
2.5 Come e' fatto un computer
Un PC visto dall'esterno e'
essenzialmente una scatola di plastica alla quale sono
collegati un video ed una tastiera tramite alcuni cavi
elettrici. Inoltre e' presente un cavo elettrico che
collega il PC ad una presa di corrente. Ok, ma cosa e'
contenuto all'interno di questa scatola di plastica?
Prima di tutto il famoso microprocessore, cioe' il
computer vero e proprio o CPU,
in secondo luogo un disco fisso o hard disk,
ed infine una memoria o RAM.
Secondo lo schema seguente:

Ma a cosa servono un hard disk ed
una RAM? Un hard disk o disco fisso non e' altro che un
contenitore dove vengono registrati i nostri dati. Puo'
essere paragonato ad una musicassetta, ad una
videocassetta, ad un disco musicale in vinile (i vecchi
45 e 33 giri), o anche ad un quaderno. Un hard disk
contiene documenti, immagini, foto, video, brani
musicali, lettere, e-mail, programmi etc. Insomma
qualsiasi cosa. Quando spegniamo il PC, i dati che sono
contenuti nell' hard disk non vengono perduti, ma
rimangono registrati per sempre. Riaccendendo il PC
infatti, ritroviamo tutti i nostri dati che avevamo
registrato. Un hard disk e' composto - schematizzando -
da un disco di metallo, un motore elettrico ed una
testina. Il funzionamento e' simile al vecchio
giradischi. Il motore elettrico fa girare il disco di
metallo ed una testina viene posata sul disco in
rotazione per leggere le informazioni memorizzate in
detto disco. In teoria il PC non avrebbe bisogno di altri
apparecchi per funzionare, ma in pratica non e' cosi'.
Vediamo per quale motivo. Il microprocessore esegue le
istruzioni contenute nei programmi alla velocita' della
luce. Milioni di istruzioni vengono eseguite in un solo
secondo. Queste istruzioni sono contenute all'interno di
programmi. Ma dove sono immagazzinati questi programmi?
Nell'hard disk. Il problema e' che per leggere le
istruzioni contenute in un programma memorizzato
sull'hard disk occorre molto tempo. Infatti occorre far
girare il disco e occorre spostare il braccio dove si
trova la testina, sulla superficie del disco. Tutte
queste operazioni impiegano del tempo. Supponiamo che per
leggere una istruzione occorra un secondo (viene azionato
il motore elettrico che fa girare il disco, viene
spostato il braccio con la testina, viene letta
l'istruzione contenuta nel programma scritto sul disco).
Supponiamo ora che il nostro microprocessore debba
eseguire un programma di 7 istruzioni (il programma
'prepara-caffe'). Bene, per eseguire l'intero programma
occorrono quindi 7 secondi (1 secondo per leggere una
istruzione). Ma quante istruzioni potrebbe eseguire il
microprocessore in 7 secondi? Milioni e milioni! Invece
e' costretto ad eseguire solo 7 istruzioni. Un
microprocessore che puo' eseguire 1.000.000 istruzioni in
un secondo, non appena esegue la prima istruzione e'
costretto ad aspettare la prossima istruzione. Per capire
meglio il problema facciamo l'esempio di un operaio delle
poste addetto a controllare l'avvenuta timbratura sulle
lettere. Questo operaio prende le lettere da un tappeto
scorrevole. Puo' controllare 3600 lettere in un'ora. In
un solo secondo prende una lettera, controlla il timbro e
la ripone nel cestello delle lettere controllate.
Supponiamo ora che il tappeto scorrevole si guasti e che
le lettere gli vengano portate a mano dal portalettere.
Il portalettere puo' consegnargli solo una lettera all'
ora. Il nostro operaio appena riceve la prima lettera, in
un secondo la controlla e la mette nel cestello delle
lettere controllate. Ma un'ora e' composta da 60 minuti,
ossia 3600 secondi. 3600-1=3599. Bene, potrebbe
controllare altre 3599 lettere, invece e' costretto ad
aspettare la prossima lettera tra un'ora. Percio' si
siede su una poltrona, accende la televisione, prende un
drink ed aspetta il portalettere. Ma il suo capo non lo
paga per stare in poltrona a bere drink. Lo stesso
discorso vale per il microprocessore. Se per eseguire 7
istruzioni impiega 7 secondi, beh, tanto vale che non
usarlo affatto. Ecco perche' e' stata inventato un nuovo
tipo di memoria dove vengono memorizzate le istruzioni
dei programmi. Un tipo di memoria velocissima da
consultare. Il microprocessore puo' leggere una
istruzione memorizzata in tale memoria in 10 miliardesimi
di secondo. Il che significa che in un secondo puo'
leggere 100.000.000 di istruzioni. Decisamente piu'
efficente di un hard disk. Bene, questo tipo di memoria
si chiama RAM o Random
Access Memory, ossia memoria ad accesso
casuale. Ma allora perche' non usare solo questo tipo di
memoria ed eliminare il lento hard disk? Semplice, un
hard disk puo' contenere milioni e milioni di
informazioni mentre una memoria RAM puo' contenere
pochissime informazioni. Un hard disk puo' contenere
migliaia di foto, video, documenti. La memoria RAM no. La
capacita' di un hard disk o di una memoria RAM viene
misurata in byte. Un byte e' l'unita' di misura della
memoria. Un carattere come la lettera A od un numero come
la cifra 7 richiedono un byte di memoria per essere
memorizzati. La parola 'cane' e' composta da 4 caratteri
e richiede quindi 4 byte per essere memorizzata. I
multipli dei byte piu' usati sono il Kilobyte (abbreviato
Kb) che rappresenta 1.000 byte, Il Megabyte (abbreviato
Mb) che rappresenta 1.000.000 di byte ed il Gigabyte
(abbreviato Gb) che rappresenta 1.000.000.000 di byte.
Ci sono dei programmi che vengono
eseguiti ininterrottamente dal computer a nostra
insaputa. Ad esempio esiste un piccolo programmino che
'legge' la tastiera. Ogni volta che viene premuto un
tasto della tastiera, quel programmino viene eseguito. Il
programma legge il tasto premuto e comunica il
significato di quel tasto (ad esempio la lettera A o la
cifra 4) al microprocessore (in realta' le operazioni
compiute da questo programma sono molto piu' complesse).
Bene, poiche' le istruzioni contenute in questo programma
vengono eseguite centinaia di volte al secondo, e poiche'
per leggerle dall' hard disk occorre molto tempo,
all'accensione del PC viene caricato l'intero programmino
nella memoria RAM, in modo che il microprocessore possa
leggere le istruzioni molto rapidamente.
2.6 I componenti di un PC
Un PC e' composto da parti
aggiuntive esterne (periferiche) e parti interne. Aprendo
il contenitore di un PC saranno visibili al suo interno:
- Un alimentatore, ossia un
apparecchio che trasforma la corrente elettrica
alternata dell'impianto elettrico domestico a 220
volt in corrente elettrica continua a circa 5
volt (mentre in un frullatore il motore elettrico
viene alimentato da 220 volt, qui occorre un
voltaggio decisamente piu' basso, altrimenti
si...friggono i componenti elettronici ;o)
- Un microprocessore (o CPU,
Central Processing Unit), ossia il computer vero
e proprio
- Una scheda madre, ossia uno
circuito stampato (piastra di materiale plastico
dove viene stampato il circuito elettrico in rame
e vengono saldati i componenti elettronici) sul
quale viene saldato il microprocessore
- Un hard disk, ossia dove
vengono memorizzati tutti i dati (documenti,
immagini, video, programmi etc)
- Dei banchi di memoria RAM
- Una scheda video (contiene
un altro piccolo computer dedicato alla gestione
del video)
- Una scheda audio (contiene
un altro piccolo computer dedicato alla gestione
dell'audio)
- Una unita' lettore di floppy
disk (dove vengono inseriti i cosidetti
'dischetti')
Normalmente pero' un PC medio
puo' contenere anche altri dispositivi come ad esempio
dei lettori di CD ROM o dei masterizzatori. Esistono poi
altri apparecchi che vengono collegati al PC ma si
trovano al suo esterno:
- video
- tastiera
- mouse
- stampante
- scanner
- modem (puo' anche essere
interno, cioe' dentro il PC)
- diffusori audio aggiuntivi
(chiamati casse, altoparlanti o speaker)
- microfono
- webcam
- memorie di massa aggiuntive
come ad esempio lo ZIP
- altro (in pratica e'
possibile collegare qualsiasi cosa ad un PC!)
I componenti elettrici interni
vengono alimentati dall'alimentatore, che preleva 220
volt e li abbassa a 3 o 5 o 12 volt, ma gli apparati
esterni come la stampante o lo scanner sono alimentati da
alimentatori a parte. Ecco perche' e' necessaria una
presa elettrica multipla (ciabatta) per collegare tutti
gli alimentatori esterni alla rete elettrica a 220 volt.
Un discorso a parte vale per il monitor, in quanto viene
alimentato direttamente dalla rete elettrica a 220 volt.
Il monitor e' un apparecchio simile ad un televisore e
funziona ad alte tensioni. Al suo interno infatti e'
presente un apparato che al contrario degli alimentatori
alza il voltaggio anziche' abbassarlo.
Si potrebbe ritenere che
assemblare un PC, collegando le varie schede interne ed i
vari apparati esterni sia un compito da addetti ai lavori
(e comunque di esclusivo appannaggio di tecnici
elettronici super specializzati). Se si apre un PC, si
notera' che all'interno sono presenti vari componenti,
schede ed una miriade di cavi elettrici; aggiungere o
rimuovere un componente puo' sembrare quindi una impresa
ardua. Ma non e' cosi'. Ad esempio, volendo aumentare la
quantita' di memoria RAM, e' sufficiente comprare un
banco di memoria aggiuntivo ed inserirlo a pressione
nell'apposita sede. Non e' possibile sbagliare, in quanto
ogni componente aggiuntivo e' dotato di un connettore che
si collega alla relativa 'presa' presente nel PC in modo
inequivocabile. E' come quando si inserisce una chiave
nella relativa serratura. Non e' possibile sbagliare
verso, in quanto la chiave entra solo in un unico verso
nella serratura. Stessa cosa per aggiungere un nuovo hard
disk. Basta collegarlo al relativo connettore,
collegare l'alimentazione ed il gioco e' fatto. Occorre
collegare un paio di cavi e niente piu'. Insomma, e' un
po' come collegare la spina del ferro da stiro alla presa
elettrica di casa. Ma tutto questo esula ovviamente dal
corso di Linux. ;o)
Inizio della guida
Un po' di storia
Indice
Come sono memorizzati i dati nel PC
Copyright (c) 2002-2003 Maurizio Silvestri
|