La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

La virtualizzazione nei sistemi operativi Windows e Linux: confronti critici Presentazione a cura di: Ing. Botta Vincenzo Ing. Di Carmino Vincenzo Ing.

Presentazioni simili


Presentazione sul tema: "La virtualizzazione nei sistemi operativi Windows e Linux: confronti critici Presentazione a cura di: Ing. Botta Vincenzo Ing. Di Carmino Vincenzo Ing."— Transcript della presentazione:

1 La virtualizzazione nei sistemi operativi Windows e Linux: confronti critici Presentazione a cura di: Ing. Botta Vincenzo Ing. Di Carmino Vincenzo Ing. Orlando Maurizio Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti Docente del Corso: Prof. Ing. Sorbello Filippo

2 Sommario Introduzione  La virtualizzazione  Le caratteristiche della virtualizzazione  I vantaggi e gli svantaggi della virtualizzazione I sistemi operativi  Le risorse dei sistemi operativi Il kernel …  … nel sistema operativo Windows  … nel sistema operativo Linux La CPU …  … nel sistema operativo Windows  … nel sistema operativo Linux La memoria …  … nel sistema operativo Windows  … nel sistema operativo Linux Il file system …  … nel sistema operativo Windows  … nel sistema operativo Linux Le periferiche di I/O …  … nel sistema operativo Windows  … nel sistema operativo Linux La sicurezza …  … nel sistema operativo Windows  … nel sistema operativo Linux Le macchine virtuali  VMware  XEN  Virtual PC Le conclusioni 2

3 Introduzione alla Virtualizzazione Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 3

4 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

5 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) 5 Architettura fisica (Hardware) Sistema Operativo (Virtualizzatore) Applicazioni (Utente)

6 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

7 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

8 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

9 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

10 I vantaggi della virtualizzazione 10 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)

11 Gli svantaggi della virtualizzazione 11 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

12 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

13 Hardware Modalità Utente Modalità Kernel Il sistema operativo Linux 13 Librerie di sistema condivise Programmi per la gestione del sistema Moduli caricabili del nucleo Nucleo del Linux Processi utenti Programmi di utilità (livello utente) Compilatori

14 Modalità Kernel Il sistema operativo Windows 14 Hardware Abstraction Layer KernelDevice Drivers Executive Supporto User e GDI (finestre, messaggi e grafica) Modalità Utente DLL dei sottosistemi Processi di sistema Processi di supporto Sottosistemi (Win32, Posix) Applicazioni utente Hardware

15 Il kernel Linux vs Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 15

16 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

17 La virtualizzazione e il kernel (2) Crescita delle linee di codice nei sistemi operativi 17

18 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

19 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

20 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 La virtualizzazione e il kernel (5) 20

21 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

22 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

23 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

24 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

25 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 (not- preemptive), e quindi i context switching non sono permessi quando il processore esegue codice appartenente al kernel 25

26 Architettura del kernel Windows (2) Non può essere impaginato sul disco Le funzioni del microkernel sono 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 26

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 Confronto critico Linux vs Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 34

35 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

36 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

37 Il Kernel: Linux vs. Windows (3) 37 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

38 Linux  gestione segnali: kill, alarm, pause, read, write, close, pipe, fifo Windows  messages: anonymous pipe, readfile, writefile, named pipe 38 Il Kernel: Linux vs. Windows (4)

39 Le risorse virtualizzate in un sistema operativo Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 39

40 Risorse virtualizzate nei sistemi operativi CPU Memoria Dispositivi di I/O Dischi (File System) 40

41 La CPU Linux vs. Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 41

42 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

