The Onion PC. Virtualizzazione strato dopo strato



Documenti analoghi
Architettura di un sistema operativo

Virtualizzazione e Macchine Virtuali

Architetture software. Virtualizzazione

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l.

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Virtualizzazione con KVM. Reggio Emilia - Linux Day 2014 Stefano Strozzi KVM

Introduzione alla Virtualizzazione

Protezione del Kernel Tramite Macchine Virtuali

Il Sistema Operativo (1)

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Approccio stratificato

PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Virtualizzazione di macchine Linux tramite XEN

Joomla! e la virtualizzazione in locale... pro e contro

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

27/03/2013. Contenuti

VMware. Gestione dello shutdown con UPS MetaSystem

Linux Virtuale Linux Virtuale

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

VIRTUALIZZAZIONE. Docente: Marco Sechi Modulo 1

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI STRUTTURE DEI SISTEMI OPERATIVI

ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE

Virtualizzazione VirtualBox su Host Windows

Macchine Virtuali. Docente: Fabio Tordini

Il computer: primi elementi

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

La virtualizzazione ed i suoi aspetti di sicurezza. Sergio Sagliocco Responsabile SecureLAB Direzione R&D CSP

Progetto Virtualizzazione

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Il sistema operativo TinyOS

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

INFORMATICA GENERALE. Prof Alberto Postiglione Dipartim. Scienze della Comunicazione Univ. Salerno. Università degli Studi di Salerno

CdL in Medicina Veterinaria - STPA AA

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Il controllo della visualizzazione

Sistema Operativo Compilatore

Dispensa di Informatica I.1

Comunicazione tra Processi

Comunicazione tra Processi

Architetture Applicative

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Scienze della Comunicazione Università di Salerno. UD 3.2a: Introduzione alla Programmazione

TITLE Sistemi Operativi 1

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Creare una Rete Locale Lezione n. 1

InfiXor. il programma facile e versatile per preventivi veloci e completi. il software di preventivazione per produttori e rivenditori di infissi

Introduzione ai Sistemi Operativi

Programmazione ad Oggetti. Java Parte I

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Mono per sistemi embedded

Protezione. Protezione. Protezione. Obiettivi della protezione

Setup dell ambiente virtuale

Fisciano, 24 ottobre 2008

Il Sistema Operativo

Il Linux che verrà... Francesco Crippa

Capitolo 3: Strutture dei sistemi operativi

Introduzione al sistema operativo Il file system: file, directory,...

Progettaz. e sviluppo Data Base

CONTROLLO DEGLI ACCESSI INTELLIGENTE PER UN FLUSSO DI PERSONE SICURO E CONFORTEVOLE. KONE Access

Le Infrastrutture Software ed il Sistema Operativo

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

Infrastrutture Software

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Capitolo 5: I thread

Informatica. Teoria. L architettura dei PC Storia dell informatica Periferiche Reti - Software. Marco Brama

Protezione dei sistemi virtuali in tre passaggi. Aziende che devono orientarsi nella scelta di una soluzione di backup per ambienti virtuali.

OmniAccessSuite. Plug-Ins. Ver. 1.3

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

Come Funziona. Virtualizzare con VMware

Il Software. Il software del PC. Il BIOS

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Corso di Sistemi di Elaborazione delle informazioni

L Informatica al Vostro Servizio

I sistemi virtuali nella PA. Il caso della Biblioteca del Consiglio Regionale della Puglia

GNUraghe. Desktop Virtualization +VirtualBox+...quando un solo pc non basta più... IL LUG DI ORISTANO. Virtualizzazione dei sistemi con VirtualBox

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

GridSense. L energia gestita con intelligenza.

MODULO 02. Iniziamo a usare il computer

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

MDaemon GroupWare Per offrire agli utenti le funzionalità di condivisione calendario, rubrica e gli altri oggetti di OutLook

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Transcript:

The Onion PC Virtualizzazione strato dopo strato

Cos'è un livello di astrazione?

Cos'è un livello di astrazione? Nell'esecuzione di un programma un livello di astrazione rappresenta i gradi di libertà di esecuzione Ovvero quanto il programma è consapevole dell'ambiente di esecuzione reale

Perché usare livelli di astrazione?

Perché usare livelli di astrazione? Per eseguire programmi pensati per un sistema su un altro

Perché usare livelli di astrazione? Per eseguire programmi pensati per un sistema su un altro Per isolare programmi potenzialmente pericolosi

Perché usare livelli di astrazione? Per eseguire programmi pensati per un sistema su un altro Per isolare programmi potenzialmente pericolosi Per consentire una migliore gestione delle risorse

I diversi strati della cipolla

