Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn...

26
Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition , Addison Wesley CAPITOLO III SISTEMI OPERATIVI Corso di Didactics of Computer Science Università degli Studi di Trento Elisabetta Trentin matricola155940 1

Transcript of Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn...

Page 1: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

1

Cos ’è un s i s tema operat i vo?

A cosa serve?

Come svo lge i l suo lavoro?

Fo n t e p r i n c i p a l e : J . G l e n n B r o o k s h e a r, ( 2 0 1 2 ) C o m p u t e r S c i e n c e A n

O v e r v i e w, 1 1 t h E d i t i o n , A d d i s o n We s l e y

CAPITOLO III

SISTEMI OPERATIVI

Corso di Didactics of Computer ScienceUniversità degli Studi di Trento

Elisabetta Trentin matricola155940

Page 2: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

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 dei sistemi operativi: dal software al kernel

Il coordinamento delle attività della macchina: boot strapping,

scheduler e dispatcher

La sicurezza del computer: attacchi esterni e interni.

Curiosità: Che cos’è l’hacking?

Page 3: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

3

Definizione di SO

Un sistema operativo (SO) è un insieme di programmi (software) che interagiscono da intermediari tra l’utente e le risorse hardware 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? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

4

Un paragone..

Hardware: struttura di una casa (i muri, il pavimento, le pareti)SO: i servizi di base che rendono la casa abitabile (luce, acqua, gas) Programmi applicativi: arredamento. Per uno scrittore una scrivania (programmi di videoscrittura), per chi ama la musica un impianto stereo (programmi per ascoltare musica), per un bambino la stanza dei giochi (programmi per giocare) e così via

Fonte:http://pasticcietpasticcini.blogspot.it/2009/11/una-casa-meta.html

http://www.google.it/imgres?um=1&hl=it&client=firefox-

Page 5: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

5

Alcuni esempi dei SO per computer più usati

Windows (Microsoft)

Mac (Apple)

Ubuntu (GNU/Linux )

Quali sono i criteri di scelta?Per i principianti essenzialmente la cosmetica. Per i più esperti invece, la ricchezza dei pacchetti offerti, la filosofia di progettazione, la sicurezza del sistema e la stabilità

Ad esempio, perché usare Linux? http://www.nearfieldcommunication.it/notizie/ apple-nfc/

Page 6: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

6

Evoluzione dei SO

Evoluzione dell’ hardwarehttp://www.windoweb.it/edpstory_new/eh1960.htm

1950 – 1960

- Invenzione del transistor, dispositivi semiconduttori usati nell’elettronica digitale per amplificare il segnale in entrata o svolgere il ruolo di interruttori- elaboratori, o mainframe, costruiti e venduti in serie - unici acquirenti: centri di calcolo, università, banche- calcolatori inaffidabili dato che le valvole si rompevano spesso- il concetto di SO non esisteva ancora- un programma veniva inserito ad ogni esecuzione in codice binario attraverso dei lettori di schede perforate e il risultato inviato ad una stampante dopo alcune ore

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

Page 7: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

7

Evoluzione dei SO

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

risultatoTale sequenza era dispendiosa in termini di tempo e, poiché mancava la Direct Memory Access, in breve DMA, la macchina non era sfruttabile durante le fasi di caricamento di dati e programmi.

Fonte: Computer Science An Overview, 11th Edition , Addison Wesley

Page 8: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

8

Fonte: http://www.windoweb.it/desktop_foto/foto_vecchi_computer.htm

Page 9: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

9

Evoluzione del SO

Sistema batch (lotti) L’idea di base è dividere il job, insieme di istruzioni codificate secondo il Job Control Language (JCL) in 3 fasi : 1. caricamento dei dati secondo la coda FIFO o LIFO2. esecuzione 3. stampa

Nessuna possibilità di modifica delle operazioni in corso: accettabile per attività stabilite in anticipo (ad esempio, elaborazione delle buste paga) ma non per sistemi di prenotazione o computer games che devono operare real time

Fonte: Computer Science An Overview, 11th Edition , Addison Wesley

Page 10: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

10

Evoluzione dei 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: il computer è obbligato a eseguire gli ordini entro un tempo di scadenza

Time-sharing (tecnica della multiprogrammazione)

Fonte: Computer Science An Overview, 11th Edition , Addison Wesley

