Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI...

29
Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli Studi di Trento di Elisabetta Trentin matricola155940 1

Transcript of Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI...

Page 1: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

1

Cos’è un sistema operativo?

A cosa serve?

Come svolge i l suo lavoro?

CAPITOLO III

SISTEMI OPERATIVI

Corso di Didactics of Computer ScienceUniversità degli Studi di Trento

di Elisabetta Trentin matricola155940

Page 2: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

2

Indice della presentazione

Definizione di sistema operativo e qualche esempio di sistema

operativo

Breve storia dell’evoluzione dei sistemi operativi dagli anni ‘50

ad oggi

Curiosità: chi è Linus Torvalds?

L’architettura del sistema operativo: dal software al kernel

Il coordinamento delle attività della macchina: boot strapping,

scheduler e dispatcher

La sicurezza del computer: attacchi dall’esterno e dall’interno.

Curiosità: Che cos’è l’hacking?

Page 3: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

3

Definizione di SO

Un sistema operativo (SO) è un insieme di programmi (software) che interagiscono da intermediari tra l’utente e le risorse di un calcolatore.

Quattro sono le caratteristiche principali:

1. controlla l’insieme delle operazioni su un computer

2. fornisce i mezzi con cui un utente può memorizzare e recuperare i file

3. fornisce un’interfaccia con cui l’utente può eseguire i programmi

4. fornisce l’ambiente necessario a eseguire i programmi richiesti

Page 4: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

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..

Page 5: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

5

Esempi di SO per computer

Windows (Microsoft)

Mac (Apple)

Ubuntu (GNU/Linux )

Quali sono i criteri di scelta?Cosmetica vs pacchetti offerti, filosofia di progettazione, sicurezza e stabilità.

Perché usare Linux? Ma senza eliminare Windows..http://www.nearfieldcommunication.it/notizie/apple-nfc/

Fonte:http://www.internetutile.org/home/windows-che-funziona/

Fonte: http://www.nearfieldcommunication.it/notizie/apple-nfc/

Fonte:http://www.nearfieldcommunication.it/notizie/apple-nfc/

Page 6: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

6

L’evoluzione del SO

Sito che racconta l’evoluzione dell’ hardware dei computerhttp://www.windoweb.it/edpstory_new/eh1960.htm

1950 – 1960: rivoluzionaria invenzione del transistor (dispositivi semiconduttori usati nell’elettronica 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

Fonte:http://chibi.forumcommunity.net/?t=49999206

Page 7: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

7

L’evoluzione del SO

Per eseguire dei programmi o job un programmatore doveva:1. Scrivere il proprio programma su carta2. Trasferirlo su schede3. Caricarlo nel computer4. Attendere il termine dell'esecuzione e la stampa del

risultatoTale 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)

Fonte: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley

Page 8: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

8

Page 9: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

9

L’evoluzione del SO

Soluzione: sistema batch (a lotti) l’idea 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

Fonte: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley

Page 10: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

10

L’evoluzione del SO

1960: Si riscontra la necessità di un dialogo continuo e veloce. Sviluppo dei Processi interattivi:

“è la macchina che si adegua ai tempi dell’utente e non il contrario”

Processi Real Time: computer è obbligato a eseguire gli ordini entro un tempo di scadenza

Time-sharing (tecnica della

multiprogrammazione) Dati i costi ingenti si vuole soddisfare più

utenti allo stesso tempo. Vedi la figura.Fonte: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley

Page 11: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

11

L’evoluzione del SO

Programmi vengono salvati nella memoria di massa e si eliminano le schede perforate con la conseguente riduzione degli spazi occupati

Nasce il ruolo dell’ amministratore del sistema: controlla le attività dei vari account e delle nuove componenti installate, imposta i limiti della memoria

Svanisce il ruolo dell’intermediario tra l’utente e la macchina (ad oggi siamo noi i responsabili delle nostre azioni sui nostri pc)

E’ possibile connettere computer tra qualsiasi parte del mondo grazie al computer’s network per gestire risorse su più macchine.

Nascono i multiprocessori: è possibile assegnare compiti diversi a processori diversi per accelerare i tempi. Problemi di load balancing (assegnare le attività ai processori in maniera efficiente) e scaling (suddividere le mansioni in numero compatibile al numero di processori disponibili)

Page 12: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

12

L’evoluzione del SO

1969 : UNIX fu progettato 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

Page 13: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

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 [...]".