43 La virtualizzazione della CPU in Linux (1) Utilizza algoritmi di schedulazione efficienti con complessità computazionale costante (round-robin, first- came-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

44 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

45 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

46 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: quando eseguiamo il codice del kernel 46

47 Confronto critico Linux vs Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 47

48 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

49 La Memoria Linux vs Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 49

50 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

51 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

52 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

53 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

54 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 54 La virtualizzazione della Memoria nel sistema operativo Linux (3) 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

55 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

56 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

57 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

58 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

59 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

60 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

61 La virtualizzazione della Memoria nel sistema operativo Windows (1) Il gestore di memoria virtuale (MV) assume che l’architettura sottostante:  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

62 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

63 La virtualizzazione della Memoria nel sistema operativo Windows (3) PDE PTE 63 Esempio di paginazione della memoria in Windows

64 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

65 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

66 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

67 Confronto critico Linux vs Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 67

68 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

69 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

70 Il file system Linux vs. Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 70

71 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 high- sierra 71

72 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

73 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: per i CD-ROM  UDF: per i DVD  FAT16, FAT32  NTFS: file system nativo 73

74 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) MMFT è un array di record la cui dimensione è fissa e pari a 1Kbyte La gestione dei blocchi liberi è fatta attraverso bitmap 74

75 La virtualizzazione del File System nel sistema operativo Windows (3) File fino a 2 63 byte Partizioni fino a 2 63 cluster, grandi fino a 64 kb E’ possibile convertire file system da FAT in NTFS (il contrario necessita di utility apposite) 75

76 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

77 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 critiche sono tutte ridondate 77

78 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

79 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

80 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

81 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

82 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 file speciale modificato solo da kernel 82

83 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

84 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

85 Confronto critico Linux vs Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 85

86 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

87 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

88 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

89 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

90 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

91 I dispositivi di I/O Linux vs. Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 91

92 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

93 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 Virtualizzazione delle Periferiche (2)

94 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: controllano particolari device tramite HAL, File system drivers  Filter Driver - File System filter device driver: per attuare disk mirroring, encryption intercettando le chiamate I/O 94

95 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

96 La virtualizzazione dei dispositivi di I/O nel sistema operativo Linux (2) Tre tipi di device:  a blocchi r/w di blocchi di dimensione fissata (file)  a caratteri caratteri (stream)  di rete come caratteri, ma via network stack 96

97 I benchmark Linux vs. Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 97

98 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

99 I benchmark Linux vs. Windows (1) Test effettuati con Sistemi Operativi:  Windows NT con service pack 4 e IIS 4  Linux Suse 6.1, kernel 2.2.9 e Apache 1.3.6 99

100 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 (2)

101 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 (3)

102 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 (4)

103 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 (5)

104 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 (6)

105 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 (7)

106 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 (8)

107 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 (9)

108 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 (10)

109 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 (11)

110 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 (12)

111 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 (13)

112 PC Week, maggio 1999 http://www.zdnet.com/pcweek/stories/news/0,4153,401970,00.html  Hardware: quattro schede Ethernet 100baseT, quadriprocessore Pentium III a 500 Mhz, 1 GB RAM  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 (14)

113 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 (15)

114 PC Magazine, settembre 1999 http://www.zdnet.com/pcmag/stories/reviews/0,6755,2327827,00.html 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 (16)

115 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 115 I benchmark Linux vs. Windows (17) Aprile 2005 www.veritest.com · info@veritest.com 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.

116 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) 116 I benchmark Linux vs. Windows (17) Aprile 2005 www.veritest.com · info@veritest.com 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.

117 Tempo medio d’interruzione di servizio su eventi reattivi misurati (i risultati inferiori sono i migliori) 117 I benchmark Linux vs. Windows (18)

118 Tempo medio impiegato su task proattivi ed eventi reattivi (i risultati inferiori sono i migliori) 118 I benchmark Linux vs. Windows (19)

119 Numero di task proattivi completati e di eventi reattivi risolti (i risultati maggiori sono i migliori) 119 I benchmark Linux vs. Windows (20)

120 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 (21)

121 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 (22)

122 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 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.NetBench Test Suite Configuration Parameters 122 I benchmark Linux vs. Windows (23)

123 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 (24)

124 Configurazione HW del Server 124 I benchmark Linux vs. Windows (25)

125 Test System Plant 125 I benchmark Linux vs. Windows (26)

126 Microsoft Windows Server 2003 con IIS 6.0 vs. RedHat Linux: Le prestazioni dei Web Server a confronto Risultati Ufficiali Benchmark Veritest Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 126