Dati i costi ingenti si vuole soddisfare più utenti allo stesso tempo. Vedi la figura

Page 11: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

11

Evoluzione dei SO

Programmi salvati nella memoria di massa eliminando le schede perforate con la conseguente riduzione degli spazi occupati dall’hardware

Per accelerare i tempi, assegnano compiti diversi a processori diversi: nascono i multiprocessori. Si fronteggiano problemi di load balancing (assegnazione delle attività ai processori in maniera efficiente) e scaling (suddivisione delle mansioni in numero compatibile col numero di processori disponibili)

È possibile connettere computer anche distanti geograficamentegrazie alle reti di computer che gestiscono risorse su più macchine

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

Page 12: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

12

Evoluzione del SO

1969 : Fu progettato UNIX da alcuni ricercatori dei Bell Laboratories in New Jersey, tra cui Ken Thompson, Dennis Ritchie e Douglas Mcllroy. Si ispirò a Multics, e divenne un sistema interattivo, affidabile e ricco di funzionalità, tanto che tuttora domina il mercato delle workstation (computer non destinati a compiti specifici)

Furono sviluppate diverse varianti di UNIX: BSD (Berkley Software Distribution),

Minix (usato in ambito didattico) e successivamente Linux

Page 13: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

13

Evoluzione dei SO

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

Xerox lancia il primo SO con interfaccia grafica

1985: Microsoft commercializza Windows

Apple era uno dei pochi che credeva nell'idea del PC: un computer ad uso generico le cui dimensioni, prestazioni e prezzo di acquisto lo rendevano adatto alle esigenze del singolo individuo. All'epoca era difficile immaginare cosa le persone potessero farsene di un computer per casa, figuriamoci di un computer per quasi ogni componente della famiglia

Anni '80: la tecnologia LSI (Large Scale Integration) porta alla costruzione di chip integrati e all'abbattimento dei prezzi dell'hardware, iniziando l'era del Personal Computer (PC)

Page 14: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

14

Curiosità: 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, il pinguino mascotte di Linux, è attribuita alla moglie.

Linus Torvalds, studente finlandese dell’Università di Helsinki, sviluppatore del kernel Linux. Il sistema operativo GNU/Linux, é entrato nella storia come alternativa ai SO commerciali a licenza chiusa (come Microsoft Windows, Mac OS X). A differenza di questi ultimi, Linux è un software libero rilasciato sotto licenza GPL ,General Public License , ossia chiunque può accedere al codice sorgente del SO, modificarlo, usare l'eseguibile per ogni scopo e copiare legalmente tale software)

Page 15: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

15

Evoluzione dei SO

Oggi è disponibile una grande varietà di sistemi operativi, dalle più disparate dimensioni e performance a costi contenuti.Sono stati inseriti persino nei telefoni cellulari, dando il via all’era degli smartphone o “cellulare intelligente”: un dispositivo portatile che abbina le funzionalità di telefono cellulare a quelle di gestione di dati personali.Esempi di SO per cellulari: Android, Apple iOS, BlackBerry , Symbian OS

“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? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

16

Architettura del software e ruolo di un SO

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

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

Fornisce le infrastrutture richieste dall’application software per regolarne le attività

Fonte: Computer Science An Overview, 11th Edition , Addison Wesley

Page 17: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

17

Interfaccia

Permette la comunicazione tra le azioni richieste dall’utente e il computer

Quelle più datate (shell) comunicavano tramite comandi inseriti con la tastiera

Quelle più moderne, le GUI (Graphical User Interface), permettono la manipolazione degli oggetti rappresentati da icone tramite il mouse, dispositivi touch o puntatori grafici

Una componente importante è il Windows Manager (WM) che riserva porzioni dello schermo (finestre) per visualizzare le applicazioni in uso. È 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? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

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à software che comunicano con stampanti, monitor, etc

Memory manager: coordina l’uso della memoria quando i programmi vengono eseguiti. Quando lo spazio di memoria richiesta eccede lo spazio libero, crea dello spazio di memoria addizionale: Paging

E’ possibile caricare i blocchi di memoria solo quando necessario tramite una memoria virtuale. I programmi infatti 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 le diverse 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? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

19

Cosa succede all’accensione della macchina?

