SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
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
Indice

La storia dei sistemi operativi

L’architettura dei sistemi operativi

Il coordinamento delle attività della macchina

Sicurezza del computer
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
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..
Esempi di SO per computer


 Windows (Microsoft)

 Mac (Apple)

 Ubuntu (GNU/Linux )


Cosmetica vs pacchetti offerti, filosofia di
progettazione, sicurezza e stabilità.
L’evoluzione 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 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
L’evoluzione 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)
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
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
Dati i costi ingenti si vuole soddisfare più utenti allo stesso tempo:
Time-sharing (tecnica della multiprogrammazione)*
L’evoluzione 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 dell’intermediario tra l’utente 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
computer’s network per gestire risorse su più macchine
L’evoluzione 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
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 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)
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.
L’evoluzione 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)
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)
Analisi dell’architettura del SO




                                           Fornisce infrastrutture
                                           richieste dall’application
Programmi utili                            software per regolarne
per l’utente:                              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
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.
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à
Windows Manager e interfaccia Mac OS e DOS
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
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)
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
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: 10−6 s                      riprendere lavoro e
                                                ricreare l’ambiente
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 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
  Pericolo degli 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 per creare password robuste:
http://www.marbaro.it/creare_password_complesse.htm
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
Che cos’è l’hacking? 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.
Fine

Weitere ähnliche Inhalte

Was ist angesagt?

Architettura elaboratore
Architettura elaboratoreArchitettura elaboratore
Architettura elaboratoreserex86
 
Concetti base di informatica
Concetti base di informaticaConcetti base di informatica
Concetti base di informaticaGianni Locatelli
 
Modulo 1 Concetti Generali
Modulo 1 Concetti GeneraliModulo 1 Concetti Generali
Modulo 1 Concetti Generalimassimotto65
 
Sistemi operativi: confronto tra linux, windows e mac
Sistemi operativi: confronto tra linux, windows e macSistemi operativi: confronto tra linux, windows e mac
Sistemi operativi: confronto tra linux, windows e macGiovanni Mennea
 
Architettura e nozioni di base
Architettura e nozioni di baseArchitettura e nozioni di base
Architettura e nozioni di baseFranco Marra
 
Concetti Di Base Di Informatica
Concetti Di Base Di InformaticaConcetti Di Base Di Informatica
Concetti Di Base Di InformaticaFrancesco Caliulo
 
Architettura di un computer, istituto tecnico
Architettura di un computer, istituto tecnicoArchitettura di un computer, istituto tecnico
Architettura di un computer, istituto tecnicocesarem
 
Alfabetizzazione informatica 8 ore
Alfabetizzazione informatica 8 oreAlfabetizzazione informatica 8 ore
Alfabetizzazione informatica 8 oreBruno Marzemin
 
Informatica Concetti Di Base - prima parte
Informatica Concetti Di Base - prima parteInformatica Concetti Di Base - prima parte
Informatica Concetti Di Base - prima parteAnna Rita Colella
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pcclaudiatti
 
Concetti di base della tecnologia dell'informazione
Concetti di base della tecnologia dell'informazioneConcetti di base della tecnologia dell'informazione
Concetti di base della tecnologia dell'informazioneStefano Di Battista
 
Presentazione Sistemi Operativi
Presentazione Sistemi OperativiPresentazione Sistemi Operativi
Presentazione Sistemi OperativiMichele Simonetti
 

Was ist angesagt? (20)

Ti base 2020b
Ti base 2020bTi base 2020b
Ti base 2020b
 
Architettura elaboratore
Architettura elaboratoreArchitettura elaboratore
Architettura elaboratore
 
Concetti base di informatica
Concetti base di informaticaConcetti base di informatica
Concetti base di informatica
 
La struttura del pc
La struttura del pcLa struttura del pc
La struttura del pc
 
Modulo 1 Concetti Generali
Modulo 1 Concetti GeneraliModulo 1 Concetti Generali
Modulo 1 Concetti Generali
 
Sistemi operativi: confronto tra linux, windows e mac
Sistemi operativi: confronto tra linux, windows e macSistemi operativi: confronto tra linux, windows e mac
Sistemi operativi: confronto tra linux, windows e mac
 
Informatica corso base hw e sw
Informatica corso base hw e swInformatica corso base hw e sw
Informatica corso base hw e sw
 
Architettura e nozioni di base
Architettura e nozioni di baseArchitettura e nozioni di base
Architettura e nozioni di base
 
Software open
Software openSoftware open
Software open
 
Concetti Di Base Di Informatica
Concetti Di Base Di InformaticaConcetti Di Base Di Informatica
Concetti Di Base Di Informatica
 
Architettura di un computer, istituto tecnico
Architettura di un computer, istituto tecnicoArchitettura di un computer, istituto tecnico
Architettura di un computer, istituto tecnico
 
Lezione 1
Lezione 1Lezione 1
Lezione 1
 
Alfabetizzazione informatica 8 ore
Alfabetizzazione informatica 8 oreAlfabetizzazione informatica 8 ore
Alfabetizzazione informatica 8 ore
 
