Università degli Studi
di Palermo
La virtualizzazione nei
sistemi operativi Windows
e Linux: confronti critici
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
Presentazione a cura di:
Docente del Corso:
Ing. Botta Vincenzo
Ing. Di Carmino Vincenzo
Ing. Orlando Maurizio
Prof. Ing. Sorbello Filippo
Sommario

Introduzione
 La virtualizzazione
 Le caratteristiche della virtualizzazione
 I vantaggi e gli svantaggi della virtualizzazione

Il file system …
 … nel sistema operativo Windows
 … nel sistema operativo Linux

I sistemi operativi
 Le risorse dei sistemi operativi

Le periferiche di I/O …
 … nel sistema operativo Windows
 … nel sistema operativo Linux

Il kernel …
 … nel sistema operativo Windows
 … nel sistema operativo Linux

La sicurezza …
 … nel sistema operativo Windows
 … nel sistema operativo Linux
La CPU …
 … nel sistema operativo Windows
 … nel sistema operativo Linux

Le macchine virtuali
 VMware
 XEN
 Virtual PC

Le conclusioni


La memoria …
 … nel sistema operativo Windows
 … nel sistema operativo Linux
2
Università degli Studi
di Palermo
Introduzione alla
Virtualizzazione
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
3
La virtualizzazione nei sistemi operativi (1)
“Per virtualizzazione si intende la creazione di una versione
virtuale di una risorsa normalmente fornita fisicamente. Qualunque
risorsa hardware o software può essere virtualizzata: sistemi operativi,
serventi, memoria, spazio disco, sottosistemi. Un tipico esempio di
virtualizzazione è la divisione di un disco fisso in partizioni logiche.”
da Wikipedia, l’enciclopedia libera.
“La funzione del sistema operativo, è quella di fornire all’utente
l’equivalente di una macchina virtuale più facile da programmarsi di
quanto non sia l’hardware sottostante... il compito del sistema operativo è
sostanzialmente quello di fornire un’allocazione metodica e controllata
del processore, della memoria e dei dispositivi di I/O”.
da Sistemi Operativi, Tanenbaum, Woodhull
4
La virtualizzazione nei sistemi operativi (2)
La virtualizzazione nei sistemi operativi è
l’arte di nascondere all’utente i dettagli relativi
all’hardware (ad esempio, nella gestione dei
dischi, fornire una immagine semplice,
consistente in file dotati di nomi che possono
essere letti e scritti)
Applicazioni (Utente)
Sistema Operativo
(Virtualizzatore)
Architettura fisica
(Hardware)
5
Il sistema operativo visto come
Macchina Virtuale (1)

Il sistema operativo, analogamente a un
compilatore, realizza uno strato intermedio tra le
applicazioni e la macchina hardware

Consente al programmatore di applicazioni di
usare
la
macchina
hardware
secondo
un'astrazione ben definita

Tale strato è praticamente realizzato attraverso
le system call
6
Il sistema operativo visto come
Macchina Virtuale (2)

In un software scritto in un linguaggio di alto
livello è possibile introdurre istruzioni macchina

Lo strato software (system call) costituito dal
sistema operativo è impenetrabile, laddove
l’hardware è dotato di protezione (> 386sx)

Il sistema operativo è l’unica porzione di codice
che può operare in kernel mode
7
Le caratteristiche della virtualizzazione (1)
ISOLAMENTO: impedire che moduli diversi
entrino in conflitto per l’accesso alle risorse fisiche

INDIPENDENZA: gli accadimenti di una
risorsa virtuale non si ripercuotono sulle altre

ADATTABILITA’: se, il sistema operativo per
poter essere eseguito in un’altra architettura,
richiede un numero di modifiche relativamente
piccolo

8
Le caratteristiche della virtualizzazione (2)
ESTENDIBILITA’: la capacità di un sistema
operativo di tenere il passo con gli sviluppi della
tecnologia informatica

AFFIDABILITA’: la capacità di gestire le
condizioni d’errore, compresa la capacità di
proteggere se stesso e i suoi utenti da programmi
difettosi o intenzionalmente dannosi

9
I vantaggi della virtualizzazione

MULTIUTENZA: la capacità di fornire a più utenti la stessa vista
del sistema attraverso la virtualizzazione

MULTITHREAD: la caratteristica di sfruttare al meglio la capacità
computazionale delle risorse del sistema

OTTIMIZZAZIONE: la possibilità di utilizzare risorse virtuali in
eccesso rispetto alle risorse reali disponibili (memoria virtuale, spool
di stampa)

SEPARAZIONE: la condizione necessaria per suddividere le risorse
in ambienti logicamente separati che possono poi essere gestiti in
maniera indipendente (partizioni logiche)
10
Gli svantaggi della virtualizzazione

La maggiore complessità del kernel

L’impossibilità di sfruttare il sistema
operativo in modalità hard real time

Intervengono se la virtualizzazione
comporta un carico oltre il massimale di
una risorsa fisica in un dato istante di
tempo
11
Due Casi di Studio


Linux – Distribuzioni di riferimento

Red Hat

Suse

Ubuntu
Windows – Distribuzioni di riferimento

Windows NT 4.0

Windows XP Pro

Windows 2003 Server
12
Il sistema operativo Linux
Modalità Utente
Programmi per
la gestione del
sistema
Processi utenti
Programmi di
utilità
(livello utente)
Compilatori
Librerie di sistema condivise
Nucleo del Linux
Moduli caricabili del nucleo
Modalità Kernel
Hardware
13
Il sistema operativo Windows
Modalità Utente
Processi di
supporto
Sottosistemi
(Win32, Posix)
Processi di
sistema
Applicazioni
utente
DLL dei sottosistemi
Executive
Kernel
Device Drivers
Supporto User e GDI
(finestre, messaggi e grafica)
Hardware Abstraction Layer
Modalità Kernel
Hardware
14
Università degli Studi
di Palermo
Il kernel
Linux vs Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
15
La virtualizzazione e il kernel (1)
 Il
kernel offre la macchina virtuale
attraverso un’interfaccia: system call
 Le
utilities sfruttano il kernel, o altri
tools,
attraverso
un’interfaccia:
comandi
16
La virtualizzazione e il kernel (2)
Crescita delle linee di codice nei sistemi operativi
17
La virtualizzazione e il kernel (3)
 Una
macchina virtuale più
efficiente necessita un kernel più
ottimizzato
 Più
utilities
e
comandi
determinano
una
maggiore
astrazione del sistema
18
La virtualizzazione e il kernel (4)

Non esistono restrizioni su quello che un
modulo del kernel è abilitato a fare

Solitamente, un modulo implementa:

un driver di periferica

un file system

un protocollo di rete
19
La virtualizzazione e il kernel (5)
Il kernel:
è
un software che ha il compito di fornire ai processi,
in esecuzione sull'elaboratore, un accesso sicuro e
controllato dell‘hardware (isolamento)
 ha
la responsabilità di assegnare una porzione di
tempo-macchina e di accesso all'hardware a ciascun
programma (scheduling)
 grazie
a questo software è possibile eseguire più di un
programma simultaneamente su un elaboratore
20
Architettura del kernel Linux (1)

Ha mantenuto il modello storico di UNIX: il kernel è
composto da una libreria singola e monolitica

Il motivo principale è quello di migliorarne le
prestazioni: dato che il codice del kernel e le strutture
dati sono tenute in un unico spazio di indirizzi, non si
rendono necessari cambi di contesto, quando un
processo richiama una funzione del sistema operativo o
quando viene segnalato un interrupt hardware
21
Architettura del kernel Linux (2)

I moduli del kernel, che implementano
driver, file system, protocolli di rete,
vengono eseguiti in modalità kernel mode
privilegiata

