Table of Contents Table of Contents
Previous Page  60 / 84 Next Page
Information
Show Menu
Previous Page 60 / 84 Next Page
Page Background

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