Fonte: http://giardinodelmago.blogspot.it/2008/10/ogni-lunga-marcia-inizia-con-un-piccolo.html

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.

Linus Torvalds, studente finlandese dell’università 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)

Page 14: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

14

L’evoluzione del SO

1984: Apple prende in “prestito” questa idea e lancia Mac OS, primo SO per personal Computer

Xerox lancia il primo SO con interfaccia grafica

1985: Microsoft commercializza Windows

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

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

Page 15: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

15

L’evoluzione 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)

Page 16: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

16

Analisi dell’architettura del SO

Programmi utili per l’utente:-Fogli di calcolo-Database-Editoria-Giochi

Programmi non inclusi ma che utente sceglie in base ai propri gusti:-compressione dati-multimedialità-chat-creazione cd

Fornisce infrastrutture richieste dall’application software per regolarne attività

Fonte: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley

Page 17: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

17

Interfaccia

Permette la comunicazione tra le azioni richieste dall’utente 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 l’applicazione selezionata quando clicchiamo il mouse.

Page 18: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

18

Kernel

Contiene le informazioni per svolgere le funzioni di base al momento dell’installazione del SO:

Componenti del kernel (nucleo): File manager (contiene l’annotazione 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 l’uso della memoria principale quando i programmi vengono eseguiti. Quando lo spazio di memoria richiesta eccede lo spazio libero crea l’illusione 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àFonte: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley

Page 19: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

19

Windows Manager e interfaccia Mac OS e DOS

Fonte: http://www.amicogeek.it/mac-os-x-lion-beta-emergono-altre-novita-196

http://en.kioskea.net/download/download-7836-active-windows-manager

http://www.elhacker.net/InfoForense3.html

Page 20: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

20

Cosa succede all’accensione 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 l’attività 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.

Fonte: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley

Page 21: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

21

Cosa succede all’accensione della macchina?

Domanda: perché non caricare tutto il SO sulla memoria principale ed evitare il booting?

Risposta: 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.

Due componenti importanti:Firmware Update: aggiorna il SO Firmware system: svolge le attività fondamentali di

I/O prima che il SO diventi funzionante. Include la BIOS (basic input output system)

Page 22: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

22

Il SO come coordina l’attività 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 dell’attività 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 l’esecuzione 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 l’esecuzione e i tempi dei processi scheduled, indispensabile per la tecnica della multiprogrammazione

Page 23: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

23

Multiprogrammazione tra i processi A e B

Dell ordine di microsecondi: 10−6

s

Azionato da un circuito a tempo interrompe lavoro CPU che salva posizione corrente

Fondamentale è la capacità si saper riprendere lavoro e ricreare l’ambiente

Esempi: Click, tasto, power

Fonte: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley

Page 24: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

24

Sicurezza del sistema informatico

Vogliamo un SO ben progettato, affidabile, protetto e sicuro (ad esempio evitare danneggiamento file o perdita dati causa crash del sistema). Di questo se ne occupa l’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 dell’amministratore: 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 dall’utente in genere o vari tentativi errati di inserimento password

Attenzione agli Sniffing software: memorizzano le attività svolte dall’utente 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 web per creare password robuste:http://www.marbaro.it/creare_password_complesse.htm

Page 25: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

25

Sicurezza del sistema informatico

Una volta ottenuto l’access0 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 dall’area 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 un’istruzione privilegiata quando la CPU è in modalità non privilegiata causa un arresto.

All’accensione è in modalità privilegiata, dopo il booting e all’inizio di ogni time slice è in modalità non privilegiata così da permettere gli arresti

Page 26: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

26

Che cos’è l’hacking? La pirateria informatica

Un video (in inglese) che ce lo spiega in tre minuti: http://www.youtube.com/watch?v=hzC6BONJgsQHacker: 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.

Page 27: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

27

Che cos’è l’hacking? La pirateria informatica

Fonte: http://www.youfocus.tv/attacco-hacker-di-anonymous-al-cnaipic#.T50xHdUZf6s

Chi è Anonymous e cosa fa? http://it.wikipedia.org/wiki/Anonymous

Page 28: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

28

Bibliografia

J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley

U. Erra, (2009) Dispensa sui sistemi operativi, Corso di laurea in Informatica, Università degli studi della Basilicata

Page 29: Cosè un sistema operativo? A cosa serve? Come svolge il suo lavoro? CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli.

29

Vi ringrazio per l’attenzione!