![Show Menu](styles/mobile-menu.png)
![Page Background](./../common/page-substrates/page0060.jpg)
EMBEDDED
MAGGIO
60
SOFTWARE
|
HYPERVISOR
H
ypervisor: i progettisti di software em-
bedded incontrano sempre più spesso questo ter-
mine. C’è una frenesia iperattiva su questa tec-
nologia (notare il gioco di parole). Per esempio,
al momento sembra essere un punto chiave di di-
scussione nei segmenti automobilistico, avionico,
aerospaziale, ma anche nell’ambito delle tecnolo-
gie medicali. In ogni caso possiamo chiederci: che
impatto c’è sui cicli di sviluppo e in particolare
riguardo al debug? I tool di debug, soprattutto
quelli che accedono all’hardware - per esempio i
debugger JTAG - hanno una reale necessità di
sapere quando nel sistema sotto test si usa un
hypervisor. Naturalmente il
progettista vuole avere a di-
sposizione un debugger che gli
mostri completamente lo stato
del sistema embedded, con tut-
ti i componenti come l’hypervi-
sor, i sistemi operativi guest e
i processi guest.
Macchine diverse sullo stesso
hardware
Come dice Wikipedia: “Gli
hypervisor permettono l’esecu-
zione contemporanea di siste-
mi operativi guest diversi su
uno stesso sistema host”. Sono
usati per poter eseguire in pa-
rallelo attività diverse su uno
stesso hardware, e le attività
sono così diverse che si usano
sistemi operativi differenti
Spesso per motivi economici le funzionalità di dispositivi elettronici diversi
vengono consolidate su una base hardware comune. Un hypervisor separa
le diverse funzionalità a livello software: in questo modo il debug diventa
più difficile, ma non per questo impossibile
Alla scoperta dell’hypervisor
Rudolf Dienstbeck
Lauterbach GmbH
per implementarle. Compito dell’hypervisor è far
sì che tutti questi sistemi operativi riescano a gi-
rare su un solo computer, condividendo fra loro
la CPU grazie a tecniche di timeslicing oppure
assegnando dinamicamente ogni singolo core ai
diversi guest nel caso di ambienti multicore.
Tutti conoscono gli hypervisor su computer de-
sktop grazie a VMWare o VirtualBox. Per esem-
pio è possibile far girare su Windows una o più
distribuzioni Linux complete. Altri esempi, usati
anche nei sistemi embedded, comprendono Xen,
KVM, Jailhouse e QEMU.
Un’applicazione pratica, scelta nell’ambito dei
sistemi embedded, potrebbe essere così struttu-
rata: l’obiettivo è ottenere un cruscotto per auto
basato su una distribuzione Linux industriale,
un sistema infotainment che funziona con An-
droid, il condizionatore che usa FreeRTOS e il
Fig. 1 – Un hypervisor coordina le operazioni di più macchine virtuali su una
macchina reale, assicurando una netta separazione fra le macchine virtuali