Introducció a la virtualització

Atès el nivell creixent de recursos de les màquines que formen part dels sistemes informàtics, es produeix el fet que en determinats moments aquestes màquines no utilitzen una bona part de la seva potencialitat. Per aprofitar aquesta situació apareix de nou un terme ja antic en el món de la informàtica com és el de la virtualització.

D’aquesta manera, per mitjà de la virtualització, es volen aprofitar les màquines per fer la simulació de maquinari, o sobretot últimament la instal·lació de diversos sistemes operatius virtuals en una mateixa màquina.

Aquesta virtualització es fa de diferents maneres segons quina tècnica s’utilitza, i darrerament han estat moltes les màquines virtuals que han anat apareixent i desenvolupant-se amb noves versions.

Introducció a la virtualització

La virtualització en el món de la informàtica va arrancar ja ens els anys seixanta i va tenir diferents aplicacions que anaven des de sistemes computacionals complexos fins al treball de capacitats o components individuals.

En molts moments les capacitats de les computadores no s’utilitzen al màxim, de manera que deixen un marge per a l’aprofitament d’aquests recursos. Però la qüestió és com es poden utilitzar aquests recursos en determinats àmbits si a la màquina ja hi tenim instal·lats el sistema operatiu i una sèrie de programaris. Així d’entrada semblaria que només podem optimitzar els recursos de la màquina a base d’instal·lar i executar més programari. La virtualització obre la porta a aprofitar aquests recursos de màquina en tot tipus de situacions, fins i tot a tenir diversos sistemes operatius dins de la mateixa màquina i treballant a la vegada. La manera en què això es pot materialitzar és el que es coneix com a virtualització.

La virtualització consisteix en l’abstracció dels recursos de la màquina per poder-ne utilitzar els que sobren i crear màquines virtuals que utilitzen aquest maquinari (hardware) com si estigués perfectament lliure.

Aleshores, a partir de la virtualització es pot compartir una màquina física per executar diverses màquines virtuals, de manera que aquestes comparteixen els recursos lliures de la màquina com la CPU, la memòria, el disc i la connexió de xarxa que d’altra manera estarien lliures esperant un pic de feina. A més a més, la virtualització permet utilitzar aquestes màquines virtuals amb independència del maquinari. Això s’aconsegueix ocultant els detalls tècnics mitjançant el mètode de l’encapsulació.

Una màquina virtual permet tenir diversos ordinadors virtuals executant-se sobre el mateix ordinador físic. Això s’aconsegueix mitjançant software o programari, una capa de programari que crea una capa d’abstracció entre el maquinari de la màquina física o host i el sistema de la màquina virtual. Aquest és el mètode per crear una versió virtual d’un dispositiu o recurs tant si és tot un servidor com simplement un disc dur, una xarxa o un sistema operatiu.

Aquesta virtualització es produeix mitjançant aquesta capa de programari coneguda com a màquina virtual. Aquesta es coneix com a programari amfitrió, en anglès host que simula un entorn de maquinari capaç d’allotjar un programari guest o hoste. Aquest programari guest, que pot arribar a ser un sistema operatiu complet, s’executa com si estigués aïllat en una plataforma de maquinari autònoma.

En informàtica, una màquina virtual és un programari que emula una computadora i pot executar programes com si fos una computadora real.

Una característica de les màquines virtuals és que els processos que executen estan limitats pels recursos i abstraccions proporcionats per elles.

Una de les utilitzacions més esteses de les màquines virtuals consisteix a executar sistemes operatius per provar-los. D’aquesta manera podreu executar un sistema operatiu que vulgueu provar, per exemple, un Linux, des del sistema operatiu habitual, per exemple un Mac OS X, sense necessitat d’instal·lar-lo directament en la vostra màquina i sense por que es desconfiguri el sistema operatiu primari.

Arquitectures. Tipus de màquines virtuals

L’apantallament del maquinari d’un ordinador com si fos una màquina totalment autònoma a partir de l’encapsulament proporcionat per la capa de programari anomenat màquina virtual es pot produir bàsicament de dues maneres diferents. Aquesta classificació es produeix segons la funcionalitat de la màquina virtual i segons el seu grau d’equivalència a una veritable màquina autònoma.