Informatica Concetti Di Base - prima parte
Informatica Concetti Di Base - prima parteInformatica Concetti Di Base - prima parte
Informatica Concetti Di Base - prima parte
 
Il software2
Il software2Il software2
Il software2
 
Informatica di base
Informatica di baseInformatica di base
Informatica di base
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pc
 
Ti 2021 22_new
Ti 2021 22_newTi 2021 22_new
Ti 2021 22_new
 
Concetti di base della tecnologia dell'informazione
Concetti di base della tecnologia dell'informazioneConcetti di base della tecnologia dell'informazione
Concetti di base della tecnologia dell'informazione
 
Presentazione Sistemi Operativi
Presentazione Sistemi OperativiPresentazione Sistemi Operativi
Presentazione Sistemi Operativi
 

Ähnlich wie Slide trentin

Introduzione al computer e a Internet
Introduzione al computer e a InternetIntroduzione al computer e a Internet
Introduzione al computer e a InternetCarlo Vaccari
 
Power point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° ePower point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° eLuca Marcella
 
Sistemi operativi proprietari
Sistemi operativi proprietariSistemi operativi proprietari
Sistemi operativi proprietariGiadarossi
 
Storia del computer singolo
Storia del computer singoloStoria del computer singolo
Storia del computer singoloscaliafrancesco
 
Storia del computer singolo
Storia del computer singoloStoria del computer singolo
Storia del computer singoloscaliafrancesco
 
Storia del computer singolo
Storia del computer singoloStoria del computer singolo
Storia del computer singoloFrancesco Scalia
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informaticagiu89
 
Presentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marcoPresentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marcoMarco Meli
 
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixDa Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixFelice Pescatore
 
Dal computer ad un sistema informativo
Dal computer ad un sistema informativoDal computer ad un sistema informativo
Dal computer ad un sistema informativoMarco Liverani
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaBetter Software
 

Ähnlich wie Slide trentin (20)

HARDWARE & SOFTWARE
HARDWARE & SOFTWAREHARDWARE & SOFTWARE
HARDWARE & SOFTWARE
 
Ti base 2020
Ti base 2020Ti base 2020
Ti base 2020
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
 
Introduzione al computer e a Internet
Introduzione al computer e a InternetIntroduzione al computer e a Internet
Introduzione al computer e a Internet
 
Power point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° ePower point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° e
 
Storia del computer
Storia del computerStoria del computer
Storia del computer
 
La storia dei computer
La storia dei computerLa storia dei computer
La storia dei computer
 
Sistemi operativi proprietari
Sistemi operativi proprietariSistemi operativi proprietari
Sistemi operativi proprietari
 
Storia del computer
Storia del computerStoria del computer
Storia del computer
 
Storia del computer singolo
Storia del computer singoloStoria del computer singolo
Storia del computer singolo
 
Sistemi 2 (4' ITI) - Lezione 1
Sistemi 2 (4' ITI) - Lezione 1Sistemi 2 (4' ITI) - Lezione 1
Sistemi 2 (4' ITI) - Lezione 1
 
Storia del computer singolo
Storia del computer singoloStoria del computer singolo
Storia del computer singolo
 
Storia del computer singolo
Storia del computer singoloStoria del computer singolo
Storia del computer singolo
 
MODULO 1-Informatica di Base
MODULO 1-Informatica di BaseMODULO 1-Informatica di Base
MODULO 1-Informatica di Base
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informatica
 
Presentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marcoPresentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marco
 
Il personal computer
Il personal computerIl personal computer
Il personal computer
 
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nixDa Thompson a Torvalds: passato, presente e futuro del mondo *nix
Da Thompson a Torvalds: passato, presente e futuro del mondo *nix
 
Dal computer ad un sistema informativo
Dal computer ad un sistema informativoDal computer ad un sistema informativo
Dal computer ad un sistema informativo
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
 

Slide 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 L’architettura 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 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
  • 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. L’evoluzione 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 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
  • 7. L’evoluzione 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)
  • 8.
  • 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
  • 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 Dati i costi ingenti si vuole soddisfare più utenti allo stesso tempo: Time-sharing (tecnica della multiprogrammazione)*
  • 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 Svanisce il ruolo dell’intermediario tra l’utente 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 computer’s network per gestire risorse su più macchine
  • 12. L’evoluzione 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 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) 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. L’evoluzione 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. 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)
  • 16. Analisi dell’architettura del SO Fornisce infrastrutture richieste dall’application Programmi utili software per regolarne per l’utente: 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 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.
  • 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à
  • 19. Windows Manager e interfaccia Mac OS e DOS
  • 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 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 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
  • 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: 10−6 s riprendere lavoro e ricreare l’ambiente
  • 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 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 Pericolo degli 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 per creare password robuste: http://www.marbaro.it/creare_password_complesse.htm
  • 24. 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
  • 25. Che cos’è l’hacking? 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.
  • 26. Fine