0
OPERATING SYSTEM
 Tipologie e implementazioni
Who am i?
Casenove Matteo

      Studente dell’ Università di Pisa

      Vice Presidente @System

      Membro di MinixGr...
Sommario
Definizione SO

Tipologie

Concetti di base

Implementazioni
    Windows
    Linux
    MINIX3

Linux Internals
   ...
Definizione SO
Il Sistema Operativo è un insieme di programmi e strutture dati che
offre principalmente tre funzionalità:

 ...
Tipologie di SO
Attualmente possiamo trovare 3 tipologie di SO
distinguibili in base alla loro struttura interna
    Monol...
SO Monolitici
   I kernel Monolitici hanno un corpo unico: un
   unico grande programma che gestisce risorse e
           ...
SO Monolitici
-   Il sistema risulta difficile da
    modificare e caratterizzato
    dall'interdipenza dei moduli.
    Ogni ...
SO Microkernel
      I microkernel hanno una struttura a livelli:
               kernel level e user level.

Il kernel lev...
SO Microkernel
-   Diminuzione dall’efficienza del
    sistema dovuta all’utilizzo dello
    scambio di messaggi.

✓ La comu...
SO Ibridi
      I Sistemi ibridi sono la combinazione di un
       sistema microkernel con uno monolitico.

Usa una strutt...
SO Ibridi
Vantaggi e svantaggi sono un mix di quelli del so monolitico e del so
microkernel considendo che non viene sfrut...
Concetti di base
    Alla base di tutti i modelli di SO ci sono dei
                  concetti comuni:

          Il Proce...
Il processo
     E’ l’unità di base del sistema operativo. Esso
        rappresenta l’istanza(esecuzione) di un
          ...
Il processo: memoria
                virtuale
Essa è grande quanto il massimo
numero indirizzabile. Nei sistemi
        a ...