Aleshores hi ha dos tipus de màquines virtuals: les màquines virtuals de procés i les màquines virtuals de sistema.

Segons aquesta classificació, les màquines virtuals de procés serveixen per virtualitzar només determinats processos, mentre que les màquines virtuals de sistema permeten allotjar, per exemple, tot un sistema operatiu hoste gràcies al programari amfitrió de la màquina virtual.

Màquines virtuals de procés

La màquina virtual de procés, també coneguda com a màquina virtual d’aplicació, s’executa com un procés normal dins d’un sistema operatiu i suporta un sol procés. La màquina s’inicia automàticament quan es llança el procés que es vol executar i s’atura quan aquest procés ha finalitzat. L’objectiu d’aquesta màquina és proporcionar un entorn d’execució independent de la plataforma de maquinari i del sistema operatiu, de manera que amagui els detalls de la plataforma subjacent i permeti que un programa s’executi sempre de la mateixa manera sobre qualsevol tipus de plataforma.

Un dels exemples més coneguts d’aquest tipus de màquina virtual és la màquina virtual de Java. Un altre exemple seria la de l’entorn .Net de Microsoft, que s’anomena common language runtime. Altres exemples de màquines virtuals de procés són els següents: Macromedia Flash Player, SWF, Perl virtual machine, Perl i un llarg etcètera.

Molts d’aquests exemples corresponen a màquines virtuals destinades a poder executar diversos processos de diferents llenguatges de programació. La finalitat sempre és apantallar el maquinari del procés a executar; d’aquesta manera, es pot programar el procés sense tenir en compte en quin tipus de màquina s’executarà. En tots, l’estructura de la màquina virtual és similar.

A part de les màquines virtuals destinades a executar llenguatges de programació en diferents entorns de maquinari, també hi ha les màquines virtuals de procés que es dediquen a simular maquinari, de manera que permeten que determinades aplicacions pensades per a altres arquitectures de processador es puguin executar sobre un maquinari que en teoria no suporten.

JVM. Màquina virtual de Java

Una de les màquines virtuals de procés més utilitzades és la màquina virtual de Java a causa de la quantitat d’aplicacions que utilitzen aquest llenguatge de programació. El Java és un llenguatge de programació de l’empresa Sun Microsystems que originàriament s’anomenava Oak, que va ser pensat i programat per utilitzar en petits dispositius electrodomèstics, però sense èxit comercial. Aleshores els seus creadors es van trobar amb un llenguatge amb una tecnologia forta, eficient, orientada a objectes, independent de l’arquitectura però que no servia per a res. Però al cap de poc temps a Sun es van adonar que aquestes característiques eren perfectes per a les aplicacions per a Internet; d’aquesta manera, amb uns petits retocs, Oak es va convertir en Java. En el moment en què el navegador Netscape va incorporar el Java, l’interès per aquest llenguatge es va disparar fins als nivells actuals i va fer que la màquina virtual corresponent fos igual d’important.

Aleshores aquesta màquina virtual de Java introdueix un nou nivell d’abstracció i de projecció entre la màquina i el programari que s’hi executa. Això encara té un interès més especial quan el codi que esteu executant pot provenir d’algú que l’ha programat a l’altra punta del món.

La diferència principal entre un llenguatge com el Java que s’executa en la JVM i un llenguatge com el JavaScript és l’eficiència.

Per executar un programa escrit en un llenguatge completament interpretat, l’intèrpret ha de fer l’anàlisi lèxica i sintàctica en el moment d’executar el programa, la qual cosa provoca una sobrecàrrega considerable en l’execució d’aquest programa.

En canvi, els llenguatges basats en una màquina virtual acostumen a ser més ràpids, ja que divideixen la tasca d’executar un programa en dues parts: en la primera es fa l’anàlisi lèxica i sintàctica del programa font, per generar el programa en instruccions del processador virtual (codi intermedi), i en el segon pas es fa una iteració sobre el codi intermedi per obtenir l’execució final del programa.