I moduli hanno l'accesso totale a tutte le
caratteristiche hardware della macchina su
cui essi vengono eseguiti
22
Architettura del kernel Linux (3)
Il supporto ai moduli sotto Linux consta di tre componenti:
 La
gestione dei moduli: consente ai moduli di essere
caricati in memoria e di parlare con il resto del kernel
 La
registrazione dei driver: permette ai moduli di
comunicare al resto del kernel che si è reso
disponibile un nuovo driver
 Un
meccanismo di risoluzione dei conflitti: permette
a diversi driver di periferica di riservare delle risorse
hardware e di proteggere tali risorse dall'uso
accidentale da parte di un altro driver
23
Architettura del kernel Linux (4)

Il kernel mantiene delle liste delle risorse
hardware allocate

Il PC ha un numero limitato di porte di I/O (gli
indirizzi nello spazio di indirizzi dell’hardware
di I/O), canali di interrupt e canali DMA

Nel momento in cui un driver di periferica deve
accedere a una risorsa di I/O, quest’ultima viene
riservata al driver tramite il database del kernel
24
Architettura del kernel Windows (1)

Si avvale di un microkernel (l’equivalente del kernel
negli altri sistemi operativi)

E’ stato ridotto agli elementi strettamente necessari per
funzionare (kernel minimale)

La funzione più importante è quella di inviare e
pianificare thread (non i processi!)

Il codice del kernel non può essere prelazionato (notpreemptive), e quindi i context switching non sono
permessi quando il processore esegue codice
appartenente al kernel
25
Architettura del kernel Windows (2)

Non può essere impaginato sul disco

Le funzioni del microkernel
demandate all’esecutivo di NT

Il microkernel di NT comunica con
l’esecutivo di NT attraverso un gruppo di
primitive di sistema operativo di basso
livello
sono
26
Architettura del kernel Windows (3)

Il kernel permette ai thread di operare per un
certo lasso di tempo prima di occuparli e dare
poi il via ad un altro processo

Questa procedura rende possibile il multitasking
preemptive

Poiché il kernel pianifica l’esecuzione del codice
sul sistema, non può essere occupato
27
Architettura del kernel Windows (4)

Su un sistema multiprocessore una copia del
kernel opera effettivamente su ciascun
processore

Questi segmenti di kernel servono a mantenere
la coerenza delle risorse di sistema condivise,
alle quali i thread operativi su tutti i processori
hanno bisogno di accedere
28
Architettura del kernel Windows (5)

Il kernel ha anche il compito di risolvere i
blocchi di sistema causati da dispositivi
fisici, come i dispositivi di I/O, gli orologi
dei processori, i timer

Normalmente, quando si verifica un
blocco di sistema, per processarlo il kernel
cambia lo stato del thread in esecuzione
29
Architettura del kernel Windows (6)

Il kernel si avvale di un’interfaccia software che
viene chiamata HAL (Hardware Abstraction
Level)

Lo strato HAL è implementato come una libreria
a collegamento dinamico (DLL, Dynamically
Linked Library) ed ha la funzione di gestire gli
interrupt e le interfacce di I/O

Ogni piattaforma hardware ha uno HAL
specifico
30
Architettura del kernel Windows (7)

Si accede ad HAL solo in modalità kernel per
evitare che programmi male-operanti scrivano
intenzionalmente
o
accidentalmente
informazioni macchina causando un crash di
sistema

E’ nato dall’esigenza di supportare diverse
piattaforme (Intel x86, DEC Alpha, MIPS,
PowerPC, …)
 driver
in C e assembly
31
Architettura del kernel Windows (8)
Alcuni esempi di HAL presenti nel sistema operativo:

Hal.dll
 Ce
ne sono diversi sul CD di installazione, ma solo
uno viene copiato sul disco di sistema

Halmps.dll per i sistemi multiprocessor

Halapci.dll per i sistemi Advanced Configuration and
Power Interface

Halsp.dll per i sistemi Compaq System Pro
32
Architettura del kernel Windows (9)

Scritto in C, C++, indipendente dall’architettura
 System

Services: interfaccia
Funzioni chiamabili da user mode esportate attraverso
Ntdll.dll (non tutte documentate)
 Components:


Funzioni chiamabili da kernel mode (uso interno all’NT
executive)
Gestiscono le politiche di gestioni di diverse risorse del
sistema
33
Università degli Studi
di Palermo
Confronto critico
Linux vs Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
34
Il Kernel:
Linux vs. Windows (1)

Il confronto ormai lo si deve fare su architetture
complessive dove il kernel è solo una piccola
parte dell’insieme, questo perché i due kernel,
pur avendo storie diverse, sono sempre più
simili

Allo stato attuale Windows mantiene (in termini
prestazionali) una leggera superiorità su
architetture SMP (almeno due processori fisici)
35
Il Kernel:
Linux vs. Windows (2)

L’architettura del modello di driver in
Windows è più modulare e flessibile, ma
molti driver Linux, essendo open source
possono essere ricompilati direttamente

Il codice del kernel di Linux viene eseguito in
modalità privilegiata del processore, con
accesso totale a tutte le risorse fisiche del
computer (maggiore velocità ed interruzione)
36
Il Kernel:
Linux vs. Windows (3)

Il kernel di Windows permette di gestire le periferiche
hardware:

direttamente

attraverso lo HAL (Hardware Abstraction Level)

Linux ha un kernel monolitico e minimale (moduli caricabili)

Entrambi eseguono le funzionalità di kernel in modalità
protetta

Entrambi supportano la prelazione (preempetive) a livello di
utente
37
Il Kernel:
Linux vs. Windows (4)
Linux
 gestione
segnali: kill, alarm, pause, read,
write, close, pipe, fifo
Windows
 messages:
anonymous pipe, readfile, writefile,
named pipe
38
Università degli Studi
di Palermo
Le risorse virtualizzate
in un sistema operativo
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
39
Risorse virtualizzate nei sistemi operativi

CPU

Memoria

Dispositivi di I/O

Dischi (File System)
40
Università degli Studi
di Palermo
La CPU
Linux vs. Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
41
La virtualizzazione della CPU

Si ottiene attraverso la schedulazione dei
processi o dei thread

La CPU viene commutata da un programma
all’altro, eseguendo ciascuno di essi, per un
tempo prestabilito (time slice) e priorità

Consente l’utilizzo di sistemi multiprocessori
(SMP)
42
La virtualizzazione della CPU in Linux (1)

Utilizza algoritmi di schedulazione efficienti con
complessità computazionale costante (round-robin, firstcame-first-served)

Supporta l’architettura SMP gestito in modo differente
per thread (clone) e processi (fork)

Un processo del kernel può essere eseguito su una sola
CPU

Una sola CPU può eseguire codice in kernel mode
43
La virtualizzazione della CPU in Linux (2)

Il kernel 2.0 di Linux fu il primo a
supportare
in
maniera
stabile
l’hardware per il multiprocessing
simmetrico (SMP)

Singoli processi o thread possono essere
eseguiti in parallelo su processori
separati
44
La virtualizzazione della CPU in Windows (1)

La CPU è virtualizzata tramite lo HAL
(Hardware Abstract Level)

Lo HAL presenta al microkernel un
processore
virtualizzato
e
fornisce
un’interfaccia per i sistemi SMP, agendo
direttamente sull’hardware isolando i
livelli superiori (portabilità)
45
La virtualizzazione della CPU in Windows (2)


Esistono due HAL:
 Il
primo si occupa di un processore
 Il
secondo si occupa di più processori
La CPU ha due modalità di funzionamento:
 Preemptive:
quando lavora in modalità utente
 Not-Preemptive:
kernel
quando eseguiamo il codice del
46
Università degli Studi
di Palermo
Confronto critico
Linux vs Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
47
La virtualizzazione della CPU:
Linux vs. Windows

