operating system

31
OPERATING SYSTEM Tipologie e implementazioni

description

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/

Transcript of operating system

Page 1: operating system

OPERATING SYSTEMTipologie e implementazioni

Page 2: operating system

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

Page 3: operating system

SommarioDefinizione SO

Tipologie

Concetti di base

Implementazioni

WindowsLinuxMINIX3

Linux Internals

Processi

Memoria

FileSystem

Periferiche

Page 4: operating system

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

Page 5: operating system

Tipologie di SOAttualmente 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

Page 6: operating system

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

Page 7: operating system

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.

Page 8: operating system

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

Page 9: operating system

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.

Page 10: operating system

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

Page 11: operating system

SO IbridiVantaggi 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

Page 12: operating system

Concetti di baseAlla 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.

Page 13: operating system

Il processoE’ 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.

Page 14: operating system

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

Page 15: operating system

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

Page 16: operating system

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.

Page 17: operating system

La memoria

Page 18: operating system

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

Page 19: operating system

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

Page 20: operating system

I/OPer 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.

Page 21: operating system

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 )

Page 22: operating system

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.

Page 23: operating system

Minix3I 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

Page 24: operating system

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.

Page 25: operating system

Linux: processiI 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.

Page 26: operating system

LinuxUn 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

Page 27: operating system

Linux: fileSystemLa struttura che rappresenta il file è chiamata inode . Rispecchia tutte le caratteristiche descritte nell’introduzione.

Quasi tutto in linux è visto come un file:

File regolariDirectory : 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.

Page 28: operating system

Linux: fileSystemIl filesystem di linux rispecchia la struttura ad albero.

La radice chiamata / (root) ha diverse sottodirectory ognuna con un particolare scopo.

Page 29: operating system

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

Page 30: operating system

The end...

Thanks to Camelug( www.camelug.it )

Page 31: operating system

Italian grappa ,spaghetti ARP Spoofing.Thanks to Ryuw!

Domande??