Entre les propietats del llenguatge Java hi ha la portabilitat (és possible executar el mateix arxiu de classe .class en una àmplia varietat d’arquitectures de maquinari i de programari), el dinamisme (ja que les classes són carregades en el mateix moment d’utilitzar-les), l’eficiència i la seguretat.

La clau de moltes d’aquestes característiques es troba en la JVM. Aquesta JVM és el nucli del llenguatge de programació, i allà es troba el motor que en realitat executa el programa Java. Sempre que s’executa un programa de Java, les instruccions d’aquest programa no són executades pel maquinari que hi ha a sota, sinó que es passen a un element de programari intermedi, que és l’encarregat que les instruccions siguin executades pel maquinari. És a dir, el codi Java no s’executa directament sobre un processador físic, sinó sobre un processador virtual Java. En la figura podeu veure la capa de programari que implementa a la màquina virtual de Java:

Figura Estructura de la JVM en una màquina

Aquesta capa de programari oculta els detalls inherents a la plataforma, a les aplicacions Java que s’hi executen al damunt. Com que la plataforma Java es va dissenyar pensant que s’implementaria sobre una àmplia gamma de sistemes operatius i de processadors, es van incloure dues capes de programari per augmentar-ne la portabilitat. La primera, dependent de la plataforma, s’anomena adaptador, mentre que la segona, que és independent de la plataforma, s’anomena interfície de portabilitat. D’aquesta manera, l’única part que s’ha d’escriure per a una plataforma nova és l’adaptador. El sistema operatiu proporciona els serveis d’utilització de finestres, xarxa, sistema d’arxius, etc.

Sun, l’empresa de la JVM, utilitza el terme màquina virtual de Java per referir-se a l’especificació abstracta d’una màquina de programari per executar programes Java. L’especificació d’aquesta màquina virtual defineix elements com el format dels arxius de classe de Java (.class), com també la semàntica de cada una de les instruccions que componen el conjunt d’instruccions de la màquina virtual. Les implantacions d’aquesta especificació es coneixen com a “sistemes en temps d’execució Java”. Un sistema de temps d’execució inclou típicament la arquitectura següent que podeu veure en la taula.

Taula Sistema que utilitza Java JIT (just in time)
Element Funció
Motor d’execució El processador virtual que s’encarrega d’executar el codi generat per algun compilador de Java.
Gestionador de memòriaEncarregat d’obtenir memòria per a les noves instàncies d’objectes i fer tasques de recollida de brossa (desbloqueja memòria d’objectes instanciats que ja no s’utilitzen).
Gestionador d’errors i excepcionsEncarregat de generar, llançar i atrapar excepcions.
Suport de mètodes nadius Encarregat de cridar mètodes de C++ o funcions de C des de mètodes Java o viceversa.
Interfície multifils Encarregada de proporcionar el suport per a fils i monitors.
Carregador de classes La seva funció és carregar dinàmicament les classes Java a partir dels arxius de classe (.class).
Administrador de seguretat S’encarrega d’assegurar que les classes carregades siguin segures, com també de controlar els accessos a recursos del sistema.

Instal·lació de la màquina virtual de Java, JVM

Tot i que gairebé amb tota seguretat en la instal·lació del sistema operatiu de la màquina ja s’inclourà la instal·lació de la màquina virtual de Java, en cas d’haver de fer vosaltres una instal·lació d’aquesta JVM, caldrà anar a la pàgina oficial de Sun. Com que la màxima utilitat de la JVM és que fa transparent el maquinari per a l’execució de les aplicacions de Java, s’ha de poder instal·lar la JVM per a qualsevol maquinari i per a qualsevol sistema operatiu, tant de l’entorn privatiu com de codi lliure. Per tant, si busqueu la pàgina oficial de Sun i aneu a l’apartat de descàrregues de la JVM, veureu que heu d’escollir el vostre maquinari i el vostre sistema operatiu. Cal que mireu que, al costat de la descàrrega de l’arxiu corresponent de la màquina virtual, també hi hagi un enllaç amb l’ajuda per instal·lar-la. Si us baixeu la JVM corresponent a la vostra màquina i sistema operatiu i seguiu correctament les instruccions que hi trobareu, veureu com no hi ha cap problema a instal·lar-la.

