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:

  1. apriamo il rubinetto
  2. versiamo dell'acqua nella parte inferiore della macchinetta
  3. appoggiamo il filtro sopra la parte che contiene l'acqua
  4. versiamo il caffe' sopra il filtro con un cucchiaino
  5. avvitiamo la parte superiore della macchinetta alla parte inferiore
  6. appoggiamo la macchinetta sulla fiamma della cucina a gas
  7. 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:
  1. una parte meccanica ed elettrica (hardware)
  2. 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:

  1. 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)
  2. Un microprocessore (o CPU, Central Processing Unit), ossia il computer vero e proprio
  3. 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
  4. Un hard disk, ossia dove vengono memorizzati tutti i dati (documenti, immagini, video, programmi etc)
  5. Dei banchi di memoria RAM
  6. Una scheda video (contiene un altro piccolo computer dedicato alla gestione del video)
  7. Una scheda audio (contiene un altro piccolo computer dedicato alla gestione dell'audio)
  8. 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:

  1. video
  2. tastiera
  3. mouse
  4. stampante
  5. scanner
  6. modem (puo' anche essere interno, cioe' dentro il PC)
  7. diffusori audio aggiuntivi (chiamati casse, altoparlanti o speaker)
  8. microfono
  9. webcam
  10. memorie di massa aggiuntive come ad esempio lo ZIP
  11. 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