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