IDUL 2009
COMPUTER: HARDWARE E
SOFTWARE
Computer
Hardware
Software
Hardware
Struttura fisica (architettura) del calcolatore
formata da parti meccaniche, elettriche,
elettroniche
Software

Componente del calcolatore costituita dai:


Programmi di base per la gestione del sistema
(sistema operativo)
Programmi applicativi per l’uso del sistema
(possono usare i programmi di base)
PRIMA PARTE: HARDWARE
Computer
Hardware
Software
HARDWARE: IDEE CENTRALI


CICLO DI ESECUZIONE ISTRUZIONI
MEMORIA PRINCIPALE E MEMORIA
SECONDARIA
DI NUOVO LA MACCHINA DI
TURING
Dalla macchina di Turing
alla architettura di von Neumann

Un passo ulteriore, volendoci avvicinare al
funzionamento di un vero computer, è
costituito dalla
ARCHITETTURA DI VON NEUMANN
ARCHITETTURA DI VON
NEUMANN
CPU
Preleva istruzione
Esegue
Memorizza risultato
BUS
I/O Memoria
UNITA’ CENTRALE E
PERIFERICHE
Processore
Memoria
principale
Unità centrale
Stampante
Periferiche
Tasteria e monitor
Periferiche di input/output
Memoria secondaria
Architettura dei computer

Un computer deve:

elaborare l’informazione


