Вы находитесь на странице: 1из 27

MONOGRAFIA:MAQUINASVIRTUALES

Grupon:8
Fecha:28/11/2006
Integrantes:

FrancoPelegrini(frapell@gmail.com)

MatiasCordoba(cormatias@gmail.com)

RodrigoCarreras(rcarreras86@gmail.com)

ndice
1.

Historia

2. Introduccindemquinasvirtuales
3. Tiposdemquinasvirtuales
4. VMParaemularhardwareespecifico.
5. VMParacorrerdistintosSO
6. VMParaSoftware
7.

Formasenlasqueseintegranlasmquinasvirtuales.

8. Virtualizacin
9. MquinaVirtualJava.
1.

Procesodeejecucin

10. MquinaVirtualQEMU
1.

Emulacincompletadeunacomputadora

2. Emulacinde"mododeusuario"
3. HostCPU
4. MdulodeaceleracinparaQemu
5. EjemplosdefuncionamientodeQemu
6. Qemumonitor
7.

TraduccinDinmica

8. Alocacinderegistro
9. Optimizacindecdigocondicional
10. OptimizacindeestadodeCPU
11. Cachedetraduccin
12. Cdigoautomoficanteeinvalidacindecdigotraducido
13. SoportedeExcepciones
14. EmulacindelaMMU
15. InterrupcionesdelHardware
16. Detallesespecficosdelaemulacindeusuario
17. SealesdeLinux
18. Autovirtualizacin

19. VentajasdeQemu
20. DesventajasdeQemu
11. MquinavirtualVmWare
1.

Funcionamiento

2. Hardwareemulado
3. Detalles
4. VmwareESXserver
5. VmwareGSXserver
6. VmwareWorkstation
7.

Ventajas

8. Desventajas
12. MquinaVirtualXen
1.

Administracindememoria

2. AdministracindelaCPU
3. DispositivosdeEntrada/Salida.
4. Llamadasalsistemaytiempo
5. Dispositivodealmacenamiento
6. MigracindeMquinasVirtuales
7.

ComofuncionaXen?

8. Pruebasderendimiento
13. Comparativasentremquinasvirtuales
14. Malware
15. Conclusin
16. Bibliografa

HISTORIA
Lahistoriadelascomputadorasdatadevariasdcadasatrs.Paraserpreciso,suhistoriasedivideen
etapasquedancomienzodesde1955hastalaactualidad.Laevolucindetodosloselementosrelacionados
conlascomputadorasactualesnoesloquenosocupa,sinoquenosreferiremosalaformaenque
evolucionaronlossistemascapacesdecorrermaquinasvirtuales(VM).
LanecesidaddelaexistenciadeVMdacomienzoporlanecesidaddeobtenerunsistemaoperativoque
fuesecapazdesoportarmltiplesusuarioscorriendosobrel(timesharing1),esdecirquefuesecapazde
ejecutarlosprocesosquestosnecesitabancorrer.DuranteesteperodosurgieronvariosSistemas
operativos(SO)quetratarondesolucionarestanecesidad.IBMdesarrollunSOllamadoOS/360.Enun
comienzonoestabacapacitadoparasoportartimesharing,perotrassurgirestanecesidadseleincorpor
estafuncin.ApesardelosintentosdeIBMpordotaral360constafuncionalidad,lograronobtenerun
sistemaqueeramuypesado,einconsistente.
Parasolucionarlosepropusounnuevosistema(en1972queaunestapresenteenlaactualidad)llamado
VM/370(1).stemarcunpuntomuyimportanteenlahistoria,yaqueparapoderproporcionarunsistema
detiempocompartido,sebasenunaseriedeconceptosquenosehabantenidoencuentahastalafecha.
stosfueron:

Multiprogramacin:variosprocesoscorriendoensimultneo.
Unmquinaextendidaconinterfazmsconvenientequeelmerohardware.

VM/370eslaesenciadestasdosfunciones.stesimulabavariasmquinascompartidasycadaunade
ellasbrindabaacadausuariounacopiaexactadelhardwaredelamquina(cuandoenrealidadsecontaba
conunsolohardwareyesteserepartaentretodaslasVM).Tenauncorazn,llamadomonitordelsistema,
queeraelencargadodesimularlasmtiplesmaquinas.UnodelosinconvenientesdeesteSOesquesolo
correenarquitecturasIBM/370,hechoquenosignificabaunagranlimitacindurantesusurgimiento.
ConeltiempolasVMhanevolucionadomucho,siempreteniendoelmismoconcepto,esdecirunsistema
quebrindaunaabstraccinaotrosentes(SO,procesosdeusuarios,etc).Enlaactualidadnosencontramos
conVMquesoncapacesdecorreraplicacionesindependienteshastaunconjuntodesistemasoperativos,
siendoestounhechoqueproporcionaindependenciaenlosdistintossistemas.

INTRODUCCINALASMAQUINASVIRTUALES
InicialmenteseutilizabaeltrminoHardwareVirtualMachine,quesurgadeunsistema(VM/370por
ejemplo)queemulabamltiplesmquinasconsuhardwareparticular,siendoqueenlarealidadestaban
corriendosobreunslohardwarequepodasermslimitadodeloquelasVMofrecan.Actualmentenos
podemosreferircomoVirtualMachineyaquestashanevolucionadodetalformalquenoespreciso
modificarelhardwareparacorrerlas,sinoquesoncapacesdetrabajarenotrascapasdelsistema.Sehar
unadescripcindelascapassobrelasquetrabajanmsadelanteenestetrabajo.
Lapreguntaes:Quesunamquinavirtualyquesloquehacen?,pararespondersto,dependedel
enfoquequeselehayaqueridodarenelmomentodesudesarrollo.Sinembargolatareaquetiene
asignadaesladeproporcionarunacapadeabstraccinaunentre(Proceso,programa,sistemaoperativo,
etc)determinado,conelfindequestecreaqueestcorriendosobreunsistemaquecuentaconciertas
caractersticas.Dichodeotromodoescrearunentornovirtualentrelaplataformadelacomputadorayel
usuariofinal,permitiendoquesteejecuteunsoftwaredeterminado.Msadelantesepuedeconsultarun
apartadoparticularquehabladelosdistintosenfoquesqueposeenlasVM.
Aqupodemosestablecer3gruposenloscualesenglobarlasVM:
1. VMqueemulanhardware:comoenelcasodela370deIBM.Mquinasquesimulanunacopiadel
1 timesharing:estareferidoalamultiprogramacin,esdecirlaposibilidaddeejecutarmltiplesprocesosalmismo
tiempo,odarlasensacindequeestoestaocurriendo.

Hardwaresobreelqueestncorriendo.
2. VMquepermitencorrerSO:dentrodestaspodemosmencionaraquellasquesoncapacesde
soportardistintossistemasoperativos.
3. VMquepermitencorrercorrerlenguajesdeprogramacincompilados.Esdecirlosprogramasse
compilanparaejecutarsesobreunamaquinadeterminada,quegeneralmentefuncionaenvarios
SO.DeestaformaseevitatenerquecompilarelsoftwarecadaunodelosSO.
LasVMbrindanbeneficisvariosquedependendeltipodemquinaqueseestejecutando,dentrode
stospodemosmencionar:

Permiteaprovecharalmximolascapacidadesdelharwaresobreelquecorren.stoesposibleya
quealtenervariasmquinasejecutandosesobreunamismalosrecursossevenobligadosa
mantenerseenunusocasiconstante.Unejemplodeestoesunhardwareespecificoquebrinda
intel2,queescapazdecorrerVmWare(untipodeVM),endondesepuedereducir100sevidoresa
untotalde10,lograndoaprobecharalmaximolascapacidadesdelhardware.
Seguridad.Soncapasesdecorrersobreunhardwaredeterminado,peroabstraertotalmenteal
usuariodeeste,esdecirquelebrindaunainterfazparaqueestetrabaje,peronopermitequedae
nialterelapartefsicadelamquina.Porellosonunelementointeresantealmomentodehacer
distintaspruebasquepuedenperjudicarelsistemadeterminado.
Estabilidad.CorrersobreunaVMunaaplicacinpuedenosermasestablequehacerlosobreun
SO.PeroapesardeestobrindaestabilidadenelSOquecorrelaVM,yaqueencasodequeel
programacausealgunerror,lounicoqueseveraafectadoseralaVM.
MultiplePlataforma.Siestamoshablandodelengujescompilados,solodebemoscompilarun
programaparacorrersobreunaVMyestaseencargaradepermitirqueseejecuteenmultiplesSO.
UncasodeestoeseldeJAVA.Estelenguajeproporcionaunamquinavitualquecorresobre
LINUX,WINDOWS,MAC,etc.Luegounprogramadejavaseejecutaraentodosellossinquehalla
necesidadderecompilarlo.
PodemosestarejecuntandodosomasSOalmismotiemposobreunamismamquina

EstassonalgunasdelasventajasdeutilizarVM,yotrassurgirandelacombinacindelasmismas.Pueden
existirinfinitasfuncionesquesepuedenhacerconestasydependerandelacapacidaddeaprobecharlaque
tengacadausuarioenparticular.

TIPOSDEMAQUINASVIRTUALES
Comoyasemostroenloanteriormencionadoexistendistintostiposdemquinasvirtuales.Apesardeesto
todascompartenunmismoconceptoqueesladebrindarunaabstraccinalente..quelosutiliza.A
continuacinsemostraralosdistintostiposdeVMqueexistenasicomoejemplospuntualesdecomo
funcionanestas.