Desavantatges de les màquines virtuals de procés

Una de les raons per les quals les màquines virtuals no són la solució definitiva de la computació és que afegeixen una gran complexitat al sistema en temps d’execució. Per exemple, la JVM espera que la computadora sobre la que corre suporti l’estàndard d’IEEE per als nombres de punt flotant de 32 bits i 64 bits. La majoria ho fan, però n’hi ha algunes que no, la qual cosa implica un treball extra.

Però el desavantatge principal dels llenguatges basats en màquines virtuals és que efectivament són més lents que els llenguatges completament compilats, a causa de la sobrecàrrega que genera tenir una capa de programari intermèdia entre l’aplicació i el maquinari de la computadora.

Màquines virtuals de sistema

Les màquines virtuals de sistema, o també anomenades màquines virtuals de maquinari, permeten a la màquina física subjacent multiplexar-se en diverses màquines virtuals, cada una executant el propi sistema operatiu.

La capa de programari que permet la virtualització s’anomena monitor de màquina virtual, MMV o també hipervisor.

Aquesta capa de programari MMV gestiona els quatre recursos principals d’una computadora:

  • CPU
  • Memòria
  • Xarxa
  • Emmagatzemament

Amb aquesta tècnica de l’emulació del maquinari s’aconsegueix el que es coneix com a virtualització completa. Això permet que cada màquina virtual pugui executar qualsevol sistema operatiu suportat pel maquinari de la computadora (en les tècniques més modernes ja no cal que el sistema operatiu sigui compatible amb el maquinari de la computadora); d’aquesta manera els usuaris de la màquina poden executar simultàniament dos o més sistemes operatius diferents en màquines virtuals. Una màquina virtual de sistema permet tenir diversos ordinadors virtuals executant-se sobre el mateix ordinador físic.

Últimament, aquestes màquines virtuals han guanyat molta importància, ja que les màquines actuals tenen molts recursos de maquinari i permeten la implementació de diversos sistemes operatius dins una mateixa màquina, de manera que es poden simular moltes situacions reals sense necessitat d’implementar-les realment. Per exemple, en un PC de taula o fins i tot en un portàtil, podem instal·lar un conjunt de sistemes operatius, un de servidor i la resta com a màquines client, fer la simulació d’una xarxa amb un servidor d’arxius i provar la gestió dels usuaris i els privilegis d’aquests sense necessitat d’implementar realment la xarxa.

Un monitor de màquina virtual (MMV) admet diversos tipus d’arquitectura:

1. Clàssica. En aquesta arquitectura el monitor de la màquina virtual s’executa directament sobre el maquinari. Aleshores els sistemes operatius hostes corren directament sobre la capa de programari que hi ha damunt del maquinari, l’MMV o l’hipervisor. Aquest sistema es coneix com l’hipervisor de tipus I, hipervisor I. En la figura podeu veure l’estructura d’aquesta arquitectura:

Figura Aquesta és l’estructura de funcionament d’un hipervisor del tipus I.

Aquesta arquitectura no carrega excessivament el sistema, permet una bona optimització dels recursos de la màquina, però requereix que els sistemes operatius que instal·leu en la màquina virtual siguin compatibles amb el programari de la màquina. Com a exemple de màquina virtual del tipus hipervisor I podeu trobar la versió ESX de VmWare.

2. Indirecta. En aquesta arquitectura, el monitor de la màquina virtual s’instal·la damunt del sistema operatiu que hi ha en la màquina, en comptes de fer-ho directament damunt del maquinari, i els sistemes operatius virtuals s’executen damunt de l’MMV. D’això ve el nom d’indirecta. També es coneix amb el nom d’hipervisor II. Actualment, aquesta arquitectura és una de les més utilitzades, i podreu trobar moltes màquines virtuals que la utilitzen. En aquest sistema, s’està executant el sistema operatiu amfitrió i les seves aplicacions i a més a més s’executa la màquina virtual com una aplicació més, i els diferents sistemes operatius són instàncies de la màquina virtual, com podeu veure en la figura:

Figura Aquesta és l’estructura de funcionament de l’hipervisor de tipus II.

En aquesta arquitectura, igual que passa amb la d’hipervisor I, només es poden intal·lar sistemes operatius virtuals que siguin compatibles amb l’arquitectura del processador i altres recursos de la màquina.

D’exemples de màquines virtuals que utilitzen aquest sistema en trobareu molts, les més comunes són les següents: VmWare, VirtualBox, Microsoft Virtual PC, KVM i un llarg etcètera. Algunes d’aquestes màquines virtuals són de pagament, com la VmWare, Microsoft Virtual PC i Oracle Virtual Box, i altres són de codi lliure, com la VirtualBoxOSE o bé la KVM. La VmWare i l’Oracle ofereixen versions gratuïtes, encara que en el cas de la VmWare, amb menys prestacions. L’Oracle, la propietària actual de VirtualBox ofereix versions de codi lliure com la VirtualBoxOSE o bé un ús personal restringit per a la versió Oracle VirtualBox. Algunes d’aquestes màquines virtuals de codi lliure poden córrer en sistemes operatius privatius, com el Windows, o bé en els de codi lliure com el Linux.

Entre els inconvenients d’aquesta arquitectura, trobaríem el fet que l’hipervisor de tipus II és menys eficient que el de tipus I, però sobretot que no es pot instal·lar un sistema operatiu que no sigui compatible amb l’arquitectura del processador de la màquina.

3. Paravirtualització. El fet que en els sistemes d’hipervisor I i II només es poden instal·lar sistemes operatius en la màquina virtual que siguin compatibles amb l’arquitectura del processador (la majoria de vegades x86), i a sobre comporta una disminució en el rendiment en el sistema operatiu virtual de prop del 20% en la majoria de casos, és un entrebanc en el món de la virtualització.

Davant d’aquest fet apareix una tècnica que es coneix com a paravirtualització, que representa una solució intermèdia en el camí de poder virtualitzar qualsevol sistema en qualsevol maquinari i fer-ho pràcticament sense penalització en el rendiment del sistema operatiu virtualitzat, o bé amb penalitzacions molt baixes de prop del 2%-8%.

Per aconseguir aquest funcionament, la màquina virtual s’instal·la directament sobre el maquinari, fent el que es coneix com una instal·lació de baix nivell, molt a prop del mateix maquinari. Aleshores, aquesta tècnica requereix modificar els sistemes operatius hostes per ser instal·lats en la màquina virtual. Aquest és l’inconvenient principal de la paravirtualització, que necessita sistemes operatius modificats, tot i que ofereixen les mateixes prestacions, i això passa desapercebut per a l’usuari, i redueix el ventall de possibilitats dels sistemes hostes.

Un exemple important de la paravirtualització és Xen. Xen és una màquina virtual de codi lliure que proporciona virtualitzacions d’alt rendiment sobre màquines d’arquitectura x86, però hi ha una limitació de sistemes operatius modificats aptes per ser instal·lats en la màquina virtual Xen. Actualment hi ha alguns Linux, NetBSD i una versió inicial del Windows XP, però que no es pot llançar al públic perquè necessita llicència, com a sistemes operatius disponibles per a la màquina Xen.

Tot i així, aquesta màquina virtual té les seves utilitats i aplicacions (IBM les utilitza en els seus servidors i ordinadors centrals), de manera que les companyies principals fabricants de processadors, Intel i AMD, ja s’han afanyat a treure versions dels seus processadors compatibles amb la màquina virtual Xen de manera que no caldrà adaptar els sistemes operatius a la màquina virtual, i això permetrà instal·lar qualsevol sistema operatiu amb un alt rendiment.