I diversi strati della cipolla 1. Emulazione 2. Virtualizzazione 3. Paravirtualizzazione 4. Virtualizzazione d'ambiente 5. Sandbox applicativo 6. Codice gestito

Emulazione Si tratta del livello di astrazione più elevato Consente di eseguire codice compilato per un architettura hardware su un altra Esempi di questo livello sono software come QEMU, Bochs, PCSX...

Emulazione Consente di eseguire codice compilato per un architettura hardware su un altra Tali sistemi si basano su costrutti chiamati ricompilatori dinamici, essi sono specifici per la coppia architetturale (emulata,emulatore) e traducono al momento i comandi incomprensibili ; un pò come la traduzione simultanea tra linguaggi naturali Questo livello è computazionalmente molto pesante, per la necessità di eseguire tutto lo stack applicativo in modalità traduzione

Virtualizzazione Il secondo livello di astrazione per complessità Non permette l'esecuzione di codice di diverse architetture rispetto alla macchina fisica Consente l'esecuzione di differenti sistemi operativi contemporaneamente su un unica macchina Esempi di questo livello sono stack come KVM, VirtualBox, VMWare...

Virtualizzazione Consente l'esecuzione di differenti sistemi operativi contemporaneamente su un unica macchina Tali sistemi funzionano sfruttando varie tecniche: Estensioni hardware (particolari istruzioni presenti nei processori di ultima generazione), Il ring-scaling; ovvero il forzare il sistema virtualizzato ad eseguire istruzioni privilegiate (ring 0) come istruzioni a più bassa priorità (ring 1)

Paravirtualizzazione Un estensione del secondo livello Consente l'esecuzione di differenti sistemi operativi contemporaneamente su un unica macchina Migliori prestazioni della virtualizzazione, ma richiede sistemi ad hoc Esempi di questo livello sono il software Xen e i precedenti sistemi di virtualizzazione con attivi i meccanismi di integrazione

Paravirtualizzazione Migliori prestazioni della virtualizzazione, ma richiede sistemi ad hoc Tali sistemi aumentano le prestazioni della virtualizzazione informando il sistema virtualizzato del suo stato di ospite Può essere parziale per ottimizzare solo alcune operazioni (virtio per gestione dischi; guest-additions per gestione video, usb,...) Può essere globale, tramite kernel specificamente modificati, per evitare al sistema di virtualizzazione l'operazione di ringscaling, risparmiando risorse

Virtualizzazione d'ambiente Sistemi di quarto livello, i primi a bassa complessità Prestazioni molto elevate, ma è possibile eseguire solo software compatibile col sistema operativo della macchina reale Esempi di questo livello sono il FreeBSD Jails, OpenVZ, Solaris Zones e LXC

Virtualizzazione d'ambiente Prestazioni molto elevate, ma è possibile eseguire solo software compatibile col sistema operativo della macchina reale Questi sistemi sfruttano le potenzialità di gestione dei processi dei moderni sistemi, uniti ad una tecnica di astrazione risalente a UNIX (chroot). Il limite di compatibilità deriva dall'esecuzione di un solo kernel che esporta parte delle sue funzioni e dei suoi drivers agli ambienti virtualizzati

Sandbox applicativo Estensione del quarto livello Riduce il consumo di risorse, mantenendo le limitazioni della virtualizzazione d'ambiente Esempi di questo livello sono le modalità single-application di FreeBSD Jails e LXC

Sandbox applicativo Riduce il consumo di risorse, mantenendo le limitazioni della virtualizzazione d'ambiente Mentre nel livello precedente pur condividendo un unico kernel tutti gli altri processi venivano duplicati per fornire un ambiente completo ma isolato, con il sistema Sandbox l'ambiente isolato è relativo unicamente alla singola applicazione, riducendo l'uso della memoria e fornendo all'applicativo sistemi per interagire (seppur in modo filtrato) ai processi di sistema.

Codice gestito Ultimo livello di astrazione È un sistema per eseguire codice su differenti macchine senza passare per l'emulazione È scelto in fase di compilazione o scrittura del codice In questo livello rientrano i programmi scritti per la piattaforma Java (JVM), con i linguaggi interpretati (Python, Ruby,...) o compilati particolari framework (LLVM)

Virtualizzazione: possibili usi Test di nuovi sistemi, o nuove versioni di sistemi operativi Test di software potenzialmente dannoso Test di nuove impostazioni del sistema operativo Utilizzo di software scritto per altri sistemi operativi Server Consolidation: aggregare i servizi su un unica macchina fisica

Server Consolidation Riduce costi operativi relativi al numero di macchine Riduce la complessità dei sistemi di backup Riduce il MTBF, ovvero il tempo di ripristino di un sistema a causa di problemi