Linux subisce dei crolli di prestazioni
quando i processi richiedono l’esecuzione
di grandi quantità di codice di nucleo

Windows utilizza in modo efficiente i
processori, in quanto l’esecuzione del
nucleo è ripartita sui processori presenti
48
Università degli Studi
di Palermo
La Memoria
Linux vs Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
49
La virtualizzazione della Memoria (1)

La memoria virtuale è una tecnica che permette
di eseguire processi che possono anche non
essere completamente contenuti nella memoria
(fisica)

La memoria virtuale astrae la memoria centrale
in un vettore molto grande ed uniforme
separando la memoria logica, come è vista
dall’utente, dalla memoria fisica
50
La virtualizzazione della Memoria (2)

La memoria virtuale permette ai processi
di condividere facilmente file e spazi di
indirizzi, e fornisce un meccanismo
efficiente per la creazione dei processi

La memoria a differenza della CPU non è
una risorsa esclusiva dei processi, pertanto
bisogna applicare delle politiche di
gestione della protezione e condivisione
51
La virtualizzazione della Memoria nel
sistema operativo Linux (1)

Il gestore della memoria in Linux prevede due
componenti:
 il
primo riguarda l'allocazione e la deallocazione della
memoria fisica (page allocator): pagine, gruppi di
pagine e piccoli blocchi di memoria
 il
secondo si occupa della memoria virtuale, che è la
memoria mappata nello spazio di indirizzamento dei
processi in esecuzione
52
La virtualizzazione della Memoria
nel sistema operativo Linux (2)

L’allocatore usa un algoritmo (buddy-heap)
per tener traccia delle pagine fisiche
disponibili

Un algoritmo di questo tipo accoppia
unità adiacenti di memoria disponibile (da
qui il nome, buddy [compagno] heap
[accumulare])
53
La virtualizzazione della Memoria nel
sistema operativo Linux (3)
La figura mostra un
esempio di allocazione
col
meccanismo
buddy-heap: sta per
essere allocata una
regione di 4 KB, ma la
più piccola regione
disponibile è di 16 KB
Ogni regione di memoria allocabile ha un
partner adiacente (o buddy), e nel momento in
cui due regioni partner vengono liberate, esse
vengono combinate in una unica e più grande
54
La virtualizzazione della Memoria
nel sistema operativo Linux (4)

Per la registrazione di zone di memoria libera di
qualsiasi dimensione consentita, vengono utilizzate
diverse liste collegate

In Linux la dimensione minima allocabile con questo
meccanismo è pari alla dimensione di una pagina
singola (4 KB)

La regione, quindi, viene spezzata ricorsivamente, finché
non viene recuperato un segmento della dimensione
desiderata
55
La virtualizzazione della Memoria
nel sistema operativo Linux (5)
In definitiva, tutte le operazioni di
allocazione di memoria nel kernel di Linux
avvengono in maniera:
 statica,
tramite i driver che riservano un’area
di memoria contigua durante il boot del
sistema
 dinamica,
tramite il page allocator
56
La virtualizzazione della Memoria
nel sistema operativo Linux (6)
Le regioni per ciascuno spazio di
indirizzi sono inserite in un albero
binario bilanciato per permettere
una ricerca veloce della regione
corrispondente a ciascun indirizzo
virtuale
57
La virtualizzazione della Memoria
nel sistema operativo Linux (7)

Il kernel mantiene una seconda vista fisica di
ciascuno spazio di indirizzi e questa vista è
salvata nelle tabelle “hardware” delle pagine per
quel processo

Le voci della tabella delle pagine determinano
l’esatta locazione corrente per ciascuna pagina
della memoria virtuale, sia che essa sia su disco
sia che nella memoria fisica
58
La virtualizzazione della Memoria
nel sistema operativo Linux (8)

Il kernel crea un nuovo spazio di
indirizzamento virtuale in esattamente
due situazioni:

quando un processo esegue un nuovo
programma con la chiamata di sistema exec

alla creazione di un nuovo processo mediante
la chiamata di sistema fork
59
La virtualizzazione della Memoria
nel sistema operativo Linux (9)

I primi sistemi UNIX effettuavano la
riallocazione di memoria effettuando in un solo
colpo lo swap dei contenuti dell'intero processo,
ma le versioni moderne si basano maggiormente
sulla paginazione – il movimento di pagine
singole di memoria virtuale fra la memoria fisica
e il disco

Linux non implementa lo swap dell'intero
processo, ma la paginazione (Linux ≠ Unix)
60
La virtualizzazione della Memoria nel
sistema operativo Windows (1)
Il gestore di memoria
l’architettura sottostante:
virtuale
(MV)
assume
che
 sia
in grado di associare indirizzi virtuali ad indirizzi
fisici
 possieda
un meccanismo di paginazione
 realizzi
coerentemente una cache trasparente nei
sistemi con più unità di elaborazione
 permetta
l’associazione di più elementi della tabella
delle pagine alla stessa pagina fisica
61
La virtualizzazione della Memoria nel
sistema operativo Windows (2)

Il gestore dell’MV adotta uno schema di gestione
basato su pagine della dimensione di 4 KB nei
sistemi IA32 e 8 KB nei sistemi IA64

Le pagine di dati assegnate ad un processo ma
non residenti nella memoria fisica sono
memorizzate nel file di paginazione in un disco

Il gestore dell’MV usa indirizzi a 32 bit (un
processo è dotato di un address space di 4 GB)
62
La virtualizzazione della Memoria
nel sistema operativo Windows (3)
PDE
PTE
Esempio di paginazione della memoria in Windows
63
La virtualizzazione della Memoria
nel sistema operativo Windows (4)

In Windows XP, la traduzione dell’indirizzo
virtuale usa una tabella di pagine a più livelli

Nei processori IA32, senza PAE abilitato, ogni
processo ha un direttorio di pagine (page
directory) che contiene 1024 elementi nel
direttorio delle pagine (page-directory entries:
PDE) da 4 byte
64
La virtualizzazione della Memoria
nel sistema operativo Windows (5)

Ogni PDE punta ad una tabella di pagine che contiene
1024 elementi della tabella delle pagine (pagetable
entries: PTE) di dimensione di 4 byte, e ogni PTE punta
ad una struttura di pagina (page frame) nella memoria
fisica da 4 KB

In un processo, la dimensione totale di tutte le tabelle di
pagina è di 4 MB, pertanto il gestore di VM pagina
esternamente, quando è necessario, le tabelle su disco
65
La virtualizzazione della Memoria nel
sistema operativo Windows (6)

La memoria virtuale è realizzata
impiegando la paginazione su richiesta
per gruppi di pagine (demand paging with
clustering)

Tale tecnica consiste nel caricare non solo
la pagina richiesta, ma anche il gruppo di
pagine adiacenti ad essa
66
Università degli Studi
di Palermo
Confronto critico
Linux vs Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
67
La virtualizzazione della memoria:
Linux vs. Windows (1)

Nel sistema operativo Windows al fine di non
penalizzare eccessivamente le prestazioni, il gestore
dell’MV permette ai processi privilegiati di bloccare un
certo numero di pagine virtuali nella memoria fisica,
assicurando così il fatto che queste non saranno trasferite
nel disco nel file di paginazione

Per migliorare l’efficienza nella gestione di memoria
condivisa da più processi, Windows usa delle particolari
sezioni di memoria condivisa chiamata view
68
La virtualizzazione della memoria:
Linux vs. Windows (2)
 Da
una prima analisi riscontriamo la
possibilità di Linux nel riuscire ad
assegnare in modo più rapido la memoria
ad un processo, in quanto Windows
prevede comunque due ordini di
indirizzamento
 In
windows non esiste la shared memory
69
Università degli Studi
di Palermo
Il file system
Linux vs. Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
70
La virtualizzazione del File System (1)

