Questa 竪 la prima lezione di un corso di informatica (promosso dall'associazione 'Il sorriso di Ranco' e tenuto da Luca Mastrobuono per conto del Comitato Genitori Ranco) che si tiene a Ranco presso la sala consiliare il giorno 5 Aprile 2013
Lezioni introduttive all'uso del computer e di Internet
Usato nella palestra Garbatella di Informatici senza Frontiere nel progetto Navigare Insieme
Licenza Creative Commons BY-NC-SA
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixFelice Pescatore
油
際際滷 trentin
1. CAPITOLO III
SISTEMI OPERATIVI
Cos竪 un sistema operativo?
A cosa serve?
Come svolge il suo lavoro?
Corso di Didactics of Computer Science
Universit degli Studi di Trento
2. Indice
La storia dei sistemi operativi
Larchitettura dei sistemi operativi
Il coordinamento delle attivit della macchina
Sicurezza del computer
3. Definizione di SO
Un sistema operativo (SO) 竪 un insieme di programmi (software) che
interagiscono da intermediari tra lutente e le risorse di un calcolatore.
Quattro sono le caratteristiche principali:
1. controlla linsieme delle operazioni su un computer
2. fornisce i mezzi con cui un utente pu嘆 memorizzare e recuperare i
file
3. fornisce uninterfaccia con cui lutente pu嘆 eseguire i programmi
4. fornisce lambiente necessario a eseguire i programmi richiesti
4. Un paragone..
- Hardware: struttura di una casa (i muri, il pavimento, le pareti)
- SO: fornisce i servizi di base che rendono la casa abitabile (luce,
acqua, gas, telefono)
- Programmi applicativi: l'arredamento. Uno scrittore avr bisogno
di una scrivania (programmi di videoscrittura), chi ama la musica vorr
un impianto stereo (programmi per ascoltare musica), per un bambino
servir la stanza dei giochi (programmi per giocare) e cos狸 via..
5. Esempi di SO per computer
Windows (Microsoft)
Mac (Apple)
Ubuntu (GNU/Linux )
Cosmetica vs pacchetti offerti, filosofia di
progettazione, sicurezza e stabilit.
6. Levoluzione del SO
Sito che racconta la storia hardware dei computer
http://www.windoweb.it/edpstory_new/eh1960.htm
1950 1960: rivoluzionaria invenzione del transistor (dispositivi
semiconduttori usati nellelettronica digitale per amplificare il segnale
in entrata o svolgere il ruolo di interruttori)
- gli elaboratori (o mainframe) costruiti e venduti in serie,
- unici acquirenti: Centri di Calcolo, Universit, banche
- calcolatori erano molto inaffidabili
- le valvole che li componevano si rompevano spesso
- non esisteva ancora il concetto di SO
- il programma da eseguire veniva inserito ad ogni esecuzione in codice
binario attraverso dei primitivi lettori di schede perforate e dopo alcune
ore il risultato veniva inviato ad una stampante
7. Levoluzione del SO
Per eseguire dei programmi o job un programmatore doveva:
1. Scrivere il proprio programma su carta
2. Trasferirlo su schede
3. Caricarlo nel computer
4. Attendere il termine dell'esecuzione e la stampa del risultato
Tale operazione era molto dispendiosa in termini di tempo e non
permetteva di sfruttare la macchina durante le lunghe fasi di
caricamento di dati e programmi: manca DMA (direct memory access)
9. Levoluzione del SO
Soluzione: sistema batch (a lotti)
lidea di base 竪 dividere il job (istruzioni codificate secondo il job
control language JCL) in 3 fasi :
1. caricamento dei dati (coda FIFO, LIFO)
2. calcolo
3. stampa
Necessaria la presenza di un operatore che legga ed esegua le
istruzioni
Nessuna possibilit di modifica delle operazioni in corso il che va bene
per attivit decise in anticipo (ad esempio elaborazione buste paga) ma
non per sistemi prenotazione, computer games etc
10. Levoluzione del SO
1960: Si riscontra la necessit di un dialogo continuo e veloce. Sviluppo
dei Processi interattivi
竪 la macchina che si adegua ai tempi dellutente e non il contrario
Processi Real Time: computer 竪 obbligato a eseguire gli ordini entro
un tempo di scadenza
Dati i costi ingenti si vuole soddisfare pi湛 utenti allo stesso tempo:
Time-sharing (tecnica della multiprogrammazione)*
11. Levoluzione del SO
Programmi vengono salvati nella memoria di massa e si eliminano le schede
perforate con la conseguente riduzione degli spazi occupati
Svanisce il ruolo dellintermediario tra lutente e la macchina (ad oggi
siamo noi i responsabili totali delle nostre azioni sui nostri personal computer)
Nascita del ruolo dell amministratore del sistema: controllo attivit dei
vari account e delle nuove componenti installate, imposta i limiti della memoria
Se le istruzioni sono complesse 竪 possibile assegnare compiti diversi a
processori diversi per accelerare i tempi: nascono i multiprocessori.
Problemi di load balancing (assegnare le attivit ai processori in maniera
efficiente) e scaling (suddividere le mansioni in sottomansioni in numero
compatibile col numero di processori disponibili)
E possibile far eseguire pi湛 compiti allo stesso utente: Multitasking
E possibile connettere computer tra qualsiasi parte del mondo grazie al
computers network per gestire risorse su pi湛 macchine
12. Levoluzione del SO
UNIX fu progettato a partire dal 1969 da un gruppo di
ricercatori della AT&T, tra cui erano presenti Ken Thompson, Dennis
Ritchie e Douglas Mcllroy presso i Bell Laboratories, NJ
Si ispir嘆 a Multics, e divenne un sistema molto interattivo, affidabile e
ricco di funzionalit, tanto che tuttora domina il mercato delle
workstation (tipologia di computer non destinato a specifici compiti))
Furono sviluppate diverse varianti di UNIX, come BSD (Berkley
Software Distribution)e Minix (usato in ambito didattico) e
successivamente (sulla base di MINIX e UNIX) l'ormai famosissimo
Linux
13. Chi ha inventato Linux?
1991: "Hello everybody out there [...] i'm doing a (free) operating system,
just a hobby, won't be big and professional [...]".
Linus Torvalds, studente finlandese delluniversit di Helsinki, 竪 colui che
ha iniziato lo sviluppo del kernel Linux. Il sistema operativo GNU/Linux, 辿
entrato nella storia come valida alternativa ai sistemi operativi commerciali a
licenza chiusa (come Microsoft Windows, Mac OS X); a differenza di questi
ultimi sistemi, infatti, Linux 竪 software libero rilasciato sotto licenza General
Public License GPL (chiunque pu嘆 accedere al codice sorgente del SO,
modificarlo, usare l'eseguibile per ogni scopo e copiare legalmente tale
software)
La popolarit di Torvalds ebbe inizio a seguito di una
disputa di carattere tecnico con il professor Andrew
Tanenbaum che aveva realizzato per scopi didattici
Minix, un SO simile a Unix che veniva distribuito con
il codice sorgente ma vietava di apportare modifiche
al codice senza l'autorizzazione dell'autore.
L'idea di Tux, la mascotte di Linux, 竪 attribuita alla
moglie.
14. Levoluzione del SO
Negli anni '80 la tecnologia LSI (large scale integration) porta alla
costruzione di chip integrati ed all'abbattimento dei prezzi
dell'hardware, facendo sorgere l'era del personal computer
Negli anni 80 la Apple era uno dei pochi che credeva nell'idea
Personal Computer : un computer ad uso generico le cui dimensioni,
prestazioni e prezzo di acquisto lo rendano adatto alle esigenze del
singolo individuo.
All'epoca era difficile immaginare cosa potesse farsene una persona di
un computer in casa, figuriamoci di un computer per quasi ogni
componente della stessa famiglia
La Xerox lancia il primo Sistema Operativo con interfaccia grafica
La Apple prende in prestito questa idea e lancia nel 1984 il Mac OS,
primo sistema operativo per personal Computer
Successivamente la Microsoft avrebbe commercializzato Windows
(novembre 1985)
15. Levoluzione del SO
Oggigiorno 竪 disponibile una grande variet di sistemi di elaborazione dalle
pi湛 disparate dimensioni e performance a costi contenuti :
- SO per cellulari: Android, Apple iOS, BlackBerry ,Symbian OS.
- smartphone cellulare intelligente: dispositivo portatile che abbina
funzionalit di telefono cellulare a quelle di gestione di dati personali.
- sistemi embedded (incorporati): progettati appositamente per una
determinata applicazione ovvero non riprogrammabili.
Esempi: sportelli bancomat, apparecchi POS, decoder digitali,
elettrodomestici, dispositivi medici, navette spaziali..
Forse un giorno riusciremo ad avere dei computer
pesanti solo 1 tonnellata e grandi qualche metro quadrato.
(Dipendente IBM verso gli anni 50)
16. Analisi dellarchitettura del SO
Fornisce infrastrutture
richieste dallapplication
Programmi utili software per regolarne
per lutente: attivit
-Fogli di calcolo
-Database
-Editoria
-Giochi Programmi non inclusi ma
che utente sceglie in base ai
propri gusti:
-compressione dati
-multimedialit
-chat
-creazione cd
17. Interfaccia
Permette la comunicazione tra le azioni richieste dallutente e il
computer
Quelle pi湛 datate (shell) comunicavano tramite messaggi sullo
schermo inseriti con la tastiera
Quelle pi湛 moderne GUI (graphical user interface) permettono la
manipolazione degli oggetti rappresentati da icone tramite il mouse,
dispositivi touch o puntatori grafici
Qualche SO permette di sceglierne fra varie
Una componente importante 竪 il Windows Manager (WM) che
riserva porzioni dello schermo (finestre) per visualizzare le applicazioni
in uso. E il WM che reagisce nel punto corretto e con lapplicazione
selezionata quando clicchiamo il mouse.
18. Kernel
Contiene le informazioni per svolgere le funzioni di base al momento dellinstallazione
del SO:
Componenti del kernel (nucleo):
File manager (contiene lannotazione di tutti i file salvati nella memoria, dove
sono e quali utenti possono accedervi. Per convenienza permette un organizzazione
gerarchica delle cartelle espressa dal percorso)
Driver delle periferiche: unit del software che comunicano con stampanti,
monitor, etc
Memory manager: incaricata di coordinare luso della memoria principale
quando i programmi vengono eseguiti. Quando lo spazio di memoria richiesta
eccede lo spazio libero crea lillusione di avere dello spazio di memoria addizionale:
Paging .
E possibile caricare i blocchi di memoria solo quando necessario tramite una
memoria virtuale poich辿 i programmi raramente utilizzano tutte le parti del loro
codice contemporanemante
Scheduler: fa avanzare pi湛 processi parallelamente interrompendoli quando
opportuno ed eseguendo un cambio di contesto (switch)
Dispatcher:controlla il tempo per queste attivit
20. Cosa succede allaccensione della macchina?
Procedura Boot strapping (booting) : SO viene trasferito dalla memoria di
massa dove 竪 memorizzato permanentemente alla memoria principale che
竪 volatile quindi vuota ad ogni accensione. Dopo il booting 竪 il SO che
controlla lattivit della macchina
Problema: la memoria principale
essendo volatile perde tutti i dati
ad ogni arresto
Soluzione: si inserisce un programma chiamato Boot Loader che fa
eseguire alla CPU le istruzioni iniziali nella ROM (read only
memory) porzione di memoria principale non alterabile
Domanda: perch辿 non caricare tutto il SO sulla memoria principale ed evitare
il booting? Non sarebbe una scelta efficiente in termini di
occupazione spazio e non sarebbero possibili gli aggiornamenti di cui
un SO necessita ai fini della sicurezza
Firmware Update: aggiorna il SO
Firmware system: attivit fondamentali di I/O prima che SO diventi
funzionante, include la BIOS (basic input output system)
21. Il SO come coordina lattivit della macchina?
Differenza tra programma (spartito) ed esecuzione di un programma
(suonatore)
Processo: attivit di eseguire un programma sotto il controllo della CPU
Stato di un processo: stato corrente dellattivit eseguita identificato dai
valori del registro della CPU e dalle relative celle assegnate
La gestione dei processi 竪 affidata a:
- Scheduler: sa quali processi sono presenti nel computer, introduce quelli da
eseguire e cancella quelli eseguiti. Per tenere traccia di tutte le informazioni
usa una memoria chiamata tavola dei processi. Ogni volta che 竪 richiesta
lesecuzione di un programma crea una nuova entrata per quel processo nella
tavola assegnandogli una priorit: vi sono due tipi di priorit, processi pronti o
in attesa
- Dispatcher: controllo lesecuzione e i tempi dei processi scheduled,
indispensabile per la tecnica della multiprogrammazione
22. Multiprogrammazione tra i processi A e B
Azionato da un circuito a tempo interrompe Esempi: Click,
lavoro CPU che salva posizione corrente tasto, power
Fondamentale 竪 la
capacit si saper
Microsecondi: 106 s riprendere lavoro e
ricreare lambiente
23. Sicurezza del sistema informatico
Vogliamo un SO ben progettato, affidabile, protetto e sicuro (evitare
danneggiamento file o perdita dati causa crash del sistema)
Ingegneria del software
Per evitare attacchi esterni 竪 conveniente:
- se il computer 竪 utilizzato da pi湛 persone servirsi di account con username e
password (procedura Login),
- creazione del ruolo dellamministratore: account che detiene privilegi speciali
come ad esempio il poter monitorare il comportamento degli altri utenti e
modificare i pacchetti del software
- sviluppo di Auditing software: segnalano comportamenti insoliti rispetto alle
azioni svolte dallutente in genere o vari tentativi errati di inserimento password
Pericolo degli Sniffing software: memorizzano le attivit svolte dallutente e le
riportano a un intruso
Il rischio principale resta la noncuranza degli utenti che usano password troppo
facili come nomi o date, non le cambiano mai e le passano tra amici.
Un sito per creare password robuste:
http://www.marbaro.it/creare_password_complesse.htm
24. Sicurezza del sistema informatico
Una volta ottenuto laccess0 come amministratore si possono esplorare tutte le
informazioni contenute e inserire software distruttivi.
Ad esempio si pu嘆 indurre il Memory Manager a permettere accessi fuori dallarea
assegnata occupando spazi di altri programmi, se un processo diventa capace di
alterare gli intervalli di tempo che regolano la multiprogrammazione allora 竪 in
grado di dominare la macchina intera, etc..
Protezione da attacchi interni: oggi le CPU sono dotate di meccanismi per sventare
tali attacchi, ma 竪 necessario continuare a lavorare in questo settore!
CPU ha una modalit privilegiata (istruzioni limitate) e una non privilegiata
Il tentativo di svolgere unistruzione privilegiata quando la CPU 竪 in modalit non
privilegiata causa un arresto.
Allaccensione 竪 in modalit privilegiata, dopo il booting e allinizio di ogni time slice 竪
in modalit non privilegiata cos狸 da permettere gli arresti
25. Che cos竪 lhacking? La pirateria informatica
Un video (in inglese) che ce lo spiega in tre minuti:
http://www.youtube.com/watch?v=hzC6BONJgsQ
Hacker: un esperto informatico con ottime capacit d'uso del pc, che si diverte
nell'ampliamento delle sue conoscenze.
Si differenziano in white hat e black hat (dai film western)
White hat: crede che la rete internet sia un grande mezzo per permettere la
comunicazione di notizie in tutto il mondo da parte di tutti e s'impegna
nella difesa d'integrit di questo strumento. Ad esso contrapposto, il Black hat
o cracker.
Molti hacker tentano di convincere l'opinione pubblica che gli intrusi che
entrano all'interno dei sistemi informatici senza autorizzazione con l'unico
scopo di causare danno dovrebbero essere chiamati cracker piuttosto che
hacker, ma l'uso errato permane nel vocabolario comune della gente.