4. Full virtualization. El fet que els hipervisors I i II requereixin que el sistema operatiu a virtualitzar sigui compatible amb el maquinari de la computadora, i que el rendiment d’aquest sistema virtual es vegi penalitzat, tret que s’utilitzi la paravirtualització amb la limitació corresponent dels sistemes a virtualitzar, fa que la virtualització tingui traves per assolir la situació en què es pugui virtualitzar qualsevol sistema operatiu en qualsevol arquitectura de maquinari. Això és el que es coneix com a full virtualization o virtualització completa. La qüestió és aconseguir màquines virtuals que apantallin el maquinari i a més l’emulin per poder instal·lar tot tipus de sistemes operatius en qualsevol maquinari, sigui quina sigui l’arquitectura del processador.

En aquesta arquitectura, la màquina virtual s’instal·la directament sobre el maquinari, els sistemes operatius virtuals s’executen sobre la màquina virtual, i aquesta emula el maquinari quan aquest no és compatible amb el sistema operatiu.

Actualment els fabricants de processadors estan fent models de processadors amb la màxima compatibilitat amb les màquines virtuals (AMD-V, Intel VT-x) per facilitar la virtualització total o completa.

Com a exemples de màquines virtuals que poden fer virtualització completa hi ha Mac-on-Linux, Parallels Workstation, algunes versions de VmWare, com la VmWare GSX Server, VirtualBox i algunes altres. En el cas de Vmware, utilitza una tècnica coneguda com a translació binària per modificar automàticament les instruccions de programari x86 que simula una virtualització completa.

Entre les aplicacions de les màquines virtuals de sistema sobresurten les següents:

  • Arquitectura d’instruccions (ISA). La màquina virtual pot proporcionar una arquitectura d’instruccions ISA que sigui lleugerament diferent de la vertadera màquina; és a dir, es pot simular maquinari.
  • Coexistència de sistemes operatius. Diversos sistemes operatius poden coexistir sobre la mateixa màquina, sòlidament aïllats els uns dels altres, per exemple, per provar un sistema operatiu nou sense necessitat d’instal·lar-lo directament. D’aquesta manera l’MMV ofereix un entorn d’execució complet, és a dir, ofereix la possibilitat d’instal·lar un nou sistema operatiu, amb les seves aplicacions, els seus usuaris, la seva gestió del disc, de la xarxa, etc.
  • Consolidació de servidors. Diverses màquines virtuals, cada una amb el propi sistema operatiu anomenat sistema operatiu hoste o guest, es poden utilitzar per consolidar servidors. Això permet que serveis que normalment s’haurien d’executar en computadores diferents per evitar interferències, es poden executar en la mateixa màquina de manera completament aïllada i compartint els recursos d’una única computadora. Moltes vegades, la consolidació de servidors contribueix a reduir el cost total de les instal·lacions necessàries per mantenir els serveis, ja que permeten estalviar en maquinari.
  • Optimització de recursos. Avui en dia, la virtualització és una opció molt bona, ja que en la majoria dels casos les màquines actuals estan essent “infra-utilitzades”, ja que disposen d’una gran capacitat de disc dur, de memòria, etc. En molts dels casos arriben a utilitzar només en un 30% o 60% de la capacitat dels seus recursos. Virtualitzar la necessitat de noves màquines en una que ja existeix permet un estalvi considerable de les despeses associades com energia, manteniment, espai físic, etc.

VMware

Dins de les màquines virtuals de sistema hi ha una màquina virtual, la VMware, que es troba dins de les màquines virtuals de pagament, encara que també disposa d’algunes distribucions lliures. Aquesta màquina virtual és un programari de virtualització disponible per a arquitectura x86 de processadors. La VMware pot funcionar en Windows, Linux i Mac OS X que utilitzi processadors Intel. Dins de les versions gratuïtes hi ha les VMware Player, VMware Server i VMware ESXi, i la versió comercial VMware ESX Server. En aquest cas, la màquina virtual lliure tant per al Windows com per al Linux és la VMware Player.

La VMware permet instal·lar sistemes operatius hostes tant de l’entorn Windows com Linux i Mac OS (per a versions de processador Intel), tant de 32 bits com de 64 bits. Si heu d’instal·lar, però, un sistema operatiu virtual de 64 bits, primer caldrà que us assegureu que el vostre processador és de 64 bits, i sobretot que és del tipus AMD64-VT o Intel64-VT, és a dir, un processador amb suport específic per a la virtualització. Si teniu un processador de 64 bits però no amb l’especificació VT, no podreu virtualitzar sistemes operatius de 64 bits amb aquesta màquina virtual, i haureu d’instal·lar la versió corresponent a 32 bits. En cas que no sapigueu si el vostre processador compleix aquest requisit o no, en la pàgina d’MVware teniu l’opció de baixar-vos una petita aplicació en Linux, una imatge ISO que heu de gravar en un CD, i arrancar el vostre ordinador amb el CD, i aleshores automàticament us donarà la informació corresponent del vostre processador i sabreu si suporta o no la virtualització de sistemes de 64 bits per mitjà de VMware Player.

A les Activitats hi ha una activitat amb l’explicació de com instal·lar VMWare.

VirtualBox

Un exemple de les màquines virtuals de sistema que utilitza l’arquitectura d’hipervisor del tipus II és la VirtualBox. Actualment aquesta màquina virtual pertany a l’empresa Oracle, però continua distribuint versions de codi lliure VirtualBoxOSE i fins i tot distribueix una còpia de la versió comercial per a ús personal. VirtualBox és un programari de màquina virtual per a arquitectures de processador x86 i AMD64/Intel64 que permet instal·lar sistemes operatius hostes en l’arquitectura d’hipervisor del tipus II. Dins dels sistemes operatius amfitrió en els quals podem instal·lar la màquina virtual VirtualBox, hi ha els següents: GNU/Linux, Mac OS X, OS/2 Warp, Microsoft Windows, i Solaris/OpenSolaris. Dins d’aquests sistemes podem virtualitzar FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS i molts d’altres.

A les Activitats hi ha una activitat amb l’explicació de com instal·lar VirtualBox.

Virtualització en el sistema operatiu

A banda de la virtualització per processos, com és el cas de la JVM (màquina virtual del Java), que permet l’execució de programes de Java en qualsevol màquina, i de les màquines virtuals de sistema (que virtualitzen tot el maquinari) que permeten instal·lacions de sistemes operatius virtuals, hi ha un tercer nivell de virtualització. Aquest nivell de virtualització no és una capa de programari que apantalla el maquinari, sinó que es tracta de virtualitzar el mateix sistema operatiu, el mateix kernel del sistema operatiu.

Kernel

És el nucli d’un sistema operatiu, format per una sèrie de programari que s’encarrega de gestionar els recursos mitjançant serveis de crida al sistema, és a dir, facilita a les diferents aplicacions un accés segur al maquinari de l’ordinador.

En aquest sistema, el kernel d’un sistema operatiu permet crear diverses instàncies d’espais d’usuari, conegudes com a contenidors totalment aïllades i que permeten instal·lar un sistema operatiu en cada una. Aquests compartiments també es coneixen com a entorns virtuals. Això té aplicacions com, per exemple, en les zones de Solaris (Solaris zones) en què el sistema actua com si realment hi hagués diversos servidors executant-se en diverses màquines diferents.

Un exemple de màquina virtual treballant sobre el kernel del sistema operatiu és la KVM (kernel-based virtual machine). Aquesta màquina permet implementar virtualització completa (full virtualization) amb un sistema operatiu Linux i un processador x86. Està formada per un mòdul del nucli (kvm.ko) i eines en l’espai d’usuari. És totalment de programari lliure. El component KVM per al nucli està inclòs en les distribucions del Linux des de la versió 2.6.20 del nucli.

La KVM permet executar màquines virtuals a partir d’imatges de discos de sistemes operatius sense modificar; aleshores, cada màquina virtual té el propi maquinari virtualitzat: targeta de xarxa, disc dur, targeta gràfica, etc.

Com a requisits, la KVM necessita un processador x86 amb suport virtualization thecnology (AMD-V, Intel VT-x) i permet executar sistemes operatius com, per exemple, el GNU/Linux (32 bits i 64 bits) i el Windows (32 bits).

Anar a la pàgina anterior:
Annexos
Anar a la pàgina següent:
Activitats