La memoria
       Per memoria del Sistema operativo si intende
        come esso gestisce la RAM (o memoria non
          ...
La memoria
La maggior parte dei sistemi operativi attuali gestiscono la memoria usando il
paging e lo swap.

      Si divi...
La memoria
Il FileSystem
    E’ la parte del Sistema Operativo che fornisce
i meccanismi necessari per l’accesso e l’archiviazione
  ...
Il FileSystem
La directory ( cartella) è un’astrazione che raggruppa logicamente più
file :

           una cartella può co...
I/O
Per I/O si intendono tutte le periferiche di Input e
      Output che il sistema si trova a gestire.

Le periferiche d...
Implementazioni di SO
  Delle tipologie precedentemente descritte di SO
 esistono delle implementazioni più o meno famose
...
Windows
                         (Slide molto critica)


      Windows è un sistema implementato ibrido.
  La sua struttur...
Minix3
I sistemi a microkernel non sono molto sviluppati, per quanto la
loro struttura offre maggiori vantaggi rispetto all...
Linux
  Linux è un sistema monolitico sviluppato da Linus
                      Torvald.

La licenza Open Source è stata i...
Linux: processi
 I processi in linux sono integranti con il concetto di
   thread. Essi sono implementati a livello kernel...
Linux
Un processo può essere creato(lanciato):
alucard@Gentoox /mnt/archivio/Musica/Afterhours $ mplayer Afterhours - Quel...
Linux: fileSystem
La struttura che rappresenta il file è chiamata inode . Rispecchia
tutte le caratteristiche descritte nell...
Linux: fileSystem
Il filesystem di linux rispecchia la struttura ad albero.
La radice chiamata / (root) ha diverse sottodire...
Linux: varie versioni
                   ( distrubuzioni )
Di linux sono molte versioni che si differenziano da dettagli
im...
The end...
Thanks to Camelug( www.camelug.it )
Domande??


Italian grappa ,spaghetti ARP Spoofing.
          Thanks to Ryuw!
Upcoming SlideShare
Loading in...5
×

operating system

784

Published on

operating system, tipologie e implementazioni, windows, linux,minix3
- camelug( www.camelug.it ) - casenove matteo - studente dell’ università di pisa -
vice presidente @system - membro di minixgrouppisa

Vedi album foto
http://www.flickr.com/photos/divini/sets/72157622536133409/

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
784
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
57
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "operating system"

  1. 1. OPERATING SYSTEM Tipologie e implementazioni
  2. 2. Who am i? Casenove Matteo Studente dell’ Università di Pisa Vice Presidente @System Membro di MinixGroupPisa Collaborazioni con: AIPSI : Associazione Italiana Professionisti Sicurezza Informatica Clusit : Associazione Italiana per la Sicurezza Informatica
  3. 3. Sommario Definizione SO Tipologie Concetti di base Implementazioni Windows Linux MINIX3 Linux Internals Processi Memoria FileSystem Periferiche
  4. 4. Definizione SO Il Sistema Operativo è un insieme di programmi e strutture dati che offre principalmente tre funzionalità: Supporto agli sviluppatori: permette utilizzo delle chiamate di sistema come interfaccia con la macchina(SysCall). Astrazione dalle risorse: crea un’astrazione dell’hardware e lo gestisce utilizzando politiche adeguate(Driver). Protezione delle risorse: impedisce un uso incauto delle risorse e un accesso non autorizzato alle informazioni(Livelli di Privilegi).
  5. 5. Tipologie di SO Attualmente possiamo trovare 3 tipologie di SO distinguibili in base alla loro struttura interna Monolitici Microkernel Ibridi Ognuno di questi ha delle particolarità che li caratterizzano
  6. 6. SO Monolitici I kernel Monolitici hanno un corpo unico: un unico grande programma che gestisce risorse e offre servizi. Le varie parti del SO vengono integrate nel kernel tramite l’aggiunta di moduli che pero’ risultano essere dipendenti l’uno dall’altro. Il sistema in funzione delle operazioni da eseguire, ha due livelli di privilegio: user mode e kernel mode. I servizi offerti dal SO sono richiesti invocando delle system call che lavorano in kernel mode. Il meccanismo di comunicazione(IPC) è a memoria condivisa. Esso rende la comunicazione veloce.
  7. 7. SO Monolitici - Il sistema risulta difficile da modificare e caratterizzato dall'interdipenza dei moduli. Ogni modifica comporta la ricompilazione dell'intero sistema e il singolo crash di un elemento porta al crash dell'intero sistema. ✓ Buona protezione dalla lettura del codice da terzi. ✓ Le chiamate di sistema risultano più efficienti, utilizzando una IPC a memoria condivisa.
  8. 8. SO Microkernel I microkernel hanno una struttura a livelli: kernel level e user level. Il kernel level è minimale e diviso in piccoli moduli indipendenti che implementano le funzionalità di base(system call, IPC, timer clock, scheduler). Tutti gli altri servizi ( file system, driver ecc.) sono nello user level e sono tutti dei processi indipendenti. Essi vengono chiamati Server. Il meccanismo di comunicazione(IPC) è lo scambio di messaggi (send, receive).
  9. 9. SO Microkernel - Diminuzione dall’efficienza del sistema dovuta all’utilizzo dello scambio di messaggi. ✓ La comunicazione tra i vari processi viene fatta sfruttando le primitive dei livelli sottostanti( distinzione dei privilegi ). ✓ Ogni processo è indipendente, questo permette la modifica di uno senza la ricompilazione del tutto. ✓ Diminuzioni di vulnerabilità strutturali, maggiore robustezza.
  10. 10. SO Ibridi I Sistemi ibridi sono la combinazione di un sistema microkernel con uno monolitico. Usa una struttura a microkenel ma implementata come sistema monolitico. Usa Server separati per i servizi del kernel (filesystem, driver ecc ) ma li incorpora a livello kernel. Non hanno una struttura particolare vera e propria. Possono essere definiti come un Microkernel modificato. Su questa struttura ci sono parecchie controversie e linee di pensiero.
  11. 11. SO Ibridi Vantaggi e svantaggi sono un mix di quelli del so monolitico e del so microkernel considendo che non viene sfruttata al massimo nessuna delle due strutture
  12. 12. Concetti di base Alla base di tutti i modelli di SO ci sono dei concetti comuni: Il Processo La Memoria Il FileSystem I/O ! Ogni modello si caratterizza da come implementa questi concetti.
  13. 13. Il processo E’ l’unità di base del sistema operativo. Esso rappresenta l’istanza(esecuzione) di un programma. Ad un processo viene associata una memoria virtuale cioè uno spazio di indirizzamento sul quale può leggero e scrivere. Essa non rappresenta la memoria reale ma una sua astrazione. Il SO tiene una tabella con tutti i processi e la utilizza per scegliere il programma da eseguire. Un processo ha un ciclo di vita nel quale può assumere diversi stati: creato, esecuzione, pronto, bloccato, morto. E’ rappresentato da una propria struttura che contiene tutte le informazioni che lo descrivono.
  14. 14. Il processo: memoria virtuale Essa è grande quanto il massimo numero indirizzabile. Nei sistemi a 32bit è 4gb(232). E divisa in 2 segmenti principali: Il segmento testo Il segmento data i dati statici lo heap lo stack
  15. 15. La memoria Per memoria del Sistema operativo si intende come esso gestisce la RAM (o memoria non permanente). Il problema della gestione della memoria è molto articolato in quanto le problematiche che entrano in gioco sono diverse. Nel corso della storia c’è stata una evoluzione sulla gestione della memoria. 1. Tutta la memoria del processo veniva caricata in memoria. 2. Si caricava la memoria del processo divisa in segmenti. 3. Venne introdotto lo swap della memoria quando un processo usciva dallo stato di esecuzione 4. Infine si introdussero i blocchi e le pagine.
  16. 16. La memoria La maggior parte dei sistemi operativi attuali gestiscono la memoria usando il paging e lo swap. Si dividono i vari blocchi della memoria virtuale in pagine. le pagine vengono caricate in memoria ogni volta che un indirizzo all’interno della pagina viene referenziato. Questo viene fatto tramite l’utilizzo di una struttura del sistema chiamata page table che mette in corrispondenza le pagine della memoria virtuale con l’indizzo della pagina nella memoria reale. Quando un processo cambia il suo stato la pagina viene swappata cioè viene fatta una sua immagine e salvata in un file di swap.
  17. 17. La memoria
  18. 18. Il FileSystem E’ la parte del Sistema Operativo che fornisce i meccanismi necessari per l’accesso e l’archiviazione delle informazioni in memoria permanente. (HD, DVD) Esso permette di rappresentare concetti astratti come: il File : unità logica di base rappresentato da una struttura che contiene gli attributi che lo descrivono( grandezza, tipo , proprietario ecc. ). la struttura contiene anche gli indirizzi fisici di dove risiedono le informazioni nella memoria(hd). la Directory : insieme di file Si posiziona tra le applicazioni e la periferica hardware creando un’interfaccia, semplificando così l’accesso.
  19. 19. Il FileSystem La directory ( cartella) è un’astrazione che raggruppa logicamente più file : una cartella può contenere più file può contenere a sua volta altre cartelle La struttura logica del file system è un albero di file e cartelle, la cui struttura è definita dalle cartelle stesse.
  20. 20. I/O Per I/O si intendono tutte le periferiche di Input e Output che il sistema si trova a gestire. Le periferiche di I/O si possono dividere in 3 categorie: Periferiche a blocchi ( HD,DVD ) : si caratterizzano dal fatto che permetto la lettura e la scrittura di un blocco indipendentemente dagli altri. Possono essere indirizzate. Periferiche a caratteri ( Tastiera, mouse, stampante ) : queste forniscono o accettano un flusso di caratteri. Non possono essere indirizzate. Periferiche particolari che generano interrupts per segnalare un particolare evento.
  21. 21. Implementazioni di SO Delle tipologie precedentemente descritte di SO esistono delle implementazioni più o meno famose che descriveremo focalizzandoci in particolare su una. Implementazioni: Monolitici Linux ( !! Vedremo una spiegazione dettagliata) Microkernel Minix3 Ibridi Windows ( NT, 2000, XP, Vista )
  22. 22. Windows (Slide molto critica) Windows è un sistema implementato ibrido. La sua struttura complessa è fatta in modo da proteggere il più possibile il codice del sistema. In Windows sono implementate tutte le politiche che si possono trovare in giro: politiche molteplici di scheduling( priorità dei processi ) politiche macchinose sui processi (creazione e comunicazione) filesystem complicati e poco compatibili con gli altri standard L’idea di implementare tutto nel sistema e non focalizzarsi in un aspetto in particolare crea la caoticità del sistema della Microsoft.
  23. 23. Minix3 I sistemi a microkernel non sono molto sviluppati, per quanto la loro struttura offre maggiori vantaggi rispetto alle altre. Si trovano principalmente in ambiti di ricerca eccetto alcuni casi(AIX della IBM o Mach) e utilizzati spesso in sistemi Embedded. Minix3 è un sistema a microkernel implementato per la didattica da Andrew S. Tanenbaum. Semplice alla lettura e alla modifica. Completo Modulare In molti aspetti simile a Unix (standard POSIX) Open Source
  24. 24. Linux Linux è un sistema monolitico sviluppato da Linus Torvald. La licenza Open Source è stata il punto di forza di Linux che gli ha permesso un grande sviluppo nel corso degli anni. Le funzionalità del sistema vengono aggiunte tramite l’integrazione di nuovi moduli al kernel. I principi di base del sistema sono molto semplici permettendo una buona scrittura degli applicativi. Permette l’accesso e la gestione completa del sistema avendo un pieno controllo della macchina e una sua configurazione oculata per le proprie esigenze.
  25. 25. Linux: processi I processi in linux sono integranti con il concetto di thread. Essi sono implementati a livello kernel e vengono schedulati come unità di base. I thread sono un flusso di esecuzione all’interno di un processo un processo può avere più thread i thread di uno stesso processo lavorano parallelamente e in modo indipendente l’uno dall’altro. I processi in linux rispettano tutte le caratteristiche già descritte precedentemente. Ogni processo ha una propria e l’accesso è limitato a questa, cioè non può accedere alla memoria di un altro processo. La comunicazione tra i processi è permessa utilizzando meccanismi forniti dal SO, ad esempio pipe o socket.
  26. 26. Linux Un processo può essere creato(lanciato): alucard@Gentoox /mnt/archivio/Musica/Afterhours $ mplayer Afterhours - Quello Che Non C'é.mp3 ....... ========================================================================== AO: [oss] 44100Hz 2ch s16le (2 bytes per sample) Inizio la riproduzione... A: 10.6 (10.5) of 369.0 (06:09.0) 0.9% E’ possibile vedere la lista dei processi attivi nel SO: alucard@Gentoox ~ $ ps au USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 3923 3.4 4.7 33540 24376 tty7 Ss+ 13:04 0:02 /usr/bin/X -nolisten tcp -br -deferglyphs 16 -auth /var/run/ slim.auth vt07 root 4071 0.0 0.1 1696 664 tty1 Ss+ 13:04 0:00 /sbin/agetty 38400 tty1 linux alucard 4124 0.0 0.3 3064 1600 pts/0 Ss+ 13:04 0:00 bash Un processo può essere ucciso: alucard@Gentoox ~ $ kill -9 4071
  27. 27. Linux: fileSystem La struttura che rappresenta il file è chiamata inode . Rispecchia tutte le caratteristiche descritte nell’introduzione. Quasi tutto in linux è visto come un file: File regolari Directory : Le directory sono semplicemente file che elencano un insieme di file. Link simbolici : File che si riferiscono al nome di un altro file Device e periferiche : File speciali che rappresentano i dispositivi. E’ possibile interfacciarsi con il dispositivo come se fosse un normale file( read e write ). Altri: pipe socket.
  28. 28. Linux: fileSystem Il filesystem di linux rispecchia la struttura ad albero. La radice chiamata / (root) ha diverse sottodirectory ognuna con un particolare scopo.
  29. 29. Linux: varie versioni ( distrubuzioni ) Di linux sono molte versioni che si differenziano da dettagli implementativi anche se il kernel rimane sempre lo stesso. Debian Ubuntu* Gentoo Slackwere RedHat Suse Mandriva Ecc..
  30. 30. The end... Thanks to Camelug( www.camelug.it )
  31. 31. Domande?? Italian grappa ,spaghetti ARP Spoofing. Thanks to Ryuw!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×