Programmazione
Dipartimento di Ingegneria Meccanica e Industriale
PROGRAMMAZIONE
Docente: Marco Sechi
E-mail: marco.sechi@unibs.it
Vers. 24/10/2015
Virtualizzazione
Virtualizzazione
Il linguaggio assembly il linguaggio del
microprocessore. Un programma eseguibile
costituito da istruzioni assembly che vengono
interpretate ed eseguite dal microprocessore.
Un programma che stato progettato per
essere eseguito su un determinato hardware
( scritto nellassembly di quel processore!)
non pu girare su un hardware diverso. Per
eseguire un applicativo su diverse piattaforme
hardware necessario svilupparne diverse
versioni, ciascuna specifica per il processore
che dove l'applicazione deve girare.
Questo comporta costi molto elevati, non solo
per via dello sviluppo multiplo, ma anche nella
gestione degli aggiornamenti: ogni modifica
deve essere replicata e testata su tutte le
piattaforme supportate!
Il sistema operativo gioca un ruolo importante nello sviluppo delle applicazioni. Oltre a
fornire linterfaccia utente/macchina, fornisce una serie di funzionalit che devono
essere presenti nella maggior parte delle applicazioni come ad esempio: luso della
stampante, del video, del mouse etc.
Tali funzioni, chiamate API (DLL in windows), possono essere inserite nelle applicazioni
(tramite delle librerie) senza che sia necessario riscriverle ogni volta. Questo permette
di semplificare ulteriormente lo sviluppo delle applicazioni.
Le API svolgono un ulteriore funzione: filtrano gli accessi alle risorse hardware. Pi il
sistema operativo nasconde alle applicazioni il livello fisico (impedendo qualsiasi accesso
diretto allhardware) maggiore il livello di sicurezza ottenuto. Le API controllano luso
delle risorse hardware imponendo delle regole che garantiscano un elevato livello di
sicurezza e stabilit del sistema.
Ad esempio un keylogger (dispositivo per registrare tutta lattivit di input dellutente) sar
invisibile al sistema operativo quando comunica direttamente con il livello hardware. Per
bypassare le protezioni del sistema operativo unapplicazione spia deve necessariamente
avviarsi prima del boot del sistema operativo e modificarne le procedure di sicurezza.
Docente: M. Sechi - Elementi di informatica e programmazione Universit degli studi di Brescia
VIRTUALIZZAZIONE HARDWARE
Il livello di
integrazione tale
che l'utente non si
rende neppure conto
del meccanismo di
virtualizzazione che
sta utilizzando.
https://www.virtualbox.org/
http://www.vmware.com
http://www.qemu.org
http://www.parallels.com/
Obsoleto!
https://www.microsoft.com/it-it/download/details.aspx?id=4580
E' necessario quindi procedere con l'installazione del Sistema Operativo utilizzando il set di
DVD appropriato.
Videata
CLIENT TS 1
Input
VM 1
1 A77
TERMINAL SERVER
CLIENT TS 2
VM 2
VM N
Videata virtuale
Concentratore
CLIENT TS N
VIRTUALIZATION
LAYER
La virtualizzazione
hardware estesa
dall'ambito standalone ad
un contesto di WAN (reti
geografiche, ad esempio
internet) costituisce il
punto di partenza di uno
dei servizi offerti dal
paradigma applicativo del
CLOUD.
VIRTUALIZZAZIONE SOFTWARE
#include
#include
#include
#include
#include
<QApplication>
<QTextEdit>
<QPushButton>
<QWidget>
<QVBoxLayout>
QObject::connect(&quitButton,SIGNAL(clicked()),&app,SLOT(quit())
);
layout.addWidget(&textEdit);
layout.addWidget(&quitButton);
window.setLayout(&layout);
window.show();
return app.exec();
}
Win
Apple
Linux
Piattaforma CLOUD
Ogni client (che potrebbe anche non essere un browser!) comunica, utilizzando un
opportuno client code (Javascript, Java, Object C), con il back-end (che gira sul app-engine
della piattaforma Cloud utilizzata) tramite le API rese disponibili dai cloud endpoints.
CODICE
CLIENT
API
SERVER
CLIENT
SPECIFICO