usando il processore (Central Processing Unit CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
 usando la memoria secondaria (DISCHI RIGIDI)


fare l’input/output dell’informazione
usando i dispositivi localidi input/output
 Collegandosi in rete con altri computer

LA CPU IN DETTAGLIO
ARCHITETTURA DI VON NEUMANN:
COMPONENTI DELLA CPU

La CPU non è un unico componente ma è costituita da
componenti diversi che svolgono compiti diversi
Bus Interno
REGISTRI
Program Counter
Registro di Stato
Unità di
controllo
Registro Istruzioni
…
Unità
aritmetico
logica
Registri Generali 8 o 16
Registro Indirizzi Memoria
Registro Dati Memoria
Registro di Controllo
UNITA’ DI CONTROLLO
Bus Interno
REGISTRI
Program Counter
Registro di Stato
Unità di
controllo
Registro Istruzioni
…
Unità
aritmetico
logica
Registri Generali 8 o 16
Registro Indirizzi Memoria
Registro Dati Memoria
Registro di Controllo
Unità di controllo

L’unità di controllo è la parte più importante
del processore



Esegue le istruzioni dei programmi
Coordina le attività del processore
Controlla il flusso delle istruzioni tra il processore
e la memoria
COMPONENTI DELLA CPU:
UNITA’ ARITMETICO-LOGICA
Bus Interno
REGISTRI
Program Counter
Registro di Stato
Unità di
controllo
Registro Istruzioni
…
Unità
aritmetico
logica
Registri Generali 8 o 16
Registro Indirizzi Memoria
Registro Dati Memoria
Registro di Controllo
Unità aritmetico logica

L’Unità aritmetico logica si occupa di eseguire le
operazioni di tipo aritmetico/logico




Somme, sottrazioni, …, confronti, …
Preleva gli operandi delle operazioni dai Registri
Generali
Deposita il risultato delle operazioni nei Registri
Generali
Insieme all’unità di controllo collabora al
completamento di un ciclo della macchina
COMPONENTI DELLA CPU:
REGISTRI
Bus Interno
REGISTRI
Program Counter
Registro di Stato
Unità di
controllo
Registro Istruzioni
…
Unità
aritmetico
logica
Registri Generali 8 o 16
Registro Indirizzi Memoria
Registro Dati Memoria
Registro di Controllo
ARCHITETTURA DI VON
NEUMANN: I BUS
ARCHITETTURA DI
VON NEUMANN: CLOCK

Abbiamo visto che il processore svolga la sua
attività in modo ciclico

Ad ogni ciclo corrisponde l’esecuzione di un’operazione
elementare (un’istruzione macchina)

Il clock fornisce una cadenza temporale per
l’esecuzione delle operazioni elementari

La frequenza del clock indica il numero di operazioni
elementari che vengono eseguite nell’unità di tempo
Evoluzione dei processori

Un grafico dell’evoluzione dei processori
INTEL
http://www.techs-oncall.biz/downloads/CPU_history.pdf
CODICE PER I PROGRAMMI:
Istruzioni macchina

I programmi: sequenze di istruzioni elementari (somma due
numeri, confronta due numeri, leggi/scrivi dalla memoria, ecc.)

Per ogni tipo di processore è definito un insieme di istruzioni,
chiamate istruzioni macchina
 Ognuna delle quali corrisponde ad un’operazione elementare
 Le operazione più complesse possono essere realizzate
mediante sequenze di operazioni elementari
Istruzioni macchina

Le istruzioni possono avere formati diversi - per
esempio:
Codice istruzione
oppure
Argomento 1 Argomento 2
cosa fare (“operando”)
Codice istruzione
su cosa operare
Argomento 1
Istruzioni macchina
Per esempio:
 ADD R1 R2


Operazione aritmetica di somma: prevede la somma del
contenuto dei registri R1 e R2 e il caricamento del risultato
nel registro R1
LOAD 3568 R2

Operazione di lettura dalla memoria: richiede la lettura del
valore contenuto nella cella con indirizzo 3568 e il suo
caricamento nel registro R2
Istruzioni macchina

Per esempio:
01000110 1111000
cosa fare (espresso in binario)
11110101 01110110
01010111
00001111
su cosa operare
11001001
Linguaggio macchina

Il linguaggio in cui si scrivono queste
istruzioni prende il nome di linguaggio
macchina


Il ruolo del processore:


Una sequenza di tali istruzioni prende il nome di
programma in linguaggio macchina
Eseguire programmi in linguaggio macchina
N.B. Nessun uomo è in grado di scrivere
programmi estesi in linguaggio macchina!
(esistono invece linguaggi “ad alto livello”)
Compatibilità

Compatibilità all’indietro



Un processore è in grado di eseguire codice creato
per un processore precedente della stessa famiglia.
Un programma comprende dati creati da una sua
versione precedente
Compatibilità in avanti


Un processore/programma accetta dati creati per una
sua versione futura (eventualmente interpretandoli in
modo parziale)
Ottenibile tramite l’adozione di standard
Architettura dei computer

Un computer deve:

elaborare l’informazione


usando il processore (Central Processing Unit CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
 usando la memoria secondaria


fare l’input/output dell’informazione

usando i dispositivi di input/output
Architettura dei computer

Un computer deve:

elaborare l’informazione


usando il processore (Central Processing Unit CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
 usando la memoria secondaria


fare l’input/output dell’informazione

usando i dispositivi di input/output
Componenti principali di un
computer
Processore
Memoria
principale
Stampante
Periferiche
del calcolatore
Tasteria e monitor
Periferiche di input/output
Unità centrale
Memoria secondaria
ORGANIZZAZIONE DELLA
MEMORIA
Processore
Insieme al processore
forma l’Unità Centrale
di un elaboratore
0
1
2
3
4
5
Memoria
principale
Unità centrale
Sequenza di celle
– Ad ogni cella è
associato un indirizzo
(un numero progressivo
a partire da 0)
Conserva i
programmi e i dati
usati dal processore
N
Memoria principale (RAM)

Alcune proprietà della memoria principale



Veloce: per leggere/scrivere una cella ci vuole un
tempo di accesso dell’ordine di poche decine di
nanosecondi (millesimi di milionesimi di secondo
= 10-9 sec.)
Volatile: è fatta di componenti elettronici,
togliendo l’alimentazione si perde tutto
(Relativamente) costosa
Memoria principale (RAM)
Indirizzi



Tutte le celle hanno la stessa
dimensione: 8, 16, 32, o 64
bit
Le operazioni che si
eseguono sulla memoria
sono operazioni di lettura e
scrittura
Una cella può contenere un
dato o un’istruzione
0
1
2
3
4
5
N
Contenuto
345
13.200.985
3.890
LOAD 3568 R1
LOAD 56 R1
ADD R1 R2
LA MEMORIA SECONDARIA
Processore
Memoria
principale
Stampante
Periferiche
del calcolatore
Tasteria e monitor
Periferiche di input/output
Unità centrale
Memoria secondaria
Architettura dei computer

Un computer deve:

elaborare l’informazione


usando il processore (Central Processing Unit CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
 usando la memoria secondaria


fare l’input/output dell’informazione

usando i dispositivi di input/output
Memoria secondaria




La memoria principale non basta (è volatile, costosa)
In grado di memorizzare i programmi e i dati in modo
permanente
È meno costosa che la memoria principale: le dimensioni
della memoria secondaria sono di solito molto maggiori di
quelle della memoria principale
I supporti di memoria secondaria sono più lenti rispetto alla
memoria principale (presenza di dispositivi meccanici)
LA DIVISIONE DEI RUOLI TRA
MEMORIA PRINCIPALE E MEMORIA
SECONDARIA

I programmi e i dati risiedono nella memoria secondaria
Processore
Stampante
Memoria
principale
Memoria
secondaria
LA DIVISIONE DEI RUOLI TRA
MEMORIA PRINCIPALE E MEMORIA
SECONDARIA


I programmi e i dati risiedono nella memoria secondaria
Per essere eseguiti (i programmi) e usati (i dati) vengono
copiati nella memoria principale
Processore
Stampante
Memoria
principale
Memoria
secondaria
LA DIVISIONE DEI RUOLI TRA
MEMORIA PRINCIPALE E MEMORIA
SECONDARIA



I programmi e i dati risiedono nella memoria secondaria
Per essere eseguiti (i programmi) e usati (i dati) vengono
copiati nella memoria principale
Il processore è in grado di eseguire le istruzioni di cui sono
composti i programmi
Processore
Stampante
Memoria
principale
Memoria
secondaria
Memoria secondaria

La memoria secondaria deve avere capacità
di memorizzazione permanente e quindi per
la sua si utilizzano tecnologie basate:

sul magnetismo (tecnologia magnetica)
dischi magnetici (hard disk e floppy disk)
 nastri magnetici (pressocché obsoleti)


sull’uso dei raggi laser (tecnologia ottica)

dischi ottici (CD-ROM, DVD)
I dischi
magnetici

Hard disk: sono dei dischi
che vengono utilizzati come
supporto di memoria
secondaria fisso all’interno
del computer

varie centinaia di GB di
memoria
La memoria magnetica





Sfrutta il fenomeno fisico della polarizzazione
Sul supporto ci sono delle particelle magnetiche
I due diversi tipi di magnetizzazione (positiva e
negativa) corrispondono alle unità elementari di
informazione (0 e 1)
La testina di lettura/scrittura cambia la
polarizzazione
Attenzione ad avvicinare magneti ad un disco rigido
I dischi magnetici


I dischi magnetici: sono i supporti di memoria più
diffusi
Nel corso delle operazioni i dischi vengono
mantenuti in rotazione a velocità costante e le
informazioni vengono lette e scritte da testine del
tutto simili a quelle utilizzate nelle cassette
audio/video
I dischi magnetici

I dischi sono suddivisi in tracce concentriche e
settori, ogni settore è una fetta di disco

I settori suddividono ogni traccia in porzioni dette blocchi
Traccia
Testina
Blocco
Settore
I dischi magnetici

I dischi magnetici consentono l’accesso diretto
 È possibile posizionare direttamente la testina su un qualunque
blocco (noto il numero della traccia e il numero del settore)
 Per effettuare un’operazione di lettura/scrittura la testina deve
“raggiungere” il blocco desiderato

Il disco gira; la testina sposta solo in senso radiale
La memoria ottica

Usa il raggio laser e sfrutta la riflessione
della luce

Il raggio laser viene riflesso in modo diverso da
superfici diverse, e si può pensare di utilizzare
delle superfici con dei piccolissimi forellini
Ogni unità di superficie può essere forata o non
forata
 L’informazione viene letta guardando la riflessione
del raggio laser

La memoria ottica
1
0
1
0
0
1
0
0
1
La memoria ottica
1
0
0 1
Aumenta la capacità memorizzazione
byte
Registri
KB
Mem. cache
GB
Mem. centrale
100GB
Dischi magnetici
e/o ottici
>1000 GB
Nastri magnetici
100*picosecondi
nanosecondi
10*nanosecondi
microsecondo/
millisecondi
10*millisecondi
Aumenta la velocità di accesso
Architettura dei computer

Un computer deve:

elaborare l’informazione


usando il processore (Central Processing Unit CPU)
memorizzare l’informazione
usando la memoria principale (RAM)
 usando la memoria secondaria


fare l’input/output dell’informazione

usando i dispositivi di input/output
I dispositivi di input/output

Input:







Tastiera
Mouse (e altri strumenti di
puntamento)
Scanner
Microfono
Macchine fotografia e
telecamera digitale
Lettori di codici a barre

Output:



Videoterminale
Stampante
Casse acustiche
Input/output:


Touchscreen
Modem / Ethernet
I dispositivi di input/output

Operano in modo asincrono rispetto al processore
(ne sono “schiavi”)



Si parla di gestione master-slave: è il processore che deve
coordinare le attività di tutti i dispositivi
(Input) Il processore non è in grado di prevedere e di
controllare il momento in cui un dato di input sarà a
disposizione
(Output) Il processore non può prevedere il momento in
cui un dispositivo in output avrà terminato di produrre i dati
in uscita
I dispositivi di input/output



Un dispositivo di input deve avvertire il processore
quando un dato di input è disponibile
Un dispositivo di output deve avvertire il processore
quando ha terminato di produrre dati in uscita
Al termine di ogni operazione i dispositivi inviano al
processore un segnale, detto interrupt, che indica
che il dispositivo ha bisogno di attenzione
Il collo di bottiglia dell’I/O

Principali rivoluzioni nelle interfacce uomo
macchina:



Invenzione delle interfacce grafiche+mouse
(Macintosh, 1984)
Invenzione dei touch screen (schermi sensibili al tocco)
Altre innovazioni rilevanti


Programmi di dettatura (e.g. Dragon dictate)
Schermi persistenti (non richiedono input di corrente
per mantenere un’immagine; leggibili alla luce del sole;
usati negli E-book readers, p.es. Amazon Kindle, Sony
PRS)
Il collo di bottiglia dell’I/O


A fronte dello sviluppo di memorie e processori,
mancano tuttavia vere novità nel campo delle
interfacce.
Tensione tra:


Computer con schermi sempre più grandi ed
applicazioni/pagine web che si aspettano di avere un grande
spazio di visualizzazione
Diffusione di “cellulari intelligenti” (smartphones e simili) che,
dovendo essere tascabili, hanno schermi limitati ma potenza
sufficiente per far funzionare applicazioni sviluppate per PC.
ASPETTO DEI MICROPROCESSORI
MODERNI
MICROPROCESSORE E
PIASTRA MADRE

Il microprocessore è incastonato
nella piastra madre

La piastra madre raccoglie in
maniera efficiente e compatta altre
componenti fondamentali di ogni
computer, come la memoria, le
porte di comunicazione, ecc.
La struttura interna della
piastra madre
HARDWARE: RIASSUNTO
DELLE IDEE PRINCIPALI

Architettura di von Neumann:





Divisione in componenti collegate da bus
Ciclo di esecuzione istruzioni
Divisione della memoria in diversi livelli
Funzionamento asincrono dell’input/output
Realizzazione fisica dell’architettura di von
Neumann:


Piastra madre
Memorie volatili e non volatili
L’accelerazione
dell’informatica

Rapidissima crescita della potenza dei computer, misurata in
capacità della RAM, velocità della CPU e capienza del disco rigido.



RAM: dai 48KB dell'Apple II ai 2GB di un PC medio odierno: un
incremento di 42000 volte. Al momento risulta che la memoria media di
un PC raddoppia ogni 21 mesi.
Processore: da 4 MHertz a 2600000 e più (per macchine monoutente
medie): un incremento di circa 650 volte. Di pari passo è aumentata
anche la complessità interna del processore, espressa dal numero di
transistor che contengono.
Finora, si è mantenuta valida la legge di Moore, enunciata nel 1964: "il
numero dei transistor nel processore raddoppia ogni 18 mesi".
Memorie di massa: Dai 90K su floppy disk dell'Apple II ai 360 GB e più
di un PC medio-alto attuale: un incremento di più di 4 milioni di volte.
Applicazione pratica

Scelta tra vari modelli per l’acquisto di un
computer. Vedi ad es.
Le domande da porsi

Fisso o portatile?
Da considerare:




A parità di costo, un computer fisso è più potente. Ma la batteria di un
portatile è preziosa in zone con interruzioni di corrente, o se si lavora
molto in treno.
Se si lavora spesso in due luoghi diversi (p.es. casa-ufficio) può non
servire comprare un portatile. Se ognuno è dotato/dotabile di un
computer fisso, si possono tenere tutti i propri dati su una chiave USB
(8GB o più) e portarla da un computer all’altro.
Un computer “portatile” di peso >3Kg non è davvero comodo da portare
addosso. Il computer più leggeri hanno schermo più piccolo, ma le
batterie durano spesso di più. E’ possibile poi comprare con poca spesa
schermo, mouse e tastiera esterni da collegare ad un portatile piccolo,
trasformandolo virtualmente in un “fisso”.
Esistono applicazioni che sono praticamente inutilizzabili su schermi
sotto i 10 pollici (p.es. il programma di posta “Thunderbird”)
Le domande da porsi

Che capienza di disco?
Che uso ne faccio?


Se non si tengono su computer musica o film, 60 GB sono più che
sufficienti. Se lo si usa per contenere musica, 100 GB in più sono
consigliabili. Ancora più spazio nel caso di film; per tenere film in alta
definizione il disco deve avere la massima capienza compatibile col
proprio budget.
Che velocità?


Una velocità alta è richiesta quasi solo da videogiochi e programmi di
fotoritocco o per editing di film (oltre ad una memoria >2GB)
Non sempre il software è in grado di sfruttare la velocità del processore
(o della scheda grafica)
Computer
Hardware
Software
CHE COSA IL SOFTWARE FA
PER VOI
TRE TIPI DI SOFTWARE

Software APPLICATIVO: programmi che
permettono di svolgere funzioni



VIDEOGIOCHI, WORD PROCESSING,
DATABASE, POSTA ELETTRONICA
PROGRAMMI UTENTE veri e propri
Software DI SISTEMA: controlla l’hardware,
gestisce l’interfaccia con utente, coordina le
applicazioni

SISTEMA OPERATIVO, INTERFACCIA RETE
IL SOFTWARE DI SISTEMA

Una programmazione diretta della macchina
hardware da parte degli utenti creerebbe delle serie
difficoltà
LOAD 32 R2
IL SOFTWARE DI SISTEMA

ADD R1 84
Una programmazione diretta della macchina
hardware da parte degli utenti creerebbe delle serie
difficoltà

L’utente dovrebbe conoscere l’organizzazione fisica
dell’elaboratore e il suo linguaggio macchina
IL SOFTWARE DI SISTEMA

Una programmazione diretta della macchina
hardware da parte degli utenti creerebbe delle serie
difficoltà


L’utente dovrebbe conoscere l’organizzazione fisica
dell’elaboratore e il suo linguaggio macchina
Ogni programma dovrebbe essere scritto utilizzando delle
sequenze di bit ed ogni piccola differenza hardware
comporterebbe una riscrittura del programma stesso
IL SOFTWARE DI SISTEMA


È necessario fornire un meccanismo per astrarre
dall’organizzazione fisica della macchina
L’utente deve:



usare nello stesso modo (o comunque in un modo molto
simile) macchine diverse dal punto di vista hardware
avere un semplice linguaggio di interazione con la
macchina
avere un insieme di programmi applicativi per svolgere
compiti diversi
IL COMPUTER VIRTUALE



Il SOFTWARE DI SISTEMA opera
un’ASTRAZIONE mettendo a disposizione
dell’utente (programmatore) un set di operazioni
più ricco di quello definito dall’hardware (o dai
livelli di software di sistema inferiori)
Facendo cio’ realizza una macchina virtuale
che non esiste fisicamente
Quest’operazione di astrazione puo’ essere
ripetuta piu’ volte
ESEMPI DI ISTRUZIONI
‘VIRTUALI’

STAMPA CARATTERE A


Eseguire questa istruzione richiede mettere
carattere A in un’area speciale (‘print buffer’),
inviare un segnale alla stampante che c’è
dell’input, aspettare che la stampante abbia finito
e controllare che tutto abbia funzionato OK
APRI DOCUMENTO B

Un `documento’ è semplicemente una lista di
blocchi su tracce probabilmente diverse del disco
rigido
SISTEMA OPERATIVO


Il sistema operativo e’ il software di sistema
che gestisce ed interagisce direttamente con
il computer, presentando a tutti gli altri tipi di
software un’interfaccia che astrae dalle
caratteristiche dell’hardware specifico.
Esempi:


Windows (XP, Vista, 7)
Unix (Linux, BSD, Apple System X)
Funzioni principali del sistema
operativo
All’avvio del computer, viene caricato un “kernel” (il programma
principale del SO). Questo (con altri sottoprogrammi si occupa di:






Gestire il processore ed programmi in esecuzione (detti processi)
Gestire la memoria principale (RAM)
Gestire la memoria virtuale (una “RAM” apparente, in realtà salvata su
disco)
Gestire la memoria secondaria (Disco rigido)
Gestire i dispositivi di input/output
Interagire con l’utente, gestendo il sistema a finestre
(quest’ultimo compito è spesso separato dal S.O. vero e proprio; ciò è
particolarmente visibile in Linux, vedi ad es.
http://openskill.info/topic.php?ID=8 )
LA STRUTTURA A CIPOLLA DEL
SISTEMA OPERATIVO
Utente
0111000101
1101010100
Hardware
0011110
Avvio
Gestione: i processi, la memoria, i disp. di input/output
Interfaccia utente
Funzioni principali del sistema
operativo

Gestione del processore e dei programmi in esecuzione (detti
processi)


Gestione della memoria principale
Gestione della memoria virtuale
Gestione della memoria secondaria

Gestione dei dispositivi di input/output

Interazione con l’utente

Esecuzione dei programmi

Quando si scrive un comando (oppure si clicca
sull’icona di un programma), il sistema operativo:



Cerca il programma corrispondente sulla memoria
secondaria
Copia il programma in memoria principale
…
Processore
Stampante
Memoria principale
Memoria
secondaria
Esecuzione dei programmi

Quando si scrive un comando (oppure si clicca
sull’icona di un programma), il sistema operativo:



Cerca il programma corrispondente sulla memoria
secondaria
Copia il programma in memoria principale
Imposta il registro Program Counter con l’indirizzo in
memoria principale della prima istruzione del programma
Sistemi mono-utente, monoprogrammati

Un solo utente può eseguire un solo
programma alla volta



È forzato a “sequenzializzare” i programmi
Il programma viene lanciato, eseguito e quindi
terminato
Ma il processore viene sfruttato al meglio?
Sistemi mono-utente, monoprogrammati

No, il processore non viene sfruttato al
meglio: si spreca molto tempo



Il processore è molto più veloce dei supporti di
memoria secondaria e delle altre periferiche
Passa la maggior parte del suo tempo in attesa
Durante l’attesa si dice che il processore è un
uno stato inattivo (idle)
Esecuzione sequenziale



Supponiamo che il nostro sistema sia un bar in cui il
barista serve diversi clienti
Il barista è corrispondente del processore, i clienti
sono l’equivalente dei processi da eseguire
Esecuzione mono-programmati:
Client 1
Ordinare
Preparare
il caffé
Consumare
Pagare
Client 2
Ordinare Preparare
il caffé
Consumare
Pagare
Soluzione

In realtà:
Client 1
Client 2
Ordinare
(C1)
Ordinare
(C2)
Preparare
il caffé (C1)
Preparare
il caffé (C2)
Pagare
(C1)
Pagare
(C2)
Soluzione: sistemi
multiprogrammati




Quando il processore è nello stato di idle può
eseguire (parte di) un altro processo
Quando un processo si ferma (per esempio in attesa
di un dato dall’utente) il processore può passare ad
eseguire le istruzione di un altro processo
Il sistema operativo si occupa dell’alternanza tra i
processi in esecuzione (“multitasking”)
In un PC (personal computer) tutti i processi
saranno relativi ad un singolo utente (o all’attività del
SO); in sistemi collegati in rete i processi possono
riguardare anche utenti diversi.
IL TASK MANAGER
Funzioni principali del sistema
operativo

Avvio del computer

Gestione del processore e dei processi


Gestione della memoria principale
Gestione della memoria virtuale
Gestione della memoria secondaria

Gestione dei dispositivi di input/output

Interazione con l’utente

IL FILE SYSTEM
IL FILE SYSTEM: alcune
caratteristiche di base



Possibilità di impedire/permettere la
scrittura/lettura/esecuzione di file/cartelle di un
particolare utente da parte di altri (concetto di utente
privilegiato, superuser)
Possibilità di accesso ad un medesimo file sotto nomi
diversi (“collegamenti”, da non confondersi con i “link” su
web)
Possibilità di “journaling” (per preservare l’integrità del
filesystem) e di “indexing” (per facilitare la ricerca di
contenuti)
SISTEMI OPERATIVI PER PC



MS-DOS (MicroSoft Disk Operating System 1980)
Apple Mac: primo sistema operativo ad utilizzare
il nuovo tipo di interfaccia a finestre sviluppato da
Xerox
Windows (1985)



Windows 95, Windows 98, Windows Me
Windows NT, Windows 2000 (5th version of NT),
Windows XP, Windows Vista (2007), Windows 7 (2010)
UNIX per PC:


Minix (1987)
Linux (1991/94)
Sistemi operativi e Open
Source

Movimento “Open Source”



Differenza tra beni materiali (uno a uno) e
software (uno a molti)
Sviluppo di codice come servizio: diffusione di
software “libero” creato dalla comunità dei
programmatori
Con lo sviluppo di internet, possibilità di
raccogliere ed organizzare attorno ad un progetto
software un largo gruppo di programmatori
volontari
Sistemi operativi e Open
Source

Progetto GNU (Richard Stallman)



Scopo: creazione di un SO derivato da UNIX ma
completamente libero
per arrivare a questo risultato, all'interno del
progetto vengono creati programmi per coprire
ogni necessità informatica: compilatori, lettori
multimediali, programmi di crittografia, ecc.
Il software del progetto viene distribuito con una
particolare licenza, la GNU GPL, costruita per
garantirne la libertà di diffusione e di modifica.
Sistemi operativi e Open
Source



Il codice prodotto dal lavoro dei volontari organizzati
tramite rete viene diffuso completo di “codice sorgente”
(“source”): il programma scritto in un linguaggio ad alto
livello e commentato dai suoi creatori.
Chiunque abbia l’esperienza tecnica necessaria ha la
possibilità di modificare, adattare ed espandere il
programma.
Al contrario, i programmi “proprietari” (Photoshop, Excel,
ma anche programmi gratuiti come Acrobat Reader o
Explorer) vengono distribuiti solo nel formato eseguibile,
quasi impossibile da modificare.
Sistemi operativi e Open
Source: Il caso Linux



Linux: un sistema operativo “open source” basato su
UNIX, sviluppato tra il 1994 ed oggi sotto l’impulso e la
direzione di Linus Torsvalden
Ambiente GNU/Linux: kernel Linux più programmi di
gestione e sviluppo presi del progetto GNU
Diffuso gratuitamente in varie “distribuzioni” (varianti),
che contengono sistemi linux più o meno “completi” (SO
+ sistema a finestre + applicativi open source per i
compiti più comuni)
Linux: caratteristiche di base






Multiutente; multitasking; filesystem con protezione
lettura/scrittura per i vari utenti, link
Vari ambienti grafici (KDE, GNOME, ecc.), installabili a
scelta dell’utente
Installabile su una varietà di hardware diversi, anche se
poco potenti
Stabile, altamente personalizzabile, gratuito
Può convivere con Windows sullo stesso disco rigido:
all’accensione l’utente sceglie quale S.O. attivare
“Pacchetti” applicativi extra installabili da web in modo
semiautomatico
Linux: distribuzioni


Varietà di distribuzioni, fornite gratuitamente su Web o
su DVD.
Ciascuna distribuzione aggiunge di suo un sistema
semiautomatico di installazione ed aggiornamento del
software, più una particolare scelta di programmi
applicativi e di configurazioni.

Vedi: http://it.wikipedia.org/wiki/Distribuzione_%28Linux%29 per una
panoramica.

Esistenza di distribuzione “live” su CD/DVD (consentono
di provare un sistema linux sul proprio computer senza
installare nulla sul disco rigido)
Linux: limiti




Compatibilità con dati in uso nel mondo Windows?
(mancanza di Microsoft, Office; presenza di OpenOffice)
Funzionamento con hardware recenti (specialmente
portatili)?
Molteplicità eccessiva degli strumenti software?
Innovatività dell’impostazione generale (S.O. originali o
“cloni” dell’ambiente windows?)
Per conoscere Linux

“Linux Day” a Trento:
24 ottobre 2009, al Liceo Scientifico
Galilei di Trento
 http://www.linuxtrent.it/

LETTURE

Architettura:
http://it.wikipedia.org/wiki/Computer
http://en.wikipedia.org/wiki/Von_Neumann_architecture

Sistema operativo:
http://it.wikipedia.org/wiki/Sistema_operativo
http://it.wikipedia.org/wiki/Storia_dei_sistemi_operativi

Open source
http://it.wikipedia.org/wiki/Open_source
http://www.apogeonline.com/openpress/cathe
dral