Il file system è quella parte del sistema operativo che
fornisce i meccanismi necessari per l’accesso e
l’archiviazione di informazioni

Virtualizzare un file system permette di accedere alle
medesime informazioni da parte di più utenti

Esistono molti tipi di file system e la maggior parte dei
sistemi operativi ne impiega più di uno

La maggior parte dei cd-rom è scritta nella forma highsierra
71
La virtualizzazione del File System (2)

I dischi costituiscono la maggior parte della memoria secondaria in
cui si conserva il file system

Un file system presenta due problemi di progettazione piuttosto
diversi:

Il primo problema riguarda la definizione dell’aspetto del file system
agli occhi dell’utente. Questo compito implica la definizione di un file e
dei suoi attributi, delle operazioni permesse su un file e della struttura
della directory per l’organizzazione dei file.

Il secondo problema riguarda la creazione di algoritmi e strutture di
dati che permettano di far corrispondere il file system logico ai
dispositivi fisici di memoria secondaria
72
La virtualizzazione del File System
nel sistema operativo Windows (1)
Windows supporta diversi formati di file system
che differiscono tra loro per le modalità con cui
gestiscono le informazioni in essi memorizzate:
 CDFS:
 UDF:
per i CD-ROM
per i DVD
 FAT16,
 NTFS:
FAT32
file system nativo
73
La virtualizzazione del File System
nel sistema operativo Windows (2)

I dischi sono divisi in volumi

Il blocco logico in NTFS viene chiamato cluster

NTFS indirizza solo i cluster

La principale struttura dati per ogni volume è la Master
File Table (MFT)


MFT è un array di record la cui dimensione è fissa e pari a
1Kbyte
La gestione dei blocchi liberi è fatta attraverso bitmap
74
La virtualizzazione del File System
nel sistema operativo Windows (3)

File fino a 263 byte

Partizioni fino a 263 cluster, grandi fino a
64 kb

E’ possibile convertire file system da FAT
in NTFS (il contrario necessita di utility
apposite)
75
La virtualizzazione del File System
nel sistema operativo Windows (4)
Compressione

In Windows un file può essere creato in modo
compresso

Ogni volta che un file viene riscritto su disco il
sistema tenta di comprimerlo utilizzando come
unità di riferimento 16 cluster

Se la compressione dà esito positivo si provvede
a riscrivere i dati compressi
76
La virtualizzazione del File System
nel sistema operativo Windows (5)
File system recoverability

Ogni operazione è portata avanti con
modalità transazionali (o si conclude
correttamente o si procede ad un roll
back alla situazione iniziale)

Le informazioni
ridondate
critiche
sono
tutte
77
La virtualizzazione del File System
nel sistema operativo Linux (1)

Il kernel di Linux gestisce tutti i tipi di file
nascondendo i dettagli di implementazione di
ogni singolo tipo di file dietro a uno strato di
software: il virtual file system (VFS: file system
virtuale)

Internamente il kernel usa un Virtual File
System (mappato su un file system reale: ext2fs,
fat, ecc.)
78
La virtualizzazione del File System
nel sistema operativo Linux (2)


Le API manipolano:
 l'oggetto
file system
 l'oggetto
file
 l'oggetto
i-node
Ext2fs
 blocchi
da 1 Kb
 cerca
di allocare blocchi logicamente vicini in settori
contigui
79
La virtualizzazione del File System
nel sistema operativo Linux (3)

Pathname assoluti (da /) e relativi (da .)

Tipi file: ordinari, directory, speciali (device), FIFO
(stream di caratteri)

Directory contiene sempre . (dot) e .. (dot-dot)
80
La virtualizzazione del File System
nel sistema operativo Linux (4)

boot block: contiene geometria disco

super block: descrive struttura file system


dimensioni file system su disco

gestione blocchi dati liberi

gestione i-node liberi
i-node: fornisce informazioni e locazione file
81
La virtualizzazione del File System
nel sistema operativo Linux (5)

Il kernel gestisce copie in memoria di superblock e i−node, e
(de)allocazione blocchi dati su disco

Strutture dati mantenute

per ogni processo, tabella file-descriptor

File Table (FT) globale nel sistema

In-core i-node table /* per accesso rapido a dati */


contiene info aggiuntive quali: lock ; flag aggiornamento wrt copia su disco;
#i-node su disco
Directory: coppie <nome file; #i-node> file speciale modificato solo
da kernel
82
La virtualizzazione del File System
nel sistema operativo Linux (6)

gestione uniforme file system (disco) e monitor/tastiera

ogni processo accede a 3 "file" di default


[0] standard input stdin (sola lettura)

[1] standard output stdout

[2] standard error stderr
Redirezione dei file standard a/da file (scollego processo
da monitor/tastiera) o programmi (inter-process
communication)
83
La virtualizzazione del File System
nel sistema operativo Linux (7)

I file di UNIX possono essere qualunque cosa in
grado di gestire l'ingresso o l'uscita di un flusso
di dati.

I driver delle periferiche possono sembrare dei
file, e i canali di comunicazione fra i processi o le
connessioni di rete possono apparire all'utente
come dei file
84
Università degli Studi
di Palermo
Confronto critico
Linux vs Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
85
La virtualizzazione del File System
Linux vs. Windows (1)
System Call - Gestione file

Linux


create, open, close, read, write, lseek, (f)stat, mkdir,
rmdir, link (cenni), unlink (cenni), chdir, chown,
chmod
Windows

CreateFile,
DeleteFile,
ReadFile,
WriteFile,
SetFilePointer, GetFileAttributes, CreateDirectory,
RemoveDirectory
86
La virtualizzazione del File System
Linux vs. Windows (2)

La struttura ad albero del filesystem Windows è
simile a quella Linux il pathname può essere
preceduto da un’indicazione di unità (a:)

in Linux si fa mount che rende trasparente

Gli elementi del pathname sono separati da \

Usabili gli stessi wildcard (* e ?)
87
La virtualizzazione del File System
Linux vs. Windows (3)

Il file system del sistema Linux ha la possibilità di gestire
i riferimenti simbolici in modo che soprannomi multipli,
detti anche Alias, possano denotare lo stesso file
similmente

Il sistema Windows usa oggetti di riferimento simbolico,
il fine è quello di sfruttarli per associare i nomi dell’unità
a disco alle convenzionali lettere delle unità MS-DOS,
infatti queste lettere non sono altro che i riferimenti
simbolici che si possono stabilire secondo le preferenze
dell’utente
88
La virtualizzazione del File System
Linux vs. Windows (4)

Windows, basandosi su un metodo di gestione dei files transazionale,
garantisce una maggiore sicurezza e consistenza rispetto a Linux in caso di
errore, sebbene esista anche in linux la possibilità di un file system che
esegue journaling:

Se il sistema operativo linux subisce un crash, ci saranno zero o più
transazioni nel journal, che non sono state completate sul file system,
anche se è stata eseguita la commit dal sistema operativo, e che devono
essere completate

Le transazioni possono essere eseguite dal puntatore sino alla fine del
lavoro, e la struttura del file system rimane consistente

L’unico problema accade quando una transazione è stata abortita, ossia
non è stata fatta la commit prima del crash del sistema: ogni operazione
svolta da quella transazione deve essere disfatta, preservando la
consistenza del file system
89
La virtualizzazione del File System
Linux vs. Windows (5)

Per mantenere alte le prestazioni, il sistema operativo Linux deve
provare ad eseguire l’I/O in parti ampie ogni qualvolta, se possibile,
raggruppando le richieste di I/O fisicamente adiacenti

Il raggruppamento riduce l’overhead per la richiesta in cui
incorrono i driver delle periferiche, i dischi, e l’hardware dei
controller dei dischi