127 Valori massimi di prestazioni per Web Server statici Windows Server 2003 & IIS 6.0 e Red Hat Linux a confronto Windows Server 2003 supera Red Hat Linux in tutte le configurazioni 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 Gli studi Veritest dimostrano aumenti delle prestazioni su piattaforma Windows rispetto a Red Hat Apache Con 8 CPU si ha un miglioramento del 300% con Windows rispetto a Red Hat DL760 -1PDL760 - 2PDL760-4PDL760-8P Windows Server 20038861142142429333991 Red Hat Linux Advanced Server 2.1 - Apache 2387463964658496 Red Hat Linux Advanced Server 2.1 - TUX7880116761603513007 % Improvement Windows Vs. Red Hat Adv. Apache271%206%276%300% % Improvement Windows Vs. Red Hat Adv. Tux12%22%51%161% Richieste al secondo 127

128 Windows Server 2003 & IIS 6.0 vs Linux Red Hat Richieste al secondo # di client Windows Server 2003 raggiunge prestazioni superiori del 33% rispetto a Red Hat Advanced with TUX Risultati prestazioni Web server statici su server DL760 4 CPU 128

129 Richieste al secondo # di client Windows Server 2003 ottiene prestazione 3 volte superiori a Red Hat Advanced with TUX Risultati prestazioni Web server statici su server DL760 8 CPU 129 Windows Server 2003 & IIS 6.0 vs Linux Red Hat

130 La virtualizzazione dei sistemi operativi VMWare vs. Xen Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 130

131 Strategie per simulare un ambiente:  Emulazione pura  Emulazione delle API di un sistema operativo  Virtualizzazione dell’hardware 131 La virtualizzazione dei Sistemi (1)

132 La virtualizzazione dei Sistemi (2)

133 133 Sistema operativo virtuale: come funziona ? La virtualizzazione dei Sistemi (3)

134 Virtualizzazione e paravirtualizzazione (Vmware vs. Xen) 134 Micro-Kernel Virtualization Paravirtualization

135 135 Caratteristiche a confronto (Vmware vs. Xen)

136 136

137 Caratteristiche a confronto (Vmware vs. Xen) 137

138 Caratteristiche a confronto (Vmware vs. Xen) 138

139 Caratteristiche a confronto (Vmware vs. Xen) 139

140 Caratteristiche a confronto (Vmware vs. Xen) 140

141 Caratteristiche a confronto (Vmware vs. Xen) 141

142 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

143 Il TCO Linux vs. Windows Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 143

144 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: info@yankeegroup.com. 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

145 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: info@yankeegroup.com. 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

146 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: info@yankeegroup.com. 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

147 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: info@yankeegroup.com. 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

148 Comparazione dei TCO di GNU/Linux e di Windows nelle Piccole/Medie Imprese Emiliano/Romagnole Pietro Suffritti - Emilia Romagna Linux User Group pietro@suffritti.it Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 148

149 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 - pietro@suffritti.it 149 Comparazione TCO Linux vs. Windows

150 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 - pietro@suffritti.it 150 Comparazione TCO Linux vs. Windows

151 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 Quanto tempo potrò usare lo stesso hardware sotto Linux e sotto Windows ? La vita utile dell’hardware raddoppia sotto Linux Pietro Suffritti - pietro@suffritti.it 151 Comparazione TCO Linux vs. Windows

152 Pietro Suffritti - pietro@suffritti.it 152 Comparazione TCO Linux vs. Windows

153 Total cost of ownership Windows: Total cost of ownership Linux: Differenza fra i due: Pietro Suffritti - pietro@suffritti.it 153

154 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

155 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

156 Riferimenti bibliografici e testi per approfondimenti Università degli Studi di Palermo Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica per i Sistemi Intelligenti 156

157 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


Scaricare ppt "La virtualizzazione nei sistemi operativi Windows e Linux: confronti critici Presentazione a cura di: Ing. Botta Vincenzo Ing. Di Carmino Vincenzo Ing."

Presentazioni simili


Annunci Google