Procedura Boot strapping (booting): il SO viene trasferito dalla memoria di massa, dove è memorizzato permanentemente, alla memoria principale. 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:Computer Science An Overview, 11th Edition , Addison Wesley

Page 20: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

20

Cosa succede all’accensione del computer?

Perché non caricare tutto il SO sulla memoria principale ed evitare il booting? Non sarebbe una scelta efficiente in termini di occupazione dello spazio e di memoria. Inoltre 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 21: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

21

Come il SO coordina le attività della macchina?

Il SO ha un ruolo analogo a quello di un suonatore che esegue uno spartito. Possiamo immaginare che lo spartito sia il programma e che il suonatore sia il SO che esegue tale programma

Processo: attività che consiste nell’esecuzione di 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 due componenti del SO:

- 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 tavola dei processi. Ogni volta che è richiesta l’esecuzione di un programma crea una nuova voce per il processo assegnando una priorità. Vi sono due tipi di priorità che distinguono i processi in processi pronti o in attesa

- Dispatcher: controlla l’esecuzione e i tempi dei processi; indispensabile per la tecnica della multiprogrammazione

Page 22: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

22

Multiprogrammazione tra due processi

Dell’ordine di microsecondi: 10−6

s

Azionato da un circuito a tempo, interrompe il lavoro della CPU che salva la posizione corrente

Fondamentale la capacità si poter riprendere l’attività e ricreare l’ambiente

Es: click, tasto power

Fonte: Computer Science An Overview, 11th Edition , Addison Wesley

Page 23: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

23

Sicurezza dei sistemi informatici

Vogliamo un SO ben progettato, affidabile, protetto e sicuro (per evitare, ad esempio il danneggiamento dei file o la perdita di dati a causa di crash del sistema). Di questo si occupa l’Ingegneria del software

Per evitare attacchi esterni conviene: - servirsi di account con username e password (procedura di Login),

- creare il ruolo dell’amministratore: un account che detiene privilegi speciali come, ad esempio, poter monitorare il comportamento degli altri utenti e modificare i pacchetti del software- installare Auditing software: programmi che segnalano comportamenti insoliti rispetto alle abitudini o vari tentativi errati di inserimento password - porre attenzione agli Sniffing software: memorizzano le attività svolte dall’utente e le riportano a un intruso

Tuttavia, 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

Suggerimento: un sito web per creare password robustehttp://www.marbaro.it/creare_password_complesse.htm

Page 24: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

24

Sicurezza dei sistemi informatici

Con l’accesso come amministratore si possono esplorare tutte le informazioni contenute in un sistema informatico 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 può alterare gli intervalli di tempo che regolano la multiprogrammazione è in grado di dominare il computer, etc

Protezione da attacchi interni: le CPU sono dotate di meccanismi per sventare tali attacchi, ma è necessario continuare a lavorare in questo settore. La CPU ha una modalità privilegiata (istruzioni limitate) e una non privilegiata. All’accensione è in modalità privilegiata, dopo il booting e all’inizio di ogni time slice è in modalità non privilegiata così da permettere gli arresti. Il tentativo di svolgere un’istruzione privilegiata quando la CPU è in modalità non privilegiata causa un arresto

Page 25: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

25

Curiosità: che cos’è l’hacking?

Risponde questo video: http://www.youtube.com/watch?v=hzC6BONJgsQ

Hacker: un esperto informatico, che si impegna nell'affrontare sfide intellettuali per aggirare o superare creativamente le limitazioni che gli vengono imposte, non limitatamente ai suoi ambiti d'interesse (che di solito comprendono l'informatica o l'ingegneria elettronica), ma in tutti gli aspetti della sua vita.

Molti hacker tentano di convincere l'opinione pubblica che, gli intrusi che entrano all'interno dei sistemi informatici senza autorizzazione e con l'unico scopo di causare danni, dovrebbero essere chiamati cracker (criminali informatici) piuttosto che hacker, ma l'uso errato permane nel vocabolario comune della gente. Si differenziano in white hat e black hat , ricalcando l’analogia proposta nei film western dove i “buoni” portavano un cappello bianco e i “cattivi” un cappello nero.

Il 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

Page 26: Cos’è un sistema operativo? A cosa serve? Come svolge il suo lavoro? Fonte principale: J.Glenn Brookshear, (2012) Computer Science An Overview, 11th Edition,

26

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