VMParaemularhardwareespecifico.
UnejemplodeestaeslaVM/370deIBM.Sebasanenunharwareespecificoqueposeememoria,
procesador,espaciodealmacenamiento,dispositivosdeE/Setc.Sobreestehardwaresecorrelamquina
virtualqueseencargadedividirestedemodoquepuedabrindaralosusuariosfinalesunacopiaexactade
este.Paraelloexisteuncorazndelsistemaqueseencargadesimularesto.
SistemaoperativoX

SistemaoperativoX

SistemaoperativoX

Mquinavitual
Hardware
LaCantidaddesistemasoperativosquesepuedencorrerenlacapamasaltadependedelamquina
2 Puedeverseestoenelarticulo:http://www.intel.com/network/connectivity/solutions/virtualization.htm

virtualqueseestecorriendo.EnelcasodelasVM/370sepodanejecutarcomomximo370.
Paraquestaspuedanusarseesnecesarioqueelhardwarecumplaciertosrequerimientos,esdecirqueno
puedecorrersesobrecualquierarquitecturadecomputadora.ActualmentelasVMsoncapacesdeemularel
hardwarequeelusuariosolicite.Paraestohayquetenerencuentaquenodebesuperarconcrecesal
Hardwarefsicoyaquedelocontrarionosepodrsatisfacerlasnecesidades.Lacapasobrelaquecorren
estetipodeVMeslasegunda,siendolaprimeraelhardwarefsico.
UnproyectoqueestaencontinuodesarrolloesVMware.Esinteresantemencionarloyaqueproporciona
unainnovacingrandeenrelacinconVM/370.Estaradicaenquepermiteajustaralasnecesidadesdel
usuarioelhardwarequeelusuarioprecisa,alavezquepuedecorrersobredistintasarquitecturasde
hardware.MsadelanteseharunapartadoespecialparaVMware.
EstetipodeVMseencargasimularlacapamasbaja,esdecirladelHardware(deaququelatareaque
tengaencargadaesladerecrearvariascopiasdelhardwareoriginal.

VMParacorrerdistintosSO
AntesdecontinuardebemosaclararquelasVMnotienenquepertenecersoloaunodeestosgrupos,por
citaruncasoyamencionadoVMwareescapazdeemularuntipodehardwareespecficoalavezque
permitecorrerdistintossistemasoperativos.Conestoqueremosmostrarlosgruposdefuncionalidadesque
poseenlasVMdemododepoderdescribirlas.
Actualmenteexistenmuchossistemascapacesdellevaracaboestafuncionalidad.Dentrodeellos
podemosmencionarVMware,QEMU,Xen,Botch,VirtualPC,etc.Entreellosdifierenenlaformaenlaque
logranobtenerelmismoobjetivo.AlgunastrabajanconelSistemaoperativohost3ysobreelhardware
(comoVMware)otrastrabajansobreunacapasuperioraladelsistemaoperativocomoeselcasode
QEMU.SinembargotodosbuscanlograrcorrerunSOcompleto(quevaradependiendodelaVMquese
estcorriendo).NohablaremosaqudelmodoenquecadaVMllevaacabosutarea,stoseaclararmas
adelanteensteinforme.
Sibiencadaunoposeeunaformaparticulardellevaracabosutarea,unacaractersticacomnqueposeen
esladecrearunanueva"capaenelsistema".Estacapaseubicarentreelsistemaoperativohost(yel
hardwaredesernecesario)ylosmltiplessistemasoperativosquequerramoscorrer.Porlocualcuando
corramosunSOXenlaVMestecreerqueseestejecutandodirectamentesobreelHardware4.

VMParaSoftware
Estetipodemquinasvirtuales,aligualquelasdelapartadoanterior,creanunacapaentreelsistema
operativohostyelprogramaquedeseacorrerelusuario.stasenvaninstruccionesalSOHostystese
encargadehacerlasllamadasnecesariasalhardware(creaunacapadeabstraccinentreelsoftwareyel
SOHost),porloquelaVMnotrabajadirectamenteconste.UnejemplodeestetipodeVMeslaJava
VirtualMachine.
LaventajadestasesqueunprogramadordesarrollaunsoftwarequeseacapazdeejecutarseenunaVM
especficaylocompilaparasta.LuegoelprogramafuncionarentodoslosSOqueseacapazdecorrerla
VM.Destaformaseahorramuchotiempodedesarrolloyseestableceunestndardeprogramacinen
losdistintosSO.
LaCapaqueseencargaderecrearstetipodeVMesladelSO,esdecirelprogramaquecorresobreste
envalasllamadasalsistema5alaVMcomosilohicieraconelSO.Luegostelainterpretayhacela
llamadacorrespodiente.

3 EselSistemaOperativosobreelquecorrelamaquinavirtual.PuedeserWindows,Linux,Mac,BSD,etc.Este
dependerdelaVMqueseestecorriendo.
4 Notienequecreerqueestacorriendoexactamenteconlascapacidadesdelhardwarereal,laVmpuedehacerque
creaqueesunhardwaredistinto,porejemplolimitandolacantidaddememoria.
5 LlamaalsistemaoSystemcall.Esunmecanismopormediodelcualunprogramadeusuarioutilizaunaseriede
procedimientosdelSOquehacendiversastareas,porejemplomanejodememoria,E/S,etc.

FORMASENLASQUESEINTEGRANLASMAQUINASVIRTUALES.
Cadatipodemquinavirtualposeeunaformadiferentedefuncionar,dependiendoenlacapaenlaque
trabaje.Parallevaracabosutareasevalededistintastcnicasquetienesusventajasydesventajas.
Muchasdeellassacrificanvelocidadyrendimientodelhardware(yaquealabstraercapasconllevaaun
menortiempoderespuesta)yobtienenunmenorcompromisoconelhardwarefsico,mientrasqueotras
prefierentodolocontrario.
UntrminoutilizadoenelmbitodelaVMeslavirtualizacin.UnaMquinavirtualestambinllamada
ServidordeVirtualizacin.
AcontinuacinsehablardelosdistintosmediosquesevalenlasVMparapoderhacerstastareas.
VIRTUALIZACION
Virtualizacineslacreacindeunaversinvirtual(encontradelaversinreal)dealgo,comounsistema
operativo,unservidor,undispositivodealmacenamientoorecursosdelared.Lavirtualizacindelsistema
operativoeselusodesoftwareparapermitirqueunmismosistemamanejevariasimgenesdelos
sistemasoperativosalamismavez.Latecnologaseinicienlosmainframeshacedcadas,permitindoles
alosadministradoreslamejorutilizacindelpoderdecmputo.
Paraserconcretos,consisteenmontarunsistemaoperativovirtual,olosquenuestramquinaseacapaz
demanejar,enbaseaunsistemaoperativo"anfitrin"oHost.Destemodopodemoscargardiversos
sistemas,inclusototalmentediferentes,sobreunmismohardwareydeformaqueestnaisladoslosunos
delosotrosytambinqueaprovechenelhardwaredisponibleenelHostcomosuconexindeRed,sus
puertosUSB,susunidadesdealmacenamiento,etc.
EstatcnicaesutilizadapormuchasVMparapoderllevaracabosuobjetivo(Xen,VmWare,QEMU,etc).
Latcnicadevirtualizacinfueutilizadaaproximadamente4dcadasatrsenlasgrandesMainframesque
existan.Estatcnicaseutilizabaparapoderoptimizarlautilizacindelosrecursos.Actualmentesta
tcnicaesutilizadaparaelmismomotivo,ascomotambinenotrosmbitos,comoenlaseguridad.
EmpresascomoInteloAMDseencuentraneneldiseodeprocesadoresqueseancapazdesoportarla
virtualizacin.Estatecnologaamplalacapacidaddedichosprocesadoresconlacapacidaddeaislarla
ejecucindelossistemasoperativosvirtualescargadosenelsistema.Esteaislamientodeprocesos
favorecenotablementealrendimientoyalaestabilidaddelosdiferentessistemasoperativoscargadosenel
sistemaanfitrin.Cadaunofuncionacomounaparticindentrodelprocesadorloquefavoreceel
funcionamientodelosSOaumentandolaseguridadyelbuenfuncionamientodelmismo.
Dentrodelavirtualizacinsedesprendendistintostipos,queseespecializanenunaspectoenparticular,
dentrodelosquepodemosmencionar:

Emulacin,Tambinllamadavirtualizacincompletaconrecompilacindinmica.Consisteenuna
simulacincompletadelhardware.Sepuedecorrerunsoftwaredeformaindependientecomosi
estuvieraejecutndoseconunprocesadorindependiente.Esunatcnicamuyutilizadaparabrindar
compatibilidaddesoftwarey/ohardware.Porejemploesutilizadoparasimularconsolasde
videojuegosquetienenunhardwarequedifieretotalmenteconeldeunacomputadora.Programas
queutilizanestatcnicasonmuchos,unejemploqueposeeunaexplicacinmsampliaenste
informeesQEMU.
VirtualizacinNativaoVirtualizacinCompleta.statcnicaconsisteensimularunhardware
especfico.LasVMqueseencargandeestocorrendemaneraindependientelosdistintosSOque
corrensobresta.ExisteunnicoprocesadorqueescompartidoentretodaslasVM.Esdecir,nose
simulacomoenlaEmulacinlaexistenciadeotroprocesadordiferentealqueexistefsicamente.
EjemplodeestesistemaesVmwareoXen(consoportedelmicroprocesador).
Paravirtualizacin.statcnicarequieredeayudaespecialdehardware(microprocesador)obien
queelsistemaoperativosobreelquesecorraestparchadoparapoderejecutarse.LaVMque
utilizaestatcnicaseejecutaenunacapainferioraladelSOhost,ydesdeaquseencargade
realizarlassucesivasadministraciones.SehaceunapartadoespecialparaXen(queutilizaesta
tcnica)endondeseamplalainformacinacercadesta.

CadatcnicaesunaformadevirtualizacindequecadatipodeVMutilizaparasatisfacersuspropsitos.
MAQUINAVIRTUALJAVA
EsunamquinavirtualdesarrolladaporSunMicrosistem.Estaseencargadeinterpretaryejecutarun
cdigobinariodejava.Esteesgeneradoporuncompiladorespecificoparadichofin.Enuncomienzoeste
erasolopropiedaddelaempresaantesmencionada,enlaactualidadexistendiversoscompiladoresque
llevanacaboesafuncin.Esporelloquesehaestablecidounestndardedesarrollodejava.
Existeunlibroqueespecificaelestndardelamquinavirtualdejava(JVM),esteesdenominadoelLibro
Azul.Unafraseextradadeeldice:
WeintendthatthisspecificationshouldsufficientlydocumenttheJavaVirtualMachinetomakepossible
compatiblecleanroomimplementations.Sunprovidestestswhichverifytheproperoperationof
implementationsoftheJavaVirtualMachine.
Dondesutraduccines:
PretendemosqueestaespecificacindocumentesuficientementelaMquinaVirtualdeJavaparahacer
posiblesimplementacionescompatiblesdeentornosdeconfianza.Sunofrecemecanismosparaverificar
unacorrectaoperacindelasimplementacionesdelaMquinaVirtualdeJava.
EstetipodemquinavirtualesunclaroejemplodeuntipodeVMqueesusadaparacorrerprogramas.
Parapoderllevaracaboestatareaesprecisoqueserealicenunaseriedepasosquesedescribirna
continuacin.
Esprecisollevaracaboinicialmenteunprocesodecompilacin.Enesteperiodoseconvierteelcdigo
fuenteacdigoquepuedainterpretarelcompilador.Enelcasodejavasetransformaenunbytcode.Los
proyectosseseparanenclases,endondeseencuentranlosdiversosprocedimientos,funciones,etc.Estas
puedenserempaquetadasenunsoloobjetoconexencin.jar,elcualesusadodirectamenteporel
compilador.
ParapoderejecutarlasinstruccionesJava,inicialmentellevabaacabounmtodollamadoInterpretacin.
Esteconsisteenleerinstruccinporinstruccineiremulndolassegnelsistemaoperativosobreelcualse
estabacorriendo.
EnlaactualidadsellevaacabounprocesollamadocompilacinJIT(JustInTime,oalmomento).Estase
aplicasobreelbytecodegeneradotraslaprimeracompilacinaliniciodelaaplicacin,ydacomoresultado
unaejecucinmuchomseficiente,aunqueconlapenalizacinentiempoqueconllevaestasegunda
compilacin.
ProcesodeEjecucin

Antesdeejecutarunbytcodedejava,laJVMllevaacabounprocesodeverificacin.Estosehace
antesdeejecutarcualquierinstruccincontenidoenelobjeto.jar.Aquseverificancosascomoque
noseaccedanadireccionesdememoriaincorrectas,ahorrandotrabajosalSOporejemplo.
JVMpuedeemplearinstruccionesqueejecutencomandosdiversos.Estetipodecomandos
asegurandequeexistancompatibilidadentretodoslosSO.Llevaracaboestatareaesunodelos
factoresmasdifcilesalahoradedesarrollarlaJVM.Elgrupodeinstruccionesquepuedenusarse
son:
Cargayalmacenamiento
Aritmticas
Conversindetipos
Creacindeobjetosysumanipulacin
Gestindelapila(push/pop,meter/sacar)
Saltos
Llamadaamtodosysalidadeestos
Generacindeexcepciones
Unodelosfactoresparaloscualesfuedesarrolladojavafueparapoderejecutarcomandosollevar
acabotareasdeformaremota.Esdecirqueunusuarioqueseencuentraensunavegadorweb

puedeejecutarcdigoprovenientedeunservidorremoto.EsteCdigopuedesermalicioso.Por
elloslaJVMproporcionaunentornoseguroquenodejaquesedaeelSO.Encasosdetenerque
ejecutaraccionesquelocomprometan,seavisaalusuarioquienpuedepermitirsuejecucin.
UnaspectointeresantedelaJVMessugranpotencial.Noesprecisoqueelbytcodequeejecutehallasido
escritoenJAVA(ellenguaje),sinoquepuedesertambinenC,ADAoCOBOL.Soloesprecisotenerun
compiladorqueinterpreteellenguajeyloconviertaenunbytecodedeJVM.
Estoproporcionaunalibertaddedesarrolloparalosdistintosprogramadores.

MAQUINAVIRTUALQEMU
Qemuesunprogramalibrequeproporcionaunavelozemulacindeprocesador,permitiendoalusuario
simularunacomputadoracompletadentrodeotra,fueescritoporFabriceBellard,unprogramadorfrances
queademsdeserelcreadordeQemu,eselfundadordeFFmpeg,unpequeocompiladordeC"TinyC"
entreotros,yadems,eldescubridordelaformulamsrpidaqueseconoceparacalcularcifrasdel
nmeroPI.
Qemuesunamquinavirtualcapazdeemularmltiplesarquitecturas,ylaaltavelocidaddeemulacinla
logragraciasaunatcnicallamada"Traduccindinmica",lacualesunacombinacindeotrasdos,la
"compilacionabytecode"yla"compilacindinmica",dondebsicamenteelprogramasecompilaa
bytecodeprimero,queesunlenguajeintermedioantesdellenguajedemquina,pudiendodeestamanera
serportadoacualquierarquitectura.Esaqucuandounamquinavirtuallointerpretayloejecuta.
QemupuedeserinstaladobajoLinux,Windows,FreeBSDyMacOSX,perolaversinparaWindowstodava
seencuentraenestado"Alfa"dedesarrollo.
Poseedosmodosdeoperacin:
1)Emulacincompletadeunacomputadora
2)Emulacinde"mododeusuario"

Emulacincompletadeunacomputadora:
Enestemodo,QemuemulaunacomputadoracompletaincluyendoProcesadoryperifricos.
LasarquitecturasqueQemuescapazdeemularensutotalidadson:

X86
X86_64
ARM
SPARC
PowerPC
MIPS

LasArquitecturasqueseencuentranendesarrollodepoderseremuladasson:

SPARC64
PowerPC64
m68k
SH4

Asmismo,losperifricosqueQemuemulason:

i440FXhostPCIbridgeandPIIX3PCItoISAbridge
TarjetadevideoCirrusCLGD5446PCIVGAotarjetastandardVGAconextensionesVESABochs

(niveldehardware,incluyendotodoslosmodosnostandard)
TecladoyMousePS/2
2interfacesPCIIDEconsoportedediscorgidoyCDROM
Disquetera
AdaptadorderedNE2000PCI
PuertoSerial
TarjetadesonidoCreativeSoundBlaster16
TarjetadesonidoENSONIQAudioPCIES1370
ChipcompatibleconYamahaYM3812Adlib(OPL2)
ControladoraPCIparaUSBUHCIyHUBUSBvirtual

Qemuposeetambinlacapacidaddesimularunsistemaqueposeahasta255procesadores

Emulacinde"mododeusuario":
Enestemodo,QemupermiteejecutarprocesosdeLinuxcompiladosparaunadeterminadaarquitectura,en
otra.Estoserealizapormotivosdediferenciasentrearquitecturasde32bitsode64yporel"endianness"
LasarquitecturasqueQemuescapazdeemularenestemodoson:

X86
ARM
SPARC
PowerPC
MIPS

Lasarquitecturasqueestnendesarrolloparaseremuladasson:

SPARC64
m68k
SH4

Lasarquitecturasnosoportadasson:

X86_64
PowerPC64

HOSTCPU's
LasArquitecturasdondecorreQemuson:

X86
X86_64
PowerPC

LasarquitecturasdondeQemuseencuentraenunestadode"testing"son:

Alpha
Sparc32
ARM
S390

LasarquitecturasdondeQemuseencuentraenestadode"desarrollo"son:

Sparc64
ia64
m68k

MdulodeaceleracinparaQemu
ExisteunmduloparaelkerneldeLinuxqueelevalavelocidaddeemulacindei386enmquinascon
i386,endondelavelocidaddeejecucinesprcticamentenativa.
ElmduloesllamadoKqemu,escritoporelmismoautordeQemu,soloqueelotroeslibreperonoposeeel
cdigoabierto.
Laaltavelocidaddeemulacinlalogragraciasaqueejecutaelcdigoen"modousuario"yen"modovirtual
8086"directamenteenelprocesadordondeestacorriendoQemu,yusandolaemulacindeprocesadory
perifricossoloparaelcdigoen"modokernel"yen"modoreal".
AdemsKqemuposeeunmodode"Virtualizacincompleta",enlacualnosoloseejecutaelcdigode
"modousuario"enlaCPUhost,sinoqueseejecutatambinelcdigode"modokernel",aumentandoan
mslavelocidad.
ExisteotromodulodeaceleracinllamadoQVM86,peroalparecerestabandonado.
EjemplosdefuncionamientodeQemu:

qemuimgcreatefqcowimagen.img3G

Estocreaunaimageneneldiscollamada"image.img"conqcowcomotipodeimagen,lacualpermiteir
agrandandoelarchivoamedidaquesevaescribiendoenlhastauntamaomximode3GB

qemuhdaimagen.imgcdrom/dev/hdcbootdm128soundhwsb16localtime

Estoinicialamaquinavirtual,especificandoquelaunidadhdaseralaimagencreadaanteriormente,el
cdromeseldispositivo/dev/hdc,queiniciedesdeelcdrom,conunamemoriaramde128MBseemulauna
placadesonido"SoundBlaster16"yseespecificalahoralocal
Qemumonitor:
LamquinavirtualQemuposeeunmonitorquefuncionaentiemporeal.
Estemonitoresaccedidoconlacombinacindeteclas"Ctrl+Alt+2"ysepuedehacertodotipodeconsultas,
desdelaversinactualdeQemu,hastasaberlosvaloresdelosregistrosdelmicroemulado
TraduccinDinmica:
Qemuesuntraductordinmico.Cuandoencuentraunpedazodecdigo,loconviertealsetdeinstrucciones
delamquinahost.Porlogeneral,lostraductoresdinmicossonmuycomplicados,ygrandes
consumidoresdeCPU.Qemuutilizaalgunostrucosquelohacenporttilrelativamentefcilysimple,al
mismotiempoquelograbuenaperformance
Laideaesdividirtodaslasinstruccionesx86eninstruccionesmssimples.Cadainstruccinest
implementadaporuntrozodecdigoenC.Luegounautilidaddecompilacintomaelcorrespondiente
archivoobjetopararealizarungeneradordinmicodecdigo,quienconcatenalasinstruccionessimples,
paraarmarunafuncin.
Unaideaclaveparaobtenerunaperformanceptimaesquesepuedanpasarparmetrosconstantesalas
operacionessimples.Paraesepropsito,realocacionesdearchivosELFsongeneradoscongccparacada
parmetroconstante.LuegolautilidaddecompilacinpuedeubicarlasrealocacionesygenerarelcdigoC
apropiadocuandoseestconstruyendoelcdigodinmico.Destamanera,Qemunoesmscomplicado
deportarqueunlinkeadordinmico.
Paraanmayorvelocidad,lasvariablesderegistrosestticosdegccsonusadasparamantenerelestado

delaCPUvirtual.
Alocacinderegistro
DesdequeQemuusasimplesinstruccionesfijas,nopuedehacerseunaalocacinderegistroseficiente.De
todasformas,dadoquelosCPU'sRISCposeenmuchosregistros,lamayorpartedelestadodelaCPU
virtualpuedeserpuestoenregistrossinhacerunacomplicadaalocacin.

Optimizacindecdigocondicional
Unpuntocrticoparaobtenerbuenaperformanceesunabuenaemulacindeloscdigoscondicionalesde
laCPU(registrosEFLAGSenx86).
Qemuutilizaunaevaluacindecdigocondicionalperezosa:
Enlugardecomputarelcdigocondicionalluegodecadainstruccinx86,solamenteguardaunoperando
(llamadoCC_SRC),elresultado(llamadoCC_DST)yeltipodeoperacin(llamadoCC_OP).
Cuandosepuededemostrarqueloscdigoscondicionalesnovananecesitarseenlasprximas
instrucciones,estasnosecomputan.
OptimizacindeestadodeCPU
LaCPUx86poseemuchosestadosinternos,loscualescambianlaformaenlaqueseevalanlas
instrucciones.Paraobtenerunabuenavelocidad,lafasedetraduccinconsideraquealgunainformacinde
losestadosdelCPUx86virtualnopuedencambiarenl.
Porejemplo,silossegmentosSS,DSyESposeenunabasecero,entonceseltraductornisiquieragenera
unasumaparalabasedelsegmento.
Cachedetraduccin
Unacachde16MBalmacenalastraduccionesusadasmsrecientemente.Unaunidaddetraduccin
contienesolounnicobloquebsico(unbloquedeinstruccionesx86terminadasporunsaltooporun
cambiodeestadoenlaCPUvirtual,queeltraductornopuedededucirestticamente)
Cdigoautomodicanteeinvalidacindecdigotraducido
elCdigoautomodificanteesundesafoespecialenlaemulacindex86,dadoaque,cuandoelcdigoes
modificado,laaplicacinnoenvaningunasealalainstruccindeinvalidacindecach.
Cuandoelcdigotraducidoesgeneradoparaunbloquebsico,lapginacorrespondientedelhost,est
protegidacontraescritura(conlallamadaalsistemamprotect()).Entonces,siunprocesodeescrituraes
realizadoalapgina,Linuxenvaunfallodesegmentacin.Qemuentonces,invalidatodoelcdigo
traducidoenlapginaypermitelaescrituraalapgina.
Lainvalidacincorrectadelcdigotraducidoesrealizadaeficientementemanteniendounalistaligadade
todoslosbloquestraducidoscontenidosenunapaginadada.Otraslistasligadassontambinmantenidas
paradeshacerlaencadenacindebloques.
Qemutambininvalidapginasdecdigotraducidocuandodetectaquesemodificanlosmapeosde
memoriaconmmap()omunmap().
CuandoseutilizaunMMUporsoftware,lainvalidacindecdigoesmseficiente:siunasiunapginade
cdigodadaesinvalidadademasiadoseguidoporpermisosdeescritura,entoncesseconstruyeunbitmap
querepresentatodoelcdigodentrodelapgina.Todoalmacenamientodentrodeesapginachequeael
bitmapparaversielcdigorealmentenecesitaserinvalidado.Evitainvalidarelcdigocuandosolamentese
hanmodificadodatosenlapgina.

SoportedeExcepciones
Cuandoseencuentranexcepcionestalescomodivisionesporcero,seutilizalongjmp().
losmanipuladoresdelassealesSIGSEGV(fallodesegmentacin)ySIGBUS(ErrordeBUS)delhostson

usadosparaobteneraccesosamemoriainvlidos.ElestadoexactodelaCPUpuedeserdevueltodebidoa
quetodoslosregistrosdex86sonalmacenadosenregistrosfijosdelhost.Elprogramcountersimuladoes
encontradovolviendoatraducirelbloquebsicocorrespondienteybuscandodondeelprogramcounterdel
hostestabaenelmomentodelaexcepcin.
ElCPUvirtualnopuededevolverlosregistrosEFLAGSexactosporqueenalgunoscasosnoson
computadosdadoalasoptimizacionesdelcdigocondicional.Noesunagranpreocupacinporqueel
cdigoemuladopuedeserrecomenzadoencualquiercaso.
EmulacindelaMMU
ParalaemulacindelaMMU,Qemuutilizalallamadaalsistemammap().FuncionamientraselSistema
Operativoemuladonouseunazonareservadaporelsistemaoperativohost(comolazonasobre
0xc0000000enunLinuxx86).
Parapodertenerlacapacidaddeejecutarcualquiersistemaoperativo,QemutambinsoportaMMUpor
software.Enesemodo,latraduccindelaMMUdedireccionesvirtualesafsicassonhechasencada
accesoamemoria.Qemuusauncachedetraduccionesdememoriaparaacelerarlatraduccin.

InterrupcionesdelHardware
Demaneradesermsrpido,Qemunocontrolacadabloquebsicoporsialgunainterrupcindehardware
seencuentrapendiente,sinoqueelusuariodebellamar,asncronamente,unafuncinespecfica,para
anunciarquehayunainterrupcinpendiente.stafuncinreseteaelencadenamientodelbloquebsicoque
estactualmenteenejecucin..Seaseguraquelaejecucinvaaretornarprontoenelbucleprincipaldel
emuladordelaCPU.Luegoelbucleprincipalpuedecomprobarsilainterrupcinestpendientey
manejarla.

Detallesespecficosdelaemulacindeusuario
TraduccionesdelasllamadasalsistemadeLinux
QemuincluyeuntraductorgenricodellamadasalsistemaparaLinux.Esosignificaquelosparmetrosde
lasllamadasalsistemapuedenserconvertidosparaarreglarlostemasde"endianness"yde32/64bits.Las
llamadasalsistemaparamanejarentradasalidasonconvertidaspormediodeunsistemagenrico
descriptivodetipo.
QemusoportaCPU'shostqueposeenpginasmsgrandesque4KB.Almacenatodoslosmapeosque
hacenlosprocesosytratadeemularlallamadaalsistemammap()enloscasosdondelallamadammap()
enelhostfallaraporunamalaalineacindepgina.

SealesdeLinux
Lassealesnormalesydetiemporealsonencoladasjuntoconsuinformacin(siginfo_t)comosehaceen
elkerneldeLinux.LuegounpedidodeinterrupcinesrealizadoalaCPUvirtual.Cuandoesinterrumpida,
unasealencoladaesmanejadagenerandounmarcodepilaenlaCPUvirtualcomoelkerneldeLinux
hace.Lallamadaalsistemasigreturn()esemuladapararetornardelmanejadordesealesvirtuales.
Algunasseales(comoSIGALRM)vienendirectamentedelhost.Otrassealessonsintetizadasdesdelas
excepcionesdelaCPUvirtualcomoSIGFPEcuandoserealizaunadivisinporcero.
LamscaradelasealbloqueadaesmanejadaporelkerneldelhostLinuxdemaneraquelamayorade
lassealesdellamadasasistemapuedanserredirigidasdirectamentealkerneldelhostLinux.
Solosigaction()ysigreturn()necesitansercompletamenteemuladas.

Hilosyllamadaalsistemaclone()

lallamadaalsistemadeLinux,clone(),esusadaporlogeneral,paracrearhilos.Qemuusalallamadaal
sistemaclone()delhostdemaneratalquesecreenhilosenelhostporcadaunoemulado.UnaCPUvirtual
escreadaporcadahilo.
LasoperacionesatmicasdelaCPUx86virtualsonemuladasconbloqueosglobalesdemaneraquesu
semnticaespreservada.
ActualmentehayalgunosproblemasdebloqueoenQemu.Particularmente,elvaciadotraducidodecacho
noestaprotegidocontrareentrada

Autovirtualizacin
Qemufueconcebidodemaneraqueelpuedaemularseasimismo.Apesardenosermuytil,esuntest
importanteparademostrarelpoderdelemulador.Conseguirautovirtualizacinnoesfcildadoquepuede
habermuchosconflictosdeespaciosdedireccionamiento.Qemuresuelveesteproblemasiendounobjeto
compartidoELFejecutablecomoelintrpreteELF"ldlinux.so".Deesamanerapuedeserrealocadoenel
momentodecarga
VentajasdeQemu

CapacidaddeemularArquitecturasx86,AMD64,MIPS,SPARC,ARM,SH4yPowerPC
AltavelocidadCiertasaplicacionesseejecutanaunavelocidadmuycercanaalanativa
ImplementaformatodeimagendediscoCopyOnWrite,loquepermitedeclararunaimagendel
tamaoquesea,peroquesolovaaserdeltamaodeloquerealmenteseuse
Implementaelusodeimgenes.Sepuedemantenerunaimagendelsistemaemuladopara
recuperarlosihuboalgnproblema
soportalaejecucindebinariosdeLinuxparaotrasarquitecturas.
Puedeguardaryrecuperarelestadodeunamquina
EmulacindetarjetasdeRedvirtuales
SoporteparaSMP(capazdeemularunsistemaconhasta255CPU's)
Elsistemaoperativoemuladonotienequesermodificadoni"parcheado"
MayorvelocidadcuandoseutilizaKqemu
LasherramientasdelineadecomandospermitenuncontroltotaldeQemusinnecesidaddetener
queejecutarX11
ControlremotodelamquinaemuladavaservidorVNDintegrado
Dadoquenorequiereejecucinen"modokernel"esmuysegurodeutilizar

DesventajasdeQemu

SoporteincompletoparaMicrosoftWindowsyotrosistemaoperativocomoHost
Soporteincompletoparaarquitecturaspocousadas
NoposeesoportedeSSEniMMXtodava
NoposeellamadasalsistemaparaIPC

SolamenteposeesoporteparalaslibrerasgrficasSDLyCocoaapesarqueexisteunparchepara
GGI

MAQUINAVIRTUALVMWARE
StanfordhasidolacunadeempresastcnicasycientficastanimportantescomoHewlettPackard,Cisco
System,Yahoo,GoogleyVMwareentreotras.
VMwareesunsistemadevirtualizacinporsoftware.Unsistemavirtualporsoftwareesunprogramaque
simulaunsistemafsicoconcaractersticasdehardwaredeterminadas.Cuandoseejecutaelprograma,
proporcionaunambientedeejecucinsimilaratodoslosefectosaunordenadorfsico.
VMwareemulacompletamenteunaPCconunaplataformahardwaredeterminada.Elhardwareemuladono
tienenadaqueverconelequipoquehacedeanfitrin,yaqueelsistemainvitadosoloveloscomponentes
virtuales.
VMwarefuncionaenWIndowsyLinuxyproximamenteenMACO2.
LaempresaVMwarebrindaasususuarioinfinidaddeproductosparaoptimizarlavirtualizaciondehardware
olasimulacindesistemasoperativosporsoftware.Debidoalafinalidaddeestamonografasolo
mostraremoslosproductosVMwareworkstation,VMwareESXserveryGSXserver

Funcionamiento
EncasodeWorkstationyGSXserverelfuncionamientoeselsiguiente:
Aplicacin>SO>Hardware>VMware>SOHost>Hardware
EstediagramaindicadederechaaizquierdalascapasenlasqueseimplantaVMware.Enlaprimera
encontraremosalhardwaresubyacente.EnlasegundaesdondesediferencianWorkstationyGSXserver
deESXserver.Yaqueenestasenecesitaunsistemaoperativobaseendondeejecutarlamquinavirtual
(Estoafectaelrendimientoydesempeodelasmquinasvirtuales).Enlaterceraencontramosala
mquinavirtualpropiamentedichalaqueemulaunhardwarecompletamentevirtual,queseencuentraenla
cuartacapa.Siguiendoeldiagramaencontramoselsistemaoperativovirtualquepuedesermasdeuno.
Luegoseencuentranlasaplicacionesqueestnvirtualmenteejecutndosesobreelsistemaoperativoantes
mencionado.
AdiferenciadelaversinESXserverquefuncionamsomenosdelasiguientemanera.
Aplicacin>OS>Hardware>VMware>hardwarefsico.
Enestecasoencontramoslamaquinavirtualenlasegundacapa,desdeaquseemulaelhardware,yluego
enlasiguientecapasealojaelsistemaoperativovirtual.Estaformadeubicarlamaquinavirtualenla
segundacapaimplicaquedichosoftwarehagalasfuncionesdeunsistemaoperativo.Loqueoptimiza
considerablementelavirtualizacin.Estamaquinavirtualcuentaconestrategiasdepaginaciny
segmentacinparahacerunmejorusodelosrecursosdememoria.

VM1VM2VM3
|||
VMWare>virtualizacin>Hardwareemulado
|||
Hardwarefsico

Hardwareemulado
Procesador
IntelPentiumoposterior
AMDAthlonoposterior(DependiendodelaCPUoriginal)
SoporteexperimentalparalasprocesadoresAMD64yIA32eRAM
Hasta3.6GBytesdependiendodelamemoriafsica
UnidadesIDE
Hasta4unidadesIDE
Discosfsicosyvirtuales(mx.128GBytes)
UnidadesCD/DVDROM
UnidadesSCSI
Hasta7Unidades
Discosfsicosyvirtuales(mx.256GBytes)
SoportedeSCSIgenrico
Soporteparaescneres,CD/DVDROM,unidadesdecinta,etc.
ControladordeentradasalidaLSILOGICLSI53C1030Ultra320
AnfitrincompatibleconeladaptadordebusMylex(BusLogic)BT958(solamentesobreWindowsXPcon
controladoresdedispositivoadicionales)
Mediosextrables
UnidadesCDROM/CDR/CDRW(fsicasoimgenesISO)
UnidadesDVDROM
Unmximode2unidadesde1.44Mbytes(fsicasocomoimgenes)
Hardwaregrfico
VGAySVGAconBIOSVESA
Puertos
Hastaunmximode4puertosserie(COM)
Hasta2puertosparalelosbidireccionales(LPT)
DoscontroladoresUSB1.1UHCI
Tecladocompatible
RatnPS/2
Dispositivosdered
Unmximodetresadaptadoresderedvirtuales(Ethernet)
TarjetadesonidocompatibleconAMDPcnetPCIII
CompatibleconSoundBlasterAudioPCI(sinsoporteparaMIDIniparajoystick)
BIOS
Soporteparalaversin6VESABIOSdePhoenixBIOS4.0conDMIv2.2/SMBIOS
Detalles
Paraquelaemulacinpuedaejecutarcualquieraplicacinconunavelocidadaceptable,esnecesarioque
hardwareseabastanterpido.VMwarerecomiendaunPentiumIIAMDequivalente,256MBytesdeRAM,

unadaptadorgrficode16bityporlomenos20Mbytesdeespaciolibreeneldiscoduroparaelsoftware
VMware.Porsupuestoquehabrqueaadirespacioendisco,paraqueestdisponiblealsistemaoperativo
invitado,yunatarjetadered,suponiendoqueelhardwarevirtualnecesiteaccederalared.

VmwareESXserver
Esunproductoparaservidores.Constituyeunacapadevisualizacinderecursosmontadadirectamente
sobreelhardware,sinlanecesidaddeunsistemaoperativobase.YaqueESXserveresunsistema
operativoensi.Lafuncinprincipalesladevirtualizarygestionarlosrecursosentrelasmltiplesmquinas
virtualesmontadassobrelacapaVmware.

Arquitectura:Diseadaparaelfuncionamientoenproduccindemltiplesmaquinasvirtualesde
formaindependientes.

Virtualizacin:Proporcionaacadamquinavirtualunamquinafsicaidealizada,totalmenteaislada
deotrasmquinasvirtuales.

Gestinderecursos:reaprovecharecursosdeunamquinavirtualaotramediantela
multiprogramacin.

Caractersticas:Particionanadoenmquinasvirtuales,encapsulado,aislamientodefallosygestin
dinmicaderecursos.
VmwareGSXserver

Esunsoftwaredevirtualizacinenentornoscomercialescrticos.Simplificalasestructurasinformticas
mediantelaparticinyaislamientodeservidoresenmquinasvirtualessegurasytransportables.VMware
GSXServerpermitequeestosservidoresdemquinasvirtualessepuedanadministrardeformaremotay
estandarizarsobreunaplataformasegurayuniforme.Transformalosordenadoresfsicosenunconjuntode
mquinasvirtuales.Lossistemasoperativosylasaplicacionesseaislanendistintasmquinasvirtuales.Los
recursosdelsistemaseutilizanencualquiermquinavirtual,dependiendodelasnecesidadesquese
tengan,detalformaqueseconsigaunagestindecapacidadyuncontrolsobrelasinfraestructuras
tecnolgicas(hardware).Sepuedeutilizarparaimplantarlaconciliacinentreservidoresoparamejorarel
soportetcnicodesoftware.ConVMwareGSXServerhacequelaaltadisponibilidadseaeconmicay
escalable,protegiendolasaplicacionescrticasylosdatosenunmximode64mquinasvirtualesaisladas
ysegurassobreunanicaplataformadehardware.

VmwareWorkstation
EsunpotentesofwareparavisualizacindeEscritorios(desktop).Ejecutamltiplessistemasoperativos
como,MicrosoftWindows,LinuxyNovellNetWare,deformasimultneaenmquinasvirtuales.VMware
Workstationproporcionamsopciones,mayorflexibilidadyunafuncionalidadmspotentequecualquier
otrosoftwaredevirtualizacinquehayaenelmercado.
Desdesulanzamientoen1999,VMwareWorkstationharevolucionadolaformaenquesedesarrollantanto
elsoftwarecomolasinfraestructurastecnolgicasysehaconvertidoenunestndardefactoparalos
profesionalesdelastecnologasylosdesarrolladores.
Lopodemosutilizarparadesarrollo,pruebaeinstalacindesoftware.Sepuedencrearaplicacionescrticas
basadasenLinuxoMicrosoftydesarrollaryrealizarpruebassobreaplicacionesmltiplesendiferentes
sistemasoperativossimultneamentey,adems,archivarentornosdepruebasyrestablecerlos
rpidamente.
Asegurarcedelacompatibilidaddelasaplicacionesylamigracindesistemasoperativos.Sepuededar
soporteaaplicacionesexistentesalmismotiempoqueserealizalamigracinaunsistemaoperativonuevo

deunaformasegura,alavezquesepuedenrealizarpruebassobreestenuevosistemaoperativoantesde
lainstalacin.
Permiteexperimentarconlasnuevasaplicacionesoherramientasy,adems,distribuireinstalarsoftware
parademosyaplicacionescomplejasencualquierPC.
Mejorarelsoportetcnicodesoftware.ConVMwareWorkstationsepuedenresolverproblemas
rpidamenteyproporcionarunservicioalclientedecalidad.
AdiferenciadelosemuladoresdeAPI(delinglsApplicationProgrammingInterfaseInterfazde
ProgramacindeAplicaciones)comoWINE,VMwareworkstationemulaunordenadorcompletocomoun
programadesoftware.EldenominadosistemaoperativoinvitadofuncionadentrodelaemulacinVMware
sinquepuedadistinguiresteentornodelaPCdeverdad.
Ventajas

Sepuedenejecutarmltiplessistemasoperativosalmismotiempoenunamismamquinafsica.
Totalutilizacindelosrecursosdecadaservidor.
Aislamientodefallosyaltaseguridadaniveldehardware.
RendimientocontroladodelosrecursosdeCPU,RAM,Disco,ynetwork.
TodoelconjuntobajoVMseencapsula:Memoria,disco,imgenes,dispositivoE/S.
ElconjuntoVMsepuedesalvaraunfichero(Checkpointing,Suspend/Resume).
SepuedentransferirlosVMscomoficheros,aesamismavelocidad.
Flexibilidadyfacilidadenloscambios.
Pruebasenentornosidnticosalosdeproduccinsinningnproblemadeejecucin.
Rpidarecuperacinydisponibilidad.
AumentodelaSeguridad.

Soportanuevasyviejasaplicaciones,SistemasOperativosyherramientasdegestin.

Soporteparasistemasoperativosde64bits.

SoporteparalasltimasdistribucionesLinux,Windows,Solaris,BSD.
MejoracapacidadeswirelesendistribucionesLinux.

Desventajas

Lasmquinassolodisponendedriverestndar.

Nosoportaaceleracingrfica.

Algunosproductosnosoportanlavirtualizacin

Elsoftwaredevirtualizacinnoestacertificadoparatodoslosservidores

Rendimientoenaccesoadisco

GastamemoriaRAMfsica,noseusaswap.

MAQUINAVIRTUALXEN
XenesunaMquinaVirtualdesarrolladaporlauniversidaddeCambridgeenEEUUquecorresobre
arquitecturasx86.SeencuentrabajolalicenciadeGNUGeneralPublicLicence.FueelresultadadeXXX
aosdetrabajo.ElobjetivodelequipoeradesarrollarunaVMquefueracapazdecorrermltiplesSistemas
Operativosteniendoelmenordesperdicioderecursosposibles,esdecirquesepudieralograrundesarrollo
similaraldeunSOcorriendodeformanativa.
Dichoobjetivofueconseguido,llegndosealograrperdidasderendimientoverdaderamentebajas,siendo
incluso,eldesempeodeXen,superiorenotrosmbitos.
Parapoderllevaracaboesto,elequipodedesarrollo,utilizunatcnicallamadaParavitualizacin.EstaSe
describirmasadelante.Peroloqueesimportantetenerpresente,esque,paraqueXenpuedafuncionar
precisaqueelSOhostposeaunportparaeste,obienestecorriendobajounmicroprocesadorquesoporte
latcnicamencionada(LineaPacficaencasodeAMDyVanderboolenINTEL).
LossistemasoperativosquetienenportsdesarrolladossonLinux,MacOS,BSDyWindowsXP.Enelultimo
porcuestioneslegalesnoesposiblelanzarelportalpblico6.
Xenescapazdecorrer100mquinasalmismotiempo(siempreycuandoelhardwaresobreelquese
ejecutesoporteesto),brindandounaindependenciadeentreestasmuyefectiva.Deestaformacada
sistemaoperativoquecorresobreunaVMdiferentenosepercatasobrelaexistenciadelosotrosSO.
Lograrunaejecucincasinativaesunatareaquerequieretrabajarconmuchocuidadoalmomentode
implementardiferentesaspectoscomoson:
1. Administracindememoria
2. AdministracindelaCPU
3. AdministracindelosdispositivosdeE/S(discosduros,grabadoras/lectoras,Interrupciones,etc.)
ParaverdequeformalograestoXen,analizaremosdeformaindependientelosapartadosrecin
mencionados.

Administracindememoria.
Esteesunaspectomuyimportanteyaqueesunodelospuntosquemarcarnloptimoonodela
ejecucindelasVM.Estosedebeaquesinoseadministrabienlamemoria,elSOseveraobligadoa
realizarmuchosintercambiosconeldiscoduro.
Laadministracinesdejadaalsistemaoperativohost,esteseencargaderesolverlospedidosdealocacin
yliberacindememoria.ParapodermantenerlaindependenciassobrelasdiversasVMqueestn
corriendo,Xendeberealizaralgunamodificacionesendichaadministracin.
Loprimeroquehaceesreservarunespaciode64MBaltopedelamemoria.Estamemoriaesdedicadaal
trabajodeXen,ysolopuedeseraccedidaporeste.Estosedebealanecesidaddecontarentodomomento
conunespacioparaalmacenarsusdatos(quesearpido7).ElSOhostseencargadecolocarlospermisos
necesariosparaquesoloXenpuedautilizarla.
OtroaspectoenelqueseinvolucraXenesenlospermisosdelamemoria.LosSOmodernosadministranla
memoriaatravsdesegmentos,estostienediversospermisosquedeterminanqueprocesopuedeacceder
aestos.Porcuestionesdeeficienciaunsegmentopuedesercompartidoconconvariosprocesos(yaque
6 MicrosoftasumequenopuedengarantizarelcorrectofuncionamientodelaVMdeXenaltenerqueparcharsu
Kernel(eldeWindows),porestemotivorecomiendanlautilizacindeVirtualPC,unaMquinavirtualadquirida
porestos.
7 porestoesquesequiereevitarreservarmemoriaeneldiscoduro,yaqueesterepresentaunaamenazaaltiempode
respuesta,loquederivaenuntiempoderespuestamenor.

esmaseficientetenerunacopiadelosdatosquevariasdeeste).Paraevitarproblemasconaccesos
indebidosdesegmentos,Xenrevisalospermisosconlosqueseadministranlosrecursos.
Debetenerespecialcuidadocuandoseactualizanlastablasdememoria,paraquenoquedeinconsistente.
EstosedebeaqueelSOhostenconjuntoconlasactualizacionesquellevaacaboXenpuedenafectarla
integridaddelaspginas.
UnultimoelementoquetieneencuentaXen,esquetodoslossegmentosdememoriaqueseanresultado
delasallocacionesdelasVMquecorrensobreeste,debenpoderseraccedidosporel.
XendalailusinacadaVMquetieneunsegmentodememoriacontiguoparasuutilizacin,esdecirque
poseeunbloquedeXtamaoparautilizar.Sinembargoenlarealidadlamemoriaquelesbrindapuede
estardistribuidaensegmentosseparados.Deestaformaselograoptimizarlosespaciosdememoriaque
sonotorgados.

AdministracindelaCPU
Coneltiempolosmicroprocesadoreshanevolucionadoensuarquitectura.Estostieneunvariosmodosen
losquedeterminanlaprioridaddelaejecucin.Esteesunaspectomuyimportanteenlaparavirtualizacin.
Hacemosaquunadivisinenlostiposdemicroprocesadores:
1. Losqueposeendosnivelesdeprioridad.Existeunniveldemayorprioridad(elcero).Enestese
ejecutaelSO,dejandoelotroparalasinstruccionesdelasaplicacionesquecorrensobreeste.
2. Losqueposeen5nivelesdeprioridad.Laarquitecturax86sebasaenunsistemadeanillos,siendo
elanilloceroeldemayorprioridad,yel4eldemenor.DejandoelprimeroparaelSOyelultimo
paraelsoftwaredelusuario.
3. ProcesadoresdelaLineaPacficayVanderbooldeAMDeIntel.Estoscuentanconunatecnologa
quebrindanunniveldeejecucinnuevo,queeselquemayorniveldeprioridadposee.Estees
usadoparalaparavirtualizacin.
EntodosloscasosesposiblecorrerXen,peroinvolucrandistintasmodificacionesanivelsoftware.Paralos
dosprimeroscasosesnecesarioqueexistaunPortdelSOhost,estosedebeaqueesnecesario
desplazarlounaniveldeprioridad,yaqueXennecesitaejecutarseenelmasbajo.EnelprimercasoelSO
esdesplazadoalsegundonivelenconjuntoconlosprogramasdelusuario.Estedebeserprotegido
(espaciosdememoria,prioridades,etc).ParaelsegundocasoelSOesmovidoalanillo1,mientrasqueXen
seinstalaenelanillo0.EltercercasosonmicroprocesadoresquenodemandanrealizarunportdelSO
host.YaseencuentranpreparadosparaqueelSOcorraenlacapanumero1ylasmquinasvirtuales
preparadasparaparavirtualizacinenlanumero0.
Xenprecisainstalarseenlacapadeprioridadmasbajayaquenecesitatenertodoslosprivilegiospara
poderrealizaroperacionescomoadministrarciertasLlamadasalsistema.Deestaformalaspuedemanejar
deformamaseficiente,esdecirsincronizarlasconlasmltiplesVM.
Antesdecontinuar,semostraraunatablacomparativaenlaqueseilustraelcostodeportarunSOxpara
utilizarXen.Elcostoestamostradoenlineasdecdigoquesonnecesariasimplementar.

SO

Linux

WindowsXP

Arquitectura
independiente

78

1299

Red

484

SO

Linux

WindowsXP

Driverdedispositivosde 1070
bloque.

Xen(Noinvolucran
Driver).

1363

3321

Total

2995

7620

DispositivosdeEntrada/Salida.
Xenposeeseencuentramuyinvolucradoenesteaspecto.Encuantoalosdispositivosdealmacenamiento
brindaunaabstraccindeestos,proporcionandoasiunaindependenciaentrelasdistintasVM.Almomento
decrearseunanuevaVM,Xendeterminaendondesemontaraeldispositivodealmacenamientoasicomo
sucapacidadypermisosqueestetendr.Estossealmacenanenunarchivoqueposeeunaestructura
especial.
AdemsproporcionaunaMemoriacompartidayunbufferasncrono.Deestaformacuandounproceso
corriendoenunaVMutilizaalgndispositivodeE/S,suspeticiones,datos,etc.sonenviadosenestebuffer
parasuanlisisysuposterioradministracin.
Porltimoproporcionaunainterfazdeadministracindelasinterrupciones.Seencargadederivarlasa
dondeseannecesarias.PuedehacerqueelsistemaoperativoHostnolasvea,paracasoscomoWakeUp
deprocesos,porejemplo.
Llamadasalsistemaytiempo.
XenimplantounmecanismoquepermiteadministrarlasSyscallsquellevanacabolosSOquese
encuentracorriendoenlasVM.EstesedenominaHipercalls.Cuandounprocesollamaaunadeterminada
pginadememoria,yestanoseencuentra,esprecisocargarlaparaqueestedisponible.Cuandounecho
comoesteocurreentraenmarchaelmecanismodehiperllamadas.Xeninterceptaenestallamada,y
realizalasoperacionesnecesariassegnsusistemadeadministracindememoria.Luegodeechoesto
regresaelcontrolalaVMquellevoacabolallamada.
Lasmquinasconvencionalesusanunrelojinternoparadeterminarlahoraactual.Tenerunaunidadde
medidadeltiempoesfundamentalparaelfuncionamientodelSO.Xenposeeunrelojvirtualyunreloj
base.ElprimerocomienzasucontadordetiempoenelmomentoenquesecrealaVMyluegolomideen
nanosegundosdesdeelmomentodesucreacin.EsusadoparahacerlosclculosdelSchedulerpor
ejemplo.ElotroesunrelojconvencionalqueXendebeencargarsedeajustaralahoracorrectay
mantenerloencorrectofuncionamiento.

Dispositivodealmacenamiento.
SoloellaVM0eslaautorizadaparaaccederalosdispositivosdedisco.Lasrestantesutilizanuna
abstraccindeeste,queconsisteenunarchivoalmacenadoeneldispositivofsico,queendondeson
almacenadoslosdatos.
Xenmantieneunalgoritmodecola,paraadministrarlospedidosdeE/Sdeldisco,quesonproporcionados

porlasdistintasVM.Buscahacerlaformamsrpidaderesponderalospedidosdeestos.
MigracindeMquinasVirtuales.
UnacaractersticamuyinteresantedeXeneslaposibilidaddepodermigrarlasmquinasVirtualesdeuna
computadoraaotra.Enesteprocesolamemoriaesmigradaiterativamentedesdeundispositivoalotro.Lo
interesantedeesteprocesoesqueesposiblerealizarlosinhaberdetenidolamquinavirtual.Existeun
pequeoretardodealrededorde60a300ms,quesonutilizadospararealizarajustesysincronizarlaVM
quehasidocopiada.
LatcnicademigracindeunaVMescomplejayabarcamuchosaspectosatenerencuenta(Memoria,
datosalmacenadosendispositivosfsicos,etc.).LaMemoriaescopiadadeapginas.Siunprocesointenta
accederaunapginaqueestasiendocopiada,sedarunfalloysevolveratenerelaccesocuandoeste
disponibles(queserluegodequehallasidocopiada).Sinembargo,elusuariopuedeutilizardistintas
polticasparaelcopiadodememoria.LamseficienteconsisteendetenerlaVMycopiarensutotalidadla
memoria.Estaalternativanoeslaapropiadaencasodequeseestecorriendounsistemaquenopuedeser
detenido.Otraalternativaeslacopiasegnlademanda.Primerocopialamemoriaesencialparapoder
correryluegocopialaspginassegnsondemandadasporlosprocesosqueestnenejecucin.Por
ultimoexisteunmtodollamadoprecopia,queconsisteencopiarnpaginasenintervalosdetiemposcortos.
DurantelacopialaVMesdetenida.
ParacopiarlosDatosdedispositivosfsicosseutilizantcnicassimilaresalasdememoria,siendomas
simpleeltraspasodeestos.Paraevitarlacopialosservidoresgeneralmentesuelenutilizarotrotipode
almacenamientodedatos,comodispositivoscompartidos,porloquenoesnecesariohacerlacopiadelos
datos.
EstatcnicapuedeserinteresantesiesnecesariomigrardeservidorunaVMydetenerestaimplica
conflictos.
Acontinuacinsemuestrauncuadroqueresumeelprocesodemigracin8.
Paso1

PreMigracin.SeinicialanuevaVMenlaquesequieremigrarlosdatos(VMB).
Estaesseleccionadocomoobjetivoparacopiarlosdatos.

Paso2

Confirmacin.LaVMAenvaunpedidodeconfirmacinalaVMB.Estadebe
constatardequedisponedelosrecursosnecesariosparasoportarlaVmquese
copiara.Encasodequeestonoocurre,Acancelalacopiaysiguecorriendosin
ningnefecto.

Paso3

Secopialamemoriadeformaiterativaobienconalgunodelosmtodosantes
mencionados.

Paso4

SesuspendelaVMA.ENestemomentoseredireccionaeltraficodelaredaByse
copianlaspginasdememoriaquenohanpodidocopiarseantes.Esunaetapade
reajustedelosdatos.

Paso5

Benvauncomunicadodequerecibicorrectamentelacopiadelaimagen.Ase
eliminayBseconvierteenelVMprimaria.

Paso6

LuegoqueBesactivadocomoprimariaesprecisoactivarelprocesodepost
migracin,queseencargadereconfigurarlosdriversdelosdispositivos.

ComofuncionaXen?
Enesteapartadomostraremoscomofuncionadesdeelmomentodesuinstalacin.Parasupruebafue
utilizadoLinuxSUSU10.1conKernel2.6.Comonocontamosconmicroprocesadoresquesoporten
paravirtualizacin,esprecisoinstalarXenconunconjuntodeparchesparaelKernel.Lospaquetesestn
disponiblesparasuinstalacinencualquieradelosrepositoriosdeladistribucin.Unavezinstalados,Se
agregaunanuevaopcindebooteoenlamquina,enlacualsepuedeiniciarelnuevokerneldelinux
8 LiveMigrationofVirtualMachines.ChristopherClark,KeirFraser,StevenHand,JacobGormHansen,EricJul,
ChristianLimpach,IanPratt,AndrewWarfield.

corriendobajoXen.
AlIniciardeestaforma,secrealaprimeramaquinavirtualsobrelaquecorrerelLinuxhost(lanmero0).
Xencreadostiposdekernel,unoqueposeeprivilegiosespecialesyotroquenolosposee.Elprimeroes
dejadoparalaprimeraVM(la0)mientrasqueelsegundoesdejadoparalassucesivasVMquesepuedan
crear.LanecesidaddehacerestoesquelaVM0precisaadministraralasrestantes,porellodebepoder
haceroperacionesespecialesquenoleestnpermitidasalasotras.
Elpasoaseguirescrearlassucesivasmquinasquesenecesitencorrer.Enelmomentodehacerlose
debeespecificarlacantidaddememoriaquesequierequeutilicecomomximo,unespaciodediscoen
dondesevanaalmacenarlosdatos,unidadesdeE/S,etc.Unavezespecificadosestosparmetrossecrea
lamquinavirtualquesimulaunanuevacomputadoraconelelhardwareantesmencionado.
PruebasdeRendimiento.
Acontinuacinsemuestranbenchmarkrealizadossobredistintosaspectos,endondesevequeXenbrinda
unrendimientoqueesmuysimilaraldeunSOcorriendosinningunaVM.Enalgunosaspectossepodr
observarqueelrendimientoesinclusosuperior.Acontinuacinsedetallaranpruebasoficialesde
rendimientollevadasacaboconXenVMqueseencuentranenelmercado.
1.

LaprimerapruebafuellevadacaboconunasuitedeevaluacinderendimientollamadaSPEC
INT200.EstaseencargaderealizarpruebasendistintosmbitosdelaPC.Dentrodeellosseveel
rendimientodelaCPU,pruebasdeE/S,pruebasdememoria,etc.
EnlasegundasepuedeobservareltiempoensegundosquetomocompilarLinuxconkernel2.4
conlacompilacinpordefecto.
LasdospruebassiguientesfueronllevadasacaboconlabasededatosPostgreSQL7.Se
evaluaronconlaconfiguracinpordefecto.Enlaprimeraseviolallegadadedatosdemltiples
usuarios,yenlasegundallegadaportransferenciaonline.
dbenchesunprogramaparahacertestingdesistemasdearchivos.Emulalacargaenunservidor
realizadaporclientesconWindows95.
Lasultimasbarras(SPECWEB99)esunasuitequeevalaelrendimientodeunservidorwebyde
lossistemasquelohostean.

2.
3.
4.
5.

PruebasdeRendimiento
1800

1714
1633

1600
1400
1200
1000

LinuxNativo
Xen

800
600

VmwareWorkstation
567 567 554 550

400

535
263 271

334

306
172 158

200

LinuxUserMode

518 514

199
80 65

418 400

310
150 172

111

0
SPEC
INT200
(score)

Compilacion
deLinux
(Segundos)

OSDBIR
(tups/s)

OSDBOLTP
(tups/s)

dbench
(score)

SpecWEB99
(score)

COMPARATIVAENTREMAQUINASVIRTUALES
Seadjuntaarchivodehojadeclculos(comparativa.ods)endondesecomparandistintosaspectosde
diversasmquinasvirtuales.Estatablafueextradadelawikipediaenespaol.

MALWARE
EnesteapartadoharemosunaespecialreseaauntemaqueinvolucraenlaactualidadalasVM.Como
malwaresedenominaauntipoespecialdesoftwarequetieneintencionesperjudicialesparaelusuarioyla
mquinaenlaqueseestcorriendo.Estetienelaparticularidaddequeposeeuncontrolsobreelsistema
muchomasampliodeelquetienecualquierotrosoftwareconlamismaintencin.
Elsoftwaremaliciosopuedecorrersobreunacapasuperioraladecualquiersoftwarequeseeste
ejecutando,generandodeestaformaquesepuedaninterceptarlassealesollamadasquerealiceel
primero.Porelloparapodercombatirlosenprecisoqueelsoftwaredeproteccinseencuentreenunacapa
inferioraeste.
Elmalwaresepresentacomounamquinavirtualqueseinstalasobreunhardwaredeterminadoycorre
luegosobrecapasinferioresalsistemaoperativoHost(queesunacopiadeloriginal).Otraformaesquese
corradosomasmquinasvirtualesenparaleloyenalgunasdeellasseencuentrainstaladoelsoftware
malicioso.
ElMalwaresacaprovechodedosaspectosquelebrindanpodercorrersobreunamquinavirtual,el
primeroserefierequealcorrersobreunaVMqueesindependientealasotrasloquelaaisladelos
programasdeproteccin.Lootroqueutilizaesquepuedevermodificacionesqueocurranenelsistema,
comocambioseneldisco,memoria,puertoscomoastambinlainterceptacindeseales,etc.
Acontinuacinseexplicaracomohacenestosprogramasmaliciososparainstalarse.Inicialmentenecesitan
tenerprivilegiosaltosparapodermodificarelmododebooteodelamquina,deestaformasebooteaconla
VMmaliciosa.Parahacerestosepuedenutilizardiversastcnicasquevandesdeelusodeprogramaspara
dichainstalacin,comoadquisicindeunacontraseaderoot,etc.Unavezqueestahaconseguido
bootearmodificaelsistemadeformaquepuedacorrersinqueesteseadviertadesuexistencia.Deesta
formalograquedarinstalada.
Luegodeestopuedecorrerdiversasaplicacionesmaliciosasqueafectenelsistema.Unodelosprimeros
pasosarealizaresdesactivarlossistemasdeproteccindelsistema.
Existentrestiposdeataquesposibles
1. Aquellosquenointerfierenconelsistema.Esdecirnoafectansufuncionamiento,laVMcorrede
formaindependiente.
2. Aquellosqueinteractanconelsistema,peroparainterceptarseales,porejemplopararobar
informacin.
3. Aquellosquetienecomoobjetivodesestabilizarelsistema.Afectansufuncionamiento.
SibienunMalwaretieneunformadefuncionamientoquepuedecomprometermuchoalsistema,paraque
estospuedancorrerelprecisoinstalarseenunamquinadeterminadayparaellosprecisadeprivilegios
altos.Sinesterequisitonoesposiblequepuedacorrer.
Losesquemasantesmostradossepuedenobservarenelsiguientegrfico
[SistemaoperativoREAL]
|
\>[Malware]+[MquinaVirtual]
\>[CopiadelSO]
\>[Programasdelusuario]
obienpuedeserdelasiguienteforma:
[Mquinavirtual]
\>[SOReal]+[MquinaVirtual]
\>[Mquinavirtual]

\>[SOCopia]
\>[Programasdelusuario]

Lasegundaestructuraesmascomplejaynoestanfcilqueselleveacabo.Parapoderhacerestoes
necesarioutilizarlaparavirtualizacinobienunmicroprocesadorconsoporteparavirtualizacin.

CONCLUSION
LasVMhanevolucionadomuchodesdelasprimerasquefueronimplementadasporlosMainframesdeIBM.
Sinembargoconelpasodeltiemposepudoverquesemantuvieronlosconceptosiniciales.
Elusodestasbrindasolucionesaproblemasdelosusuarios.Ademsexistendediversostiposparalas
distintasutilidades.Suprincipalaplicacinseharadicadoenelmbitoderedesparaoptimizarlautilizacin
delosrecursos(Xen,VmWare,etc.),brindarfuncionesespeciales,compatibilidaddesistemasoperativos
(JAVAvirtualmachine)yproporcionarseguridadenmbitosenlosqueesnecesarioprotegerelhardware
fsico.
Apesardelasventajassehapodidoverquepuedenserutilizadasconfinesmaliciosos(Malwares),siendo
unaformadeataquesofisticadoquepuedecausargrandesdaosenlossistemasafectados.
PodemosconcluirdiciendoquelaslasVMtieneunfuturoextenso,sepuedeobservarcomoelhardware
evolucionaparapoderbrindarlesmayoresfuncionalidadesyposeenunestadodemaduracinquepermite
suutilizacindeformasegura.

Bibliografa

www.wikipedia.com

www.qemu.com

http://www.cl.cam.ac.uk/research/srg/netos/xen/

http://www.vmware.com/

http://www.sun.com/

http://es.morse.com/tp_18.htm

www.
intel

.com/

www.
amd

.com

www.eecs.umich.edu/
virtual

/papers/king06.pdf

SistemasOperativosModernos.AndrewS.Tanenbaum

XenandtheArtofVirtualization.PaulBarham,BorisDragovic,KeirFraser,StevenHand,TimHarris,
AlexHo,RolfNeugebauer,IanPratt,AndrewWareld

Вам также может понравиться