Una dimensione di richiesta di I/O di 1 KB è troppo piccola per
mantenere delle buone prestazioni, pertanto ext2fs utilizza delle
politiche di allocazione progettate per mettere blocchi di un file
logicamente adiacenti in blocchi di disco fisicamente adiacenti, così
da poter inoltrare una richiesta di I/O per vari blocchi del disco
come un'operazione singola
90
Università degli Studi
di Palermo
I dispositivi di I/O
Linux vs. Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
91
Virtualizzazione delle Periferiche (1)

Il livello più basso, il controllo dell’I/O, costituito dai driver dei dispositivi
e dei gestori d’interruzione, si occupa del trasferimento delle informazioni
tra la memoria centrale e la memoria secondaria

Un driver di dispositivo si può pensare come un traduttore che riceve
comandi ad alto livello, come “recupera il blocco 123”, ed emette specifiche
istruzioni di basso livello per i dispositivi, usate dal controllore che fa da
interfaccia tra i dispositivi di I/O ed il resto del sistema

Un driver di dispositivo scrive specifiche configurazioni di bit in specifiche
locazioni di memoria del controllore di I/O per indicare quali azioni il
dispositivo di I/O debba compiere ed in quali locazioni
92
Virtualizzazione delle Periferiche (2)

Il kernel mantiene delle liste delle risorse hardware allocate

Il PC ha un numero limitato di porte di I/O (gli indirizzi nello
spazio di indirizzi dell’hardware di I/O), canali di interrupt e
canali DMA; nel momento in cui un driver di periferica voglia
accedere a una risorsa di questo tipo, quest’ultima viene
riservata al driver tramite il database del kernel

Questo permette all’amministratore del sistema di
determinare quale risorsa è stata allocata da un dato driver in
un particolare momento
93
La virtualizzazione dei dispositivi di
I/O nel sistema operativo Windows (1)

I device Driver non sono interni al ntoskrnl.exe: vengono caricati
dinamicamente

Sono di vari tipi:

Bus Driver: gestiscono device che possono avere device figli
(PCI, PCMCIA, USB)

Function Driver - Hardware device driver:
particolari device tramite HAL, File system drivers

Filter Driver - File System filter device driver: per attuare disk
mirroring, encryption intercettando le chiamate I/O
controllano
94
La virtualizzazione dei dispositivi di
I/O nel sistema operativo Linux (1)

Linux fornisce un meccanismo di risoluzione dei conflitti centrale,
per organizzare arbitrariamente gli accessi alle risorse hardware. Gli
obiettivi del meccanismo sono i seguenti:

Evitare che i moduli vadano in crash durante l’accesso alle
risorse hardware. (ISOLAMENTO)

Evitare che i driver con autorilevazione della configurazione
della periferica interferiscano con i driver di periferica esistenti.

Risolvere i conflitti tra i driver, nel caso in cui più di uno di essi
cerchi di accedere allo stesso hardware; ad esempio, il driver
della stampante parallela e il driver di rete parallel- line IP
(PLIP) potrebbero tentare entrambi di comunicare con la porta
della stampante parallela.
95
La virtualizzazione dei dispositivi di
I/O nel sistema operativo Linux (2)
Tre tipi di device:
a
blocchi

a
r/w di blocchi di dimensione fissata (file)
caratteri

 di

caratteri (stream)
rete
come caratteri, ma via network stack
96
Università degli Studi
di Palermo
I benchmark
Linux vs. Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
97
I Benchmark

Benchmarking significa misurare la velocità con la quale un
computer esegue un processo, in una maniera tale da consentire il
confronto tra differenti combinazioni di hardware e software. Ciò
non include la facilità, l’estetica, considerazioni ergonomiche o
qualsiasi altro giudizio soggettivo

Il Benchmarking è un processo tedioso e ripetitivo e necessita
dell’attenzione ai dettagli. Molto spesso i risultati non sono quelli
che ci si aspettava, e sono soggetto di interpretazione (che
attualmente può essere la parte più importante di una procedura di
benchmarking)

Infine il benchmarking implica fatti e dati, non opinioni e
approssimazioni
98
I benchmark
Linux vs. Windows (1)
Test effettuati con Sistemi Operativi:
Windows
Linux
1.3.6
NT con service pack 4 e IIS 4
Suse 6.1, kernel 2.2.9 e Apache
99
I benchmark
Linux vs. Windows (2)
Hardware

Client: macchine di fascia bassa equipaggiati
con Linux altri con Windows (9x e NT),
simulando qualcosa come 1024 richieste in
simultanea

Server: equipaggiati con quattro processori
Pentium II Xeon a 450 Mhz, due Gb di RAM
ed una scheda di rete
100
I benchmark
Linux vs. Windows (3)
Primo Test

E’ stato effettuato facendo richiedere a
tutti i client la stessa pagina HTML da 4
Kb

Il risultato è una sostanziale parità di
performances fra i due webserver
101
I benchmark
Linux vs. Windows (4)
Secondo Test

Si basa su una richiesta casuale da parte
dei client di una pagina fra le 10.000
(ovviamente della stessa grandezza)
presenti in una directory del server

In questo test, Linux/Apache è risultato
circa il 15% più veloce
102
I benchmark
Linux vs. Windows (5)
Terzo Test

Inizia ad essere impegnativo per le macchine: si basa sulla richiesta
di una quantità di file di due volte superiore a quella della RAM dei
server (quindi qualcosa come 4 GB di pagine richieste)

NT/IIS sembra non riuscire a sopportare più di 30 richieste al
secondo

Linux/Apache arriva a 166. La differenza, si commenta, può essere
principalmente dovuta al tipo di partizione utilizzata dai sistemi (in
termine di grandezza dei cluster o i-node) che non alle capacità
degli stessi
103
I benchmark
Linux vs. Windows (6)
Quarto Test (1)

Si basa non più su pagine statiche come nei precedenti
tre test, ma su pagine dinamiche: la scelta è ricaduta sui
CGI, non essendo le tecnologie ASP e VBscript
direttamente portabili ad altri sistemi

Su NT è stato installato ApcivePerl 517.3, equivalente al
Perl 5.005_3 presente sul server Linux
104
I benchmark
Linux vs. Windows (7)
Quarto Test (2)

Il risultato è palese: NT/IIS soffrono della "non-natività" del
linguaggio Perl utilizzato per l'interpretazione dei CGI, riscontrabile
come un'eccessiva lentezza nell'invio delle pagine create
dinamicamente. Ma per questo test, avvertono, il risultato era
scontato dall'inizio, e quindi poco significativo. Ricordiamo infatti
che il Perl, linguaggio più largamente utilizzato per scrivere script
CGI, è nato in ambiente Unix e, sebbene il porting di Activestate per
le piattaforme Windows sembra essere molto ben riuscito, ancora
una volta la non-natività del linguaggio di interpretazione si fa
sentire.
105
I benchmark
Linux vs. Windows (8)
Quinto Test

E’ quello di servire sedici macchine tramite due schede di rete

Qui NT/IIS riesce a prevalere sull'avversario Linux/Apache anche
con una potenza di calcolo minore, ossia con un processore in meno

La velocità con cui NT/IIS invia le pagine ai client ha fatto
addirittura pensare che le performances non sarebbero peggiorate
significativamente neanche con quattro schede di rete al posto di
due

Questo dimostra che NT, quando ci si attiene alle sue "regole", può
essere veramente veloce
106
I benchmark
Linux vs. Windows (9)
Le conclusioni degli autori del test sono le seguenti:
 Per
una rete mista, formata cioè da richieste differenti
ed indipendentemente dal volume delle stesse,
l'accoppiata Linux/Apache risulta migliore
 Per
un server con più schede di rete e con prestazioni
medio-alte, NT/IIS è l'accoppiata ideale
http://server.html.it/guide/lezione/2243/il-primo-benchmark/
107
I benchmark
Linux vs. Windows (10)
Si evidenzia il fatto che le necessità possono essere
anche altre, ad esempio il linguaggio di scripting
da adottare (CGI, ASP, VBscript ecc.), la potenza
della macchina da utilizzare (sembra infatti che
Linux/Apache riesca a sfruttare maggiormente le
CPU, sebbene NT/IIS appaia sempre più
performante per ogni CPU aggiunta), ecc.
(migliore astrazione SMP)
108
I benchmark
Linux vs. Windows (11)
 Alcuni





Test effettuati:
ZD, gennaio 1999
Mindcraft, aprile 1999
PC Week, maggio 1999
ZD Labs, giugno 1999
PC Magazine, settembre 1999
109
I benchmark
Linux vs. Windows (12)
ZD, gennaio 1999


http://www.zdnet.com/sr/stories/issue/0,,387506,00.html

Hardware: CPU 266Mhz, 64Mb RAM, HD 4 GB IDE, Scheda
100BaseT

Software: Linux 2.0.35/Apache 1.3.1 - Win NT Server 4.0, SP4,
IIS 4.0
Questo test afferma che le distribuzioni commerciali di Linux
(sebbene non si capisca perchè "solo quelle commerciali") si
comportano meglio, a parità di hardware, di NT
110
I benchmark
Linux vs. Windows (13)
Mindcraft, aprile 1999

http://www.mindcraft.com/whitepapers/first-nts4rhlinux.html

Hardware: quadriprocessore Pentium II Xeon a 400Mhz, 1 GB RAM, scheda
100baseT

Software: Linux 2.2.2/Apache 1.3.4 - Win NT 4.0 EE, SP3, IIS 4.0

C'è da aggiungere che le schede Ethernet in questione erano quattro e sotto
NT ogni processore era legato ad una scheda

I risultati sono di una velocità di NT/IIS due o tre volte superiore a quella
di Linux/Apache, che ad un certo punto ha avuto un brusco calo di
performances. Non è però trascurabile il fatto che il test sia stato
commissionato da Microsoft. Inoltre, i risultati del un test effettuato con
quattro schede Ethernet sono abbastanza simili a quelli del primo
benchmark esaminato
111
I benchmark
Linux vs. Windows (14)
PC Week, maggio 1999


http://www.zdnet.com/pcweek/stories/news/0,4153,401970,00.html

Hardware: quattro schede Ethernet
Pentium III a 500 Mhz, 1 GB RAM
100baseT,
quadriprocessore

Software: Linux 2.2.7/Apache - NT 4.0 Workstation - Solaris 2.7 Netware 5.0
Le performances dei quattro sistemi analizzati sono a grandi linee simili

salgono con una curva simile fino a stabilizzarsi a seconda dei client
richiedenti

Linux si ferma a 28

NT a 40

Solaris e Netware continuano a salire anche oltre i 60 client
112
I benchmark
Linux vs. Windows (15)
ZD Labs, giugno 1999

http://www.zdnet.com/pcweek/stories/news/0,4153,1015266,00.html

Hardware: quattro schede Ethernet 100baseT, quadriprocessore Pentium II Xeon
a 400 Mhz, 1 GB RAM

Software: Linux 2.2.6/Apache 1.3.6 - Win NT 4.0 EE, SP4, IIS 4.0

Questo test è una replica del test di Aprile di Mindcraft

La performances dei due sistemi questa volta si equivalgono e le
performances di Linux non hanno bruschi cali come nel test di aprile. Il
tutto viene giustificato da una versione del kernel più recente ... ma siamo
sicuri che i due tecnici RedHat invitati a preparare il test sulla macchine
Linux non c'entino niente (in fatto di competenze e capacità di tuning del
sistema, intendo) ?
113
I benchmark
Linux vs. Windows (16)
PC Magazine, settembre 1999

http://www.zdnet.com/pcmag/stories/reviews/0,6755
,2327827,00.html

Questo test è interessante perchè mostra le prestazioni di
due sistemi (Linux e NT, appunto) non ottimizzati per
funzionare da webserver: inoltre, le macchine sono di
fascia bassa, con una singola CPU e 128 Mb di RAM

In questo test, Linux sorpassa le performances di NT di
circa il 50%, accedendo anche meno al disco fisso
114
I benchmark
Linux vs. Windows (17)

Nei nostri test l'ambiente Windows Server 2003 ha
registrato un periodo medio di interruzione del
servizio per l'utente finale pari a 4:20:19 rispetto al
periodo medio pari a 4:59:44 registrato per
l'ambiente Red Hat Enterprise Linux AS 3.0 su
eventi misurati di interruzione del servizio. I
risultati inferiori sono i migliori
Microsoft ha incaricato VeriTest, una divisione di Lionbridge Technologies, Inc., di misurare la quantità di tempo impiegata da un gruppo di
professionisti IT nell'esecuzione di diversi task, al fine di migliorare l'affidabilità e la solidità dell'infrastruttura back-end e dei servizi all'utente finale
in ambienti di produzione Windows e Linux, all'interno di un'azienda di medie dimensioni (simulata). VeriTest ha monitorato attentamente le
procedure seguite e i tool utilizzati dai professionisti IT per valutare l'impatto sull’interruzione dei servizi IT (o disagi aziendali) per l'utente finale
nella realtà aziendale simulata.
Aprile 2005
www.veritest.com · [email protected]
115
I benchmark
Linux vs. Windows (17)

Durante i nostri test l'ambiente Windows
Server 2003 ha completato più attività (280
task
ed
eventi
completati)rispetto
all'ambiente Red Hat Enterprise Linux AS 3.0
(248 task ed eventi completati) in un periodo
di tempo medio inferiore (18:44:14 contro
27:48:05)
Microsoft ha incaricato VeriTest, una divisione di Lionbridge Technologies, Inc., di misurare la quantità di tempo impiegata da un gruppo di
professionisti IT nell'esecuzione di diversi task, al fine di migliorare l'affidabilità e la solidità dell'infrastruttura back-end e dei servizi all'utente finale
in ambienti di produzione Windows e Linux, all'interno di un'azienda di medie dimensioni (simulata). VeriTest ha monitorato attentamente le
procedure seguite e i tool utilizzati dai professionisti IT per valutare l'impatto sull’interruzione dei servizi IT (o disagi aziendali) per l'utente finale
nella realtà aziendale simulata.
Aprile 2005
www.veritest.com · [email protected]
116
I benchmark
Linux vs. Windows (18)
Tempo medio d’interruzione di servizio su eventi reattivi misurati (i risultati inferiori sono i migliori)
117
I benchmark
Linux vs. Windows (19)
Tempo medio impiegato su task proattivi ed eventi reattivi (i risultati inferiori sono i migliori)
118
I benchmark
Linux vs. Windows (20)
Numero di task proattivi completati e di eventi reattivi risolti (i risultati maggiori sono i migliori)
119
I benchmark
Linux vs. Windows (21)
Microsoft Windows NT Server 4.0 and Red Hat Linux 5.2 Upgraded to the Linux 2.2.2 Kernel
http://www.mindcraft.com/whitepapers/first-nts4rhlinux.html
120
I benchmark
Linux vs. Windows (22)
Microsoft Windows NT Server 4.0 and Red Hat Linux 5.2 Upgraded to the Linux 2.2.2 Kernel
http://www.mindcraft.com/whitepapers/first-nts4rhlinux.html
121
I benchmark
Linux vs. Windows (23)
Microsoft Windows NT Server 4.0 and Red Hat Linux 5.2 Upgraded to the Linux 2.2.2 Kernel
Capire come NetBench 5.01 lavora aiuterà a
spiegare il significato della misura del
throughput NetBench. NetBench stressa un
file server usando un numero di test di
sistema per leggere e scrivere files in un
server. NetBench test suite è composto di
un numero di test misti. Un mix è una
particolare configurazione di parametri
NetBench, inclusi un numero di test di
sistema usati per le prove di carico del
server. Tipicamente, ogni mix incrementa il
carico nel server con un incremento del
numero test. Modificando il NetBench
NBDM_60 standard. Nel sito NetBench Test
Suite Configuration Parameters è mostrato
esattamente come sono stati configurati i
parametri per il test.
http://www.mindcraft.com/whitepapers/first-nts4rhlinux.html
122
I benchmark
Linux vs. Windows (24)
File Server Performance - Conclusioni
Windows NT Server 4.0 è un file server molto performante che aiuta gli utenti ad essere
più produttivi rispetto ad un file server Linux/Samba. Noi basiamo questa conclusione
basandoci sulla seguente analisi:

Il picco di performance per Windows NT Server 4.0 era 286.7 Mbits/second a 112
test systems mentre Linux/Samba raggiungeva un picco di 114.6 Mbits/second a
48 test systems. Così, Windows NT Server raggiungeva un livello di picco di
performance che era di 2.5 volte quello di Linux/Samba. Il migliore risultato come
mostrato con Windows NT Server 4.0 è 43.5% più veloce di Linux/Samba con 48
test di sistema. Solo un piccolo server provato, con 1 o 16 test di sistema, da con
Linux/Samba esecuzioni migliori di Windows NT Server e solo del 26%

Le performance per i sistemi Windows NT Server 4.0 e Linux/Samba degradano
lentamente quando il carico incrementa. Così entrambi i sistemi dovrebbero
rilasciare performance predicibili per fino in caso di sovraccarico
123
I benchmark
Linux vs. Windows (25)
Configurazione HW del Server
124
I benchmark
Linux vs. Windows (26)
Test
System
Plant
125
Università degli Studi
di Palermo
Microsoft Windows Server 2003 con
IIS 6.0 vs. RedHat Linux:
Le prestazioni dei Web Server a
confronto
Risultati Ufficiali Benchmark Veritest
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
126
Windows Server 2003 & IIS 6.0 e Red
Hat Linux a confronto
Valori massimi di prestazioni per Web Server statici
35.000
Con 8 CPU si ha un
miglioramento del 300%
con Windows rispetto a
Red Hat

Windows Server
2003 supera Red
Hat Linux in tutte
le configurazioni

Gli studi Veritest
dimostrano
aumenti delle
prestazioni su
piattaforma
Windows rispetto
a Red Hat Apache
Richieste al secondo
30.000
25.000
20.000
15.000
10.000
5.000
0
DL760 -1P
DL760 - 2P
DL760-4P
DL760-8P
DL760 -1P
DL760 - 2P
DL760-4P
DL760-8P
Windows Server 2003
8861
14214
24293
33991
Red Hat Linux Advanced Server 2.1 - Apache
2387
4639
6465
8496
Red Hat Linux Advanced Server 2.1 - TUX
7880
11676
16035
13007
% Improvement Windows Vs. Red Hat Adv. Apache
271%
206%
276%
300%
% Improvement Windows Vs. Red Hat Adv. Tux
12%
22%
51%
161%
127
Windows Server 2003 & IIS 6.0 vs Linux Red Hat
30000
Risultati prestazioni Web server statici su server DL760 4 CPU
Windows Server 2003 Multi Thread
Windows Server 2003
Richieste al secondo
25000
Red Hat Advanced 2.1- Apache
20000
Red Hat Advanced 2.1- TUX
15000
Windows Server 2003
raggiunge prestazioni
superiori del 33%
rispetto a Red Hat
Advanced with TUX
10000
5000
0
1
8
16
24
32
40
48
56
64
72
80
88
96
104
112
120
# di client
128
Windows Server 2003 & IIS 6.0 vs Linux Red Hat
40000
Risultati prestazioni Web server statici su server DL760 8 CPU
35000
Richieste al secondo
Windows Server 2003
ottiene prestazione 3
volte superiori a Red
Hat Advanced with
TUX
Windows Server 2003 - Multi
Threaded
Windows Server 2003
Red Hat Advanced Server 2.1Apache
Red Hat Advanced Server 2.1- TUX
30000
25000
20000
15000
10000
5000
0
1
8
16
24
32
40
48
56
64
72
80
88
96
104
112
120
# di client
129
Università degli Studi
di Palermo
La virtualizzazione dei
sistemi operativi
VMWare vs. Xen
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
130
La virtualizzazione dei Sistemi (1)

Strategie per simulare un ambiente:
Emulazione pura
Emulazione delle
API di un sistema
operativo
Virtualizzazione dell’hardware
131
La virtualizzazione dei Sistemi (2)
La virtualizzazione dei Sistemi (3)
Sistema operativo virtuale: come funziona ?
133
Virtualizzazione e paravirtualizzazione
(Vmware vs. Xen)
Micro-Kernel Virtualization
Paravirtualization
134
Caratteristiche a confronto
(Vmware vs. Xen)
135
Caratteristiche a confronto
(Vmware vs. Xen)
136
Caratteristiche a confronto
(Vmware vs. Xen)
137
Caratteristiche a confronto
(Vmware vs. Xen)
138
Caratteristiche a confronto
(Vmware vs. Xen)
139
Caratteristiche a confronto
(Vmware vs. Xen)
140
Caratteristiche a confronto
(Vmware vs. Xen)
141
Le conclusioni

L’oggetto di questa valutazione è quello di validare le
performance e la scalabilità di “VMWare ESX Server” e
“XEN Hypervisor”. Diversamente da XEN Hypervisor,
le prove di VMWare ESX Server ci dimostra di possedere
una combinazione dei requisiti necessari per “enterprise
datacenters”

I test evidenziano diversi risultati chiave che sono
importanti per il successo delle funzionalità di un
datacenter
142
Università degli Studi
di Palermo
Il TCO
Linux vs. Windows
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
143
Confronto Critico sul TCO
Linux vs. Windows
Con una percentuale schiacciante dell’88%,
le aziende affermano che, a parità di
scenario di utilizzo, le prestazioni e
l’affidabilità fornite dal sistema operativo
Windows Server 2003 di Microsoft sono
uguali o superiori a quelle di Linux
La relazione di Yankee Group è pubblicata per il solo utilizzo da parte degli iscritti al servizio di pianificazione di Yankee Group. È vietata la copia,
riproduzione o la trasmissione integrale o parziale senza espressa autorizzazione da parte di Yankee Group, 31 St. James Ave., Boston, MA 02116. Tel.:
(617) 956-5000. Fax: (617) 956-5005. Yankee Group può essere contattato tramite e-mail all'indirizzo: [email protected]. Per ulteriori
informazioni, contattare Yankee Group. Tutti i diritti riservati. Tutte le opinioni e le stime qui contenute rappresentano un nostro giudizio alla data
attuale e sono soggette a cambiamenti senza notifica.
144
Confronto Critico sul TCO
Linux vs. Windows
È quanto emerso da un'inchiesta non
sponsorizzata condotta da Yankee
Group,
una
organizzazione
indipendente, sul confronto del TCO di
Linux e Windows nel Nord America
per l’anno 2005
La relazione di Yankee Group è pubblicata per il solo utilizzo da parte degli iscritti al servizio di pianificazione di Yankee Group. È vietata la copia,
riproduzione o la trasmissione integrale o parziale senza espressa autorizzazione da parte di Yankee Group, 31 St. James Ave., Boston, MA 02116. Tel.:
(617) 956-5000. Fax: (617) 956-5005. Yankee Group può essere contattato tramite e-mail all'indirizzo: [email protected]. Per ulteriori
informazioni, contattare Yankee Group. Tutti i diritti riservati. Tutte le opinioni e le stime qui contenute rappresentano un nostro giudizio alla data
attuale e sono soggette a cambiamenti senza notifica.
145
Confronto Critico sul TCO
Linux vs. Windows
Dai risultati si evince che gli sforzi
continui di Microsoft per migliorare
sistema operativo Windows, hanno
prodotto miglioramenti concreti a
livello di prestazioni
La relazione di Yankee Group è pubblicata per il solo utilizzo da parte degli iscritti al servizio di pianificazione di Yankee Group. È vietata la copia,
riproduzione o la trasmissione integrale o parziale senza espressa autorizzazione da parte di Yankee Group, 31 St. James Ave., Boston, MA 02116. Tel.:
(617) 956-5000. Fax: (617) 956-5005. Yankee Group può essere contattato tramite e-mail all'indirizzo: [email protected]. Per ulteriori
informazioni, contattare Yankee Group. Tutti i diritti riservati. Tutte le opinioni e le stime qui contenute rappresentano un nostro giudizio alla data
attuale e sono soggette a cambiamenti senza notifica.
146
Confronto Critico sul TCO
Linux vs. Windows
La percentuale registrata dell’88%, rappresentativa
dei clienti aziendali che hanno definito le
prestazioni di Windows pari o superiori a quelle di
Linux, mostra un aumento del 12% rispetto al 76%
dei clienti che avevano fornito la stessa valutazione
nell’indagine svolta da Yankee Group nel 2004 sul
confronto tra il TCO di Linux, UNIX e Windows
La relazione di Yankee Group è pubblicata per il solo utilizzo da parte degli iscritti al servizio di pianificazione di Yankee Group. È vietata la copia,
riproduzione o la trasmissione integrale o parziale senza espressa autorizzazione da parte di Yankee Group, 31 St. James Ave., Boston, MA 02116. Tel.:
(617) 956-5000. Fax: (617) 956-5005. Yankee Group può essere contattato tramite e-mail all'indirizzo: [email protected]. Per ulteriori
informazioni, contattare Yankee Group. Tutti i diritti riservati. Tutte le opinioni e le stime qui contenute rappresentano un nostro giudizio alla data
attuale e sono soggette a cambiamenti senza notifica.
147
Università degli Studi
di Palermo
Comparazione dei TCO di GNU/Linux e
di Windows nelle Piccole/Medie Imprese
Emiliano/Romagnole
Pietro Suffritti - Emilia Romagna Linux User Group
[email protected]
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
148
Comparazione TCO
Linux vs. Windows
Qual è per una piccola/media impresa
emiliano/romagnola il costo complessivo
REALE del sistema informatico nel caso in
cui si sia scelto di basarsi su tecnologia
Microsoft o su tecnologia GNU/Linux ?
Pietro Suffritti - [email protected]
149
Comparazione TCO
Linux vs. Windows
Affidabilità dei due sistemi: è una leggenda che Linux sia più affidabile di Windows?
NO. Esiste uno studio comparato di affidabilità di moltissimi sistemi realizzato
dall'Università del Wisconsin (inventore dei monkey tests) che dimostra che è così.
•Windows
NT 4.0 SP 6.0a: testate 32 applicazioni il 27/7/2000
•81,7% di crash/hung nel caso dell' invio di messaggi casuali
•96,9% di crash/hung nel caso di ricezione di messaggi casuali
•45,4% di crash/hung in caso di eventi casuali validi
•GNU/Linux:
•
testate 47 applicazioni il 18/02/2000
6% di crash di applicazioni in tutti e tre i casi, 0 hung del sistema
•Linux+Applicazioni
commerciali: testate 55 applicazioni il 18/02/2000
•9% di crash di applicazioni in tutti e tre i casi, 0 hung del sistema
Per ogni crash di Linux NT va in crash almeno 12,5 volte
Pietro Suffritti - [email protected]
150
Comparazione TCO
Linux vs. Windows
Quanto tempo potrò usare lo stesso hardware sotto Linux e sotto Windows ?
La vita media di un PC sotto Windows e’ considerata di al massimo 3 anni. La
vita media dello stesso PC sotto Linux arriva tranquillamente a 6 anni
•I
PC top level di tre anni fa (dicembre 1998) erano dei Pentium II 450 MHz,
con 64/128 Mb di RAM e dischi da 4/6 Gb. Queste macchine oggi farebbero
girare Windows XP o 2000 a malapena, mentre sono macchine “più che
abbondanti” per un sistema Linux con XFree86
•Per
trovare la prima macchina su cui e’ improponibile fare funzionare
XFree86 dobbiamo arrivare ad un 486 con 16/32 Mb di RAM e HD da 5/600
Mb. Queste sono macchine di 7 anni fa abbondanti
La vita utile dell’hardware raddoppia sotto Linux
Pietro Suffritti - [email protected]
151
Comparazione TCO
Linux vs. Windows
Quanti PERSONAL COMPUTERS (PC, NON Servers) avete nella vostra azienda ?
25
Quanti utenti finali di PC ci sono nella vostra azienda ?
25
Qual e' lo stipendio MEDIO lordo annuale dei vostri utenti di PC ?
€ 35.880,00
Stabilendo un ricarico per spese di gestione e varie del 30%, il costo per impiegato all'anno e' € 46.644,00
CALCOLO SALARI MEDI
Tipologia di Personale
Direttori
Dirigenti
Quadri
Impiegati
Totale
Media
Stipendio lordo/anno L.
Stipenio
L. 151.029.060
L. 100.686.040
L. 75.514.530
L. 50.343.020
Pietro Suffritti - [email protected]
lordo/anno €N° persone Costo per classe L. Costo per classe €
€ 78.000,00
2
L. 302.058.120
€ 156.000,00
€ 52.000,00
3
L. 302.058.120
€ 156.000,00
€ 39.000,00
5
L. 377.572.650
€ 195.000,00
€ 26.000,00
15
L. 755.145.300
€ 390.000,00
L. 1.736.834.190
€ 897.000,00
L. 69.473.368
€ 35.880,00
152
Comparazione TCO
Linux vs. Windows
Total cost of ownership Windows:
Costo totale annuo dell' infrastruttura IT
€ 365.170,34
L. 707.068.368
Total Cost of Ownership per singolo PC
€ 14.606,81
L. 28.282.735
Total cost of ownership Linux:
Costo totale annuo dell' infrastruttura IT
€ 237.926,86
L. 460.690.640
Total Cost of Ownership per singolo PC
€ 9.517,07
L. 18.427.626
Differenza fra i due:
Costo totale annuo dell' infrastruttura IT
€ 127.243,48
L. 246.377.728
Total Cost of Ownership per singolo PC
€ 5.089,74
L. 9.855.109
PERCENTUALE DI DIFFERENZA TRA I DUE TCO
Pietro Suffritti - [email protected]
34,84
153
Le conclusioni

Di Windows esiste una sola versione, gestita
direttamente da Microsoft

Eventuali modifiche al software di base non
sono possibili

Per amministrare Windows all’interno di una
azienda piccola o media bastano competenze
medie, reperibili con grande facilità
154
Le conclusioni

Di Linux esistono svariate versioni, sostanzialmente
simili nelle componenti di base, ma diverse nelle
personalizzazioni e nelle utility di gestione

L’intero codice del sistema è disponibile per
manipolazioni
e
personalizzazioni
direttamente
all’interno del sistema operativo

Agire all’interno del sistema richiede un amministratore
con competenze mediamente superiori (costi maggiorati)
155
Università degli Studi
di Palermo
Riferimenti
bibliografici e testi per
approfondimenti
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
per i Sistemi Intelligenti
156
Riferimenti bibliografici e testi per
approfondimenti

Sistemi Operativi - Maestrini - Edit. Mc
Graw Hill

Sistemi Operativi - Silberschatz-Galvin Edit. Addison -Wesley

Modern Operating Systems - Andrew
Tanenbaum - Edit. Prentice Hall
157