27
MONOGRAFIA: MAQUINAS VIRTUALES Grupo nº: 8 Fecha: 28/11/2006 Integrantes: Franco Pelegrini ([email protected] ) Matias Cordoba ([email protected] ) Rodrigo Carreras ([email protected] )

Informe Maquinas Virtuales

Embed Size (px)

Citation preview

  • MONOGRAFIA:MAQUINASVIRTUALES

    Grupon:8

    Fecha:28/11/2006

    Integrantes:

    FrancoPelegrini([email protected])

    MatiasCordoba([email protected])

    RodrigoCarreras([email protected])

  • 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,suhistoriasedivideenetapasquedancomienzodesde1955hastalaactualidad.Laevolucindetodosloselementosrelacionadosconlascomputadorasactualesnoesloquenosocupa,sinoquenosreferiremosalaformaenqueevolucionaronlossistemascapacesdecorrermaquinasvirtuales(VM).LanecesidaddelaexistenciadeVMdacomienzoporlanecesidaddeobtenerunsistemaoperativoquefuesecapazdesoportarmltiplesusuarioscorriendosobrel(timesharing1),esdecirquefuesecapazdeejecutarlosprocesosquestosnecesitabancorrer.DuranteesteperodosurgieronvariosSistemasoperativos(SO)quetratarondesolucionarestanecesidad.IBMdesarrollunSOllamadoOS/360.Enuncomienzonoestabacapacitadoparasoportartimesharing,perotrassurgirestanecesidadseleincorporestafuncin.ApesardelosintentosdeIBMpordotaral360constafuncionalidad,lograronobtenerunsistemaqueeramuypesado,einconsistente.Parasolucionarlosepropusounnuevosistema(en1972queaunestapresenteenlaactualidad)llamadoVM/370(1).stemarcunpuntomuyimportanteenlahistoria,yaqueparapoderproporcionarunsistemadetiempocompartido,sebasenunaseriedeconceptosquenosehabantenidoencuentahastalafecha.stosfueron:

    Multiprogramacin:variosprocesoscorriendoensimultneo. Unmquinaextendidaconinterfazmsconvenientequeelmerohardware.

    VM/370eslaesenciadestasdosfunciones.stesimulabavariasmquinascompartidasycadaunadeellasbrindabaacadausuariounacopiaexactadelhardwaredelamquina(cuandoenrealidadsecontabaconunsolohardwareyesteserepartaentretodaslasVM).Tenauncorazn,llamadomonitordelsistema,queeraelencargadodesimularlasmtiplesmaquinas.UnodelosinconvenientesdeesteSOesquesolocorreenarquitecturasIBM/370,hechoquenosignificabaunagranlimitacindurantesusurgimiento.ConeltiempolasVMhanevolucionadomucho,siempreteniendoelmismoconcepto,esdecirunsistemaquebrindaunaabstraccinaotrosentes(SO,procesosdeusuarios,etc).EnlaactualidadnosencontramosconVMquesoncapacesdecorreraplicacionesindependienteshastaunconjuntodesistemasoperativos,siendoestounhechoqueproporcionaindependenciaenlosdistintossistemas.

    INTRODUCCINALASMAQUINASVIRTUALES

    InicialmenteseutilizabaeltrminoHardwareVirtualMachine,quesurgadeunsistema(VM/370porejemplo)queemulabamltiplesmquinasconsuhardwareparticular,siendoqueenlarealidadestabancorriendosobreunslohardwarequepodasermslimitadodeloquelasVMofrecan.ActualmentenospodemosreferircomoVirtualMachineyaquestashanevolucionadodetalformalquenoesprecisomodificarelhardwareparacorrerlas,sinoquesoncapacesdetrabajarenotrascapasdelsistema.Seharunadescripcindelascapassobrelasquetrabajanmsadelanteenestetrabajo.

    Lapreguntaes:Quesunamquinavirtualyquesloquehacen?,pararespondersto,dependedelenfoquequeselehayaqueridodarenelmomentodesudesarrollo.Sinembargolatareaquetieneasignadaesladeproporcionarunacapadeabstraccinaunentre(Proceso,programa,sistemaoperativo,etc)determinado,conelfindequestecreaqueestcorriendosobreunsistemaquecuentaconciertascaractersticas.Dichodeotromodoescrearunentornovirtualentrelaplataformadelacomputadorayelusuariofinal,permitiendoquesteejecuteunsoftwaredeterminado.MsadelantesepuedeconsultarunapartadoparticularquehabladelosdistintosenfoquesqueposeenlasVM.Aqupodemosestablecer3gruposenloscualesenglobarlasVM:

    1. VMqueemulanhardware:comoenelcasodela370deIBM.Mquinasquesimulanunacopiadel

    1 timesharing:estareferidoalamultiprogramacin,esdecirlaposibilidaddeejecutarmltiplesprocesosalmismotiempo,odarlasensacindequeestoestaocurriendo.

  • Hardwaresobreelqueestncorriendo.2. VMquepermitencorrerSO:dentrodestaspodemosmencionaraquellasquesoncapacesde

    soportardistintossistemasoperativos.3. VMquepermitencorrercorrerlenguajesdeprogramacincompilados.Esdecirlosprogramasse

    compilanparaejecutarsesobreunamaquinadeterminada,quegeneralmentefuncionaenvariosSO.DeestaformaseevitatenerquecompilarelsoftwarecadaunodelosSO.

    LasVMbrindanbeneficisvariosquedependendeltipodemquinaqueseestejecutando,dentrodestospodemosmencionar:

    Permiteaprovecharalmximolascapacidadesdelharwaresobreelquecorren.stoesposibleyaquealtenervariasmquinasejecutandosesobreunamismalosrecursossevenobligadosamantenerseenunusocasiconstante.Unejemplodeestoesunhardwareespecificoquebrindaintel2,queescapazdecorrerVmWare(untipodeVM),endondesepuedereducir100sevidoresauntotalde10,lograndoaprobecharalmaximolascapacidadesdelhardware.

    Seguridad.Soncapasesdecorrersobreunhardwaredeterminado,peroabstraertotalmentealusuariodeeste,esdecirquelebrindaunainterfazparaqueestetrabaje,peronopermitequedaenialterelapartefsicadelamquina.Porellosonunelementointeresantealmomentodehacerdistintaspruebasquepuedenperjudicarelsistemadeterminado.

    Estabilidad.CorrersobreunaVMunaaplicacinpuedenosermasestablequehacerlosobreunSO.PeroapesardeestobrindaestabilidadenelSOquecorrelaVM,yaqueencasodequeelprogramacausealgunerror,lounicoqueseveraafectadoseralaVM.

    MultiplePlataforma.Siestamoshablandodelengujescompilados,solodebemoscompilarunprogramaparacorrersobreunaVMyestaseencargaradepermitirqueseejecuteenmultiplesSO.UncasodeestoeseldeJAVA.EstelenguajeproporcionaunamquinavitualquecorresobreLINUX,WINDOWS,MAC,etc.Luegounprogramadejavaseejecutaraentodosellossinquehallanecesidadderecompilarlo.

    PodemosestarejecuntandodosomasSOalmismotiemposobreunamismamquina

    EstassonalgunasdelasventajasdeutilizarVM,yotrassurgirandelacombinacindelasmismas.Puedenexistirinfinitasfuncionesquesepuedenhacerconestasydependerandelacapacidaddeaprobecharlaquetengacadausuarioenparticular.

    TIPOSDEMAQUINASVIRTUALES

    Comoyasemostroenloanteriormencionadoexistendistintostiposdemquinasvirtuales.Apesardeestotodascompartenunmismoconceptoqueesladebrindarunaabstraccinalente..quelosutiliza.AcontinuacinsemostraralosdistintostiposdeVMqueexistenasicomoejemplospuntualesdecomofuncionanestas.

    VMParaemularhardwareespecifico.

    UnejemplodeestaeslaVM/370deIBM.Sebasanenunharwareespecificoqueposeememoria,procesador,espaciodealmacenamiento,dispositivosdeE/Setc.Sobreestehardwaresecorrelamquinavirtualqueseencargadedividirestedemodoquepuedabrindaralosusuariosfinalesunacopiaexactadeeste.Paraelloexisteuncorazndelsistemaqueseencargadesimularesto.

    SistemaoperativoX SistemaoperativoX SistemaoperativoX

    Mquinavitual

    Hardware

    LaCantidaddesistemasoperativosquesepuedencorrerenlacapamasaltadependedelamquina

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

  • virtualqueseestecorriendo.EnelcasodelasVM/370sepodanejecutarcomomximo370.Paraquestaspuedanusarseesnecesarioqueelhardwarecumplaciertosrequerimientos,esdecirquenopuedecorrersesobrecualquierarquitecturadecomputadora.ActualmentelasVMsoncapacesdeemularelhardwarequeelusuariosolicite.ParaestohayquetenerencuentaquenodebesuperarconcrecesalHardwarefsicoyaquedelocontrarionosepodrsatisfacerlasnecesidades.LacapasobrelaquecorrenestetipodeVMeslasegunda,siendolaprimeraelhardwarefsico.UnproyectoqueestaencontinuodesarrolloesVMware.EsinteresantemencionarloyaqueproporcionaunainnovacingrandeenrelacinconVM/370.Estaradicaenquepermiteajustaralasnecesidadesdelusuarioelhardwarequeelusuarioprecisa,alavezquepuedecorrersobredistintasarquitecturasdehardware.MsadelanteseharunapartadoespecialparaVMware.EstetipodeVMseencargasimularlacapamasbaja,esdecirladelHardware(deaququelatareaquetengaencargadaesladerecrearvariascopiasdelhardwareoriginal.

    VMParacorrerdistintosSO

    AntesdecontinuardebemosaclararquelasVMnotienenquepertenecersoloaunodeestosgrupos,porcitaruncasoyamencionadoVMwareescapazdeemularuntipodehardwareespecficoalavezquepermitecorrerdistintossistemasoperativos.ConestoqueremosmostrarlosgruposdefuncionalidadesqueposeenlasVMdemododepoderdescribirlas.Actualmenteexistenmuchossistemascapacesdellevaracaboestafuncionalidad.DentrodeellospodemosmencionarVMware,QEMU,Xen,Botch,VirtualPC,etc.Entreellosdifierenenlaformaenlaquelogranobtenerelmismoobjetivo.AlgunastrabajanconelSistemaoperativohost3ysobreelhardware(comoVMware)otrastrabajansobreunacapasuperioraladelsistemaoperativocomoeselcasodeQEMU.SinembargotodosbuscanlograrcorrerunSOcompleto(quevaradependiendodelaVMqueseestcorriendo).NohablaremosaqudelmodoenquecadaVMllevaacabosutarea,stoseaclararmasadelanteensteinforme.Sibiencadaunoposeeunaformaparticulardellevaracabosutarea,unacaractersticacomnqueposeenesladecrearunanueva"capaenelsistema".Estacapaseubicarentreelsistemaoperativohost(yelhardwaredesernecesario)ylosmltiplessistemasoperativosquequerramoscorrer.PorlocualcuandocorramosunSOXenlaVMestecreerqueseestejecutandodirectamentesobreelHardware4.

    VMParaSoftwareEstetipodemquinasvirtuales,aligualquelasdelapartadoanterior,creanunacapaentreelsistemaoperativohostyelprogramaquedeseacorrerelusuario.stasenvaninstruccionesalSOHostysteseencargadehacerlasllamadasnecesariasalhardware(creaunacapadeabstraccinentreelsoftwareyelSOHost),porloquelaVMnotrabajadirectamenteconste.UnejemplodeestetipodeVMeslaJavaVirtualMachine.LaventajadestasesqueunprogramadordesarrollaunsoftwarequeseacapazdeejecutarseenunaVMespecficaylocompilaparasta.LuegoelprogramafuncionarentodoslosSOqueseacapazdecorrerlaVM.DestaformaseahorramuchotiempodedesarrolloyseestableceunestndardeprogramacinenlosdistintosSO.LaCapaqueseencargaderecrearstetipodeVMesladelSO,esdecirelprogramaquecorresobresteenvalasllamadasalsistema5alaVMcomosilohicieraconelSO.Luegostelainterpretayhacelallamadacorrespodiente.

    3 EselSistemaOperativosobreelquecorrelamaquinavirtual.PuedeserWindows,Linux,Mac,BSD,etc.EstedependerdelaVMqueseestecorriendo.

    4 Notienequecreerqueestacorriendoexactamenteconlascapacidadesdelhardwarereal,laVmpuedehacerquecreaqueesunhardwaredistinto,porejemplolimitandolacantidaddememoria.

    5 LlamaalsistemaoSystemcall.EsunmecanismopormediodelcualunprogramadeusuarioutilizaunaseriedeprocedimientosdelSOquehacendiversastareas,porejemplomanejodememoria,E/S,etc.

  • FORMASENLASQUESEINTEGRANLASMAQUINASVIRTUALES.

    Cadatipodemquinavirtualposeeunaformadiferentedefuncionar,dependiendoenlacapaenlaquetrabaje.Parallevaracabosutareasevalededistintastcnicasquetienesusventajasydesventajas.Muchasdeellassacrificanvelocidadyrendimientodelhardware(yaquealabstraercapasconllevaaunmenortiempoderespuesta)yobtienenunmenorcompromisoconelhardwarefsico,mientrasqueotrasprefierentodolocontrario.UntrminoutilizadoenelmbitodelaVMeslavirtualizacin.UnaMquinavirtualestambinllamadaServidordeVirtualizacin.AcontinuacinsehablardelosdistintosmediosquesevalenlasVMparapoderhacerstastareas.

    VIRTUALIZACION

    Virtualizacineslacreacindeunaversinvirtual(encontradelaversinreal)dealgo,comounsistemaoperativo,unservidor,undispositivodealmacenamientoorecursosdelared.Lavirtualizacindelsistemaoperativoeselusodesoftwareparapermitirqueunmismosistemamanejevariasimgenesdelossistemasoperativosalamismavez.Latecnologaseinicienlosmainframeshacedcadas,permitindolesalosadministradoreslamejorutilizacindelpoderdecmputo.Paraserconcretos,consisteenmontarunsistemaoperativovirtual,olosquenuestramquinaseacapazdemanejar,enbaseaunsistemaoperativo"anfitrin"oHost.Destemodopodemoscargardiversossistemas,inclusototalmentediferentes,sobreunmismohardwareydeformaqueestnaisladoslosunosdelosotrosytambinqueaprovechenelhardwaredisponibleenelHostcomosuconexindeRed,suspuertosUSB,susunidadesdealmacenamiento,etc.EstatcnicaesutilizadapormuchasVMparapoderllevaracabosuobjetivo(Xen,VmWare,QEMU,etc).Latcnicadevirtualizacinfueutilizadaaproximadamente4dcadasatrsenlasgrandesMainframesqueexistan.Estatcnicaseutilizabaparapoderoptimizarlautilizacindelosrecursos.Actualmentestatcnicaesutilizadaparaelmismomotivo,ascomotambinenotrosmbitos,comoenlaseguridad.

    EmpresascomoInteloAMDseencuentraneneldiseodeprocesadoresqueseancapazdesoportarlavirtualizacin.Estatecnologaamplalacapacidaddedichosprocesadoresconlacapacidaddeaislarlaejecucindelossistemasoperativosvirtualescargadosenelsistema.Esteaislamientodeprocesosfavorecenotablementealrendimientoyalaestabilidaddelosdiferentessistemasoperativoscargadosenelsistemaanfitrin.CadaunofuncionacomounaparticindentrodelprocesadorloquefavoreceelfuncionamientodelosSOaumentandolaseguridadyelbuenfuncionamientodelmismo.

    Dentrodelavirtualizacinsedesprendendistintostipos,queseespecializanenunaspectoenparticular,dentrodelosquepodemosmencionar:

    Emulacin,Tambinllamadavirtualizacincompletaconrecompilacindinmica.Consisteenunasimulacincompletadelhardware.Sepuedecorrerunsoftwaredeformaindependientecomosiestuvieraejecutndoseconunprocesadorindependiente.Esunatcnicamuyutilizadaparabrindarcompatibilidaddesoftwarey/ohardware.Porejemploesutilizadoparasimularconsolasdevideojuegosquetienenunhardwarequedifieretotalmenteconeldeunacomputadora.Programasqueutilizanestatcnicasonmuchos,unejemploqueposeeunaexplicacinmsampliaensteinformeesQEMU.

    VirtualizacinNativaoVirtualizacinCompleta.statcnicaconsisteensimularunhardwareespecfico.LasVMqueseencargandeestocorrendemaneraindependientelosdistintosSOquecorrensobresta.ExisteunnicoprocesadorqueescompartidoentretodaslasVM.Esdecir,nosesimulacomoenlaEmulacinlaexistenciadeotroprocesadordiferentealqueexistefsicamente.EjemplodeestesistemaesVmwareoXen(consoportedelmicroprocesador).

    Paravirtualizacin.statcnicarequieredeayudaespecialdehardware(microprocesador)obienqueelsistemaoperativosobreelquesecorraestparchadoparapoderejecutarse.LaVMqueutilizaestatcnicaseejecutaenunacapainferioraladelSOhost,ydesdeaquseencargaderealizarlassucesivasadministraciones.SehaceunapartadoespecialparaXen(queutilizaestatcnica)endondeseamplalainformacinacercadesta.

  • CadatcnicaesunaformadevirtualizacindequecadatipodeVMutilizaparasatisfacersuspropsitos.

    MAQUINAVIRTUALJAVA

    EsunamquinavirtualdesarrolladaporSunMicrosistem.Estaseencargadeinterpretaryejecutaruncdigobinariodejava.Esteesgeneradoporuncompiladorespecificoparadichofin.Enuncomienzoesteerasolopropiedaddelaempresaantesmencionada,enlaactualidadexistendiversoscompiladoresquellevanacaboesafuncin.Esporelloquesehaestablecidounestndardedesarrollodejava.Existeunlibroqueespecificaelestndardelamquinavirtualdejava(JVM),esteesdenominadoelLibroAzul.Unafraseextradadeeldice:

    WeintendthatthisspecificationshouldsufficientlydocumenttheJavaVirtualMachinetomakepossiblecompatiblecleanroomimplementations.Sunprovidestestswhichverifytheproperoperationof implementationsoftheJavaVirtualMachine.

    Dondesutraduccines:

    PretendemosqueestaespecificacindocumentesuficientementelaMquinaVirtualdeJavaparahacerposiblesimplementacionescompatiblesdeentornosdeconfianza.SunofrecemecanismosparaverificarunacorrectaoperacindelasimplementacionesdelaMquinaVirtualdeJava.

    EstetipodemquinavirtualesunclaroejemplodeuntipodeVMqueesusadaparacorrerprogramas.Parapoderllevaracaboestatareaesprecisoqueserealicenunaseriedepasosquesedescribirnacontinuacin.Esprecisollevaracaboinicialmenteunprocesodecompilacin.Enesteperiodoseconvierteelcdigofuenteacdigoquepuedainterpretarelcompilador.Enelcasodejavasetransformaenunbytcode.Losproyectosseseparanenclases,endondeseencuentranlosdiversosprocedimientos,funciones,etc.Estaspuedenserempaquetadasenunsoloobjetoconexencin.jar,elcualesusadodirectamenteporelcompilador.ParapoderejecutarlasinstruccionesJava,inicialmentellevabaacabounmtodollamadoInterpretacin.Esteconsisteenleerinstruccinporinstruccineiremulndolassegnelsistemaoperativosobreelcualseestabacorriendo.EnlaactualidadsellevaacabounprocesollamadocompilacinJIT(JustInTime,oalmomento).Estaseaplicasobreelbytecodegeneradotraslaprimeracompilacinaliniciodelaaplicacin,ydacomoresultadounaejecucinmuchomseficiente,aunqueconlapenalizacinentiempoqueconllevaestasegundacompilacin.

    ProcesodeEjecucin

    Antesdeejecutarunbytcodedejava,laJVMllevaacabounprocesodeverificacin.Estosehaceantesdeejecutarcualquierinstruccincontenidoenelobjeto.jar.Aquseverificancosascomoquenoseaccedanadireccionesdememoriaincorrectas,ahorrandotrabajosalSOporejemplo.

    JVMpuedeemplearinstruccionesqueejecutencomandosdiversos.EstetipodecomandosasegurandequeexistancompatibilidadentretodoslosSO.LlevaracaboestatareaesunodelosfactoresmasdifcilesalahoradedesarrollarlaJVM.Elgrupodeinstruccionesquepuedenusarseson:

    Cargayalmacenamiento Aritmticas Conversindetipos Creacindeobjetosysumanipulacin Gestindelapila(push/pop,meter/sacar) Saltos Llamadaamtodosysalidadeestos Generacindeexcepciones

    Unodelosfactoresparaloscualesfuedesarrolladojavafueparapoderejecutarcomandosollevaracabotareasdeformaremota.Esdecirqueunusuarioqueseencuentraensunavegadorweb

  • puedeejecutarcdigoprovenientedeunservidorremoto.EsteCdigopuedesermalicioso.PorelloslaJVMproporcionaunentornoseguroquenodejaquesedaeelSO.Encasosdetenerqueejecutaraccionesquelocomprometan,seavisaalusuarioquienpuedepermitirsuejecucin.

    UnaspectointeresantedelaJVMessugranpotencial.NoesprecisoqueelbytcodequeejecutehallasidoescritoenJAVA(ellenguaje),sinoquepuedesertambinenC,ADAoCOBOL.SoloesprecisoteneruncompiladorqueinterpreteellenguajeyloconviertaenunbytecodedeJVM.Estoproporcionaunalibertaddedesarrolloparalosdistintosprogramadores.

    MAQUINAVIRTUALQEMU

    Qemuesunprogramalibrequeproporcionaunavelozemulacindeprocesador,permitiendoalusuariosimularunacomputadoracompletadentrodeotra,fueescritoporFabriceBellard,unprogramadorfrancesqueademsdeserelcreadordeQemu,eselfundadordeFFmpeg,unpequeocompiladordeC"TinyC"entreotros,yadems,eldescubridordelaformulamsrpidaqueseconoceparacalcularcifrasdelnmeroPI.

    Qemuesunamquinavirtualcapazdeemularmltiplesarquitecturas,ylaaltavelocidaddeemulacinlalogragraciasaunatcnicallamada"Traduccindinmica",lacualesunacombinacindeotrasdos,la"compilacionabytecode"yla"compilacindinmica",dondebsicamenteelprogramasecompilaabytecodeprimero,queesunlenguajeintermedioantesdellenguajedemquina,pudiendodeestamaneraserportadoacualquierarquitectura.Esaqucuandounamquinavirtuallointerpretayloejecuta.

    QemupuedeserinstaladobajoLinux,Windows,FreeBSDyMacOSX,perolaversinparaWindowstodavaseencuentraenestado"Alfa"dedesarrollo.

    Poseedosmodosdeoperacin:

    1)Emulacincompletadeunacomputadora2)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,enotra.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

    ExisteunmduloparaelkerneldeLinuxqueelevalavelocidaddeemulacindei386enmquinasconi386,endondelavelocidaddeejecucinesprcticamentenativa.ElmduloesllamadoKqemu,escritoporelmismoautordeQemu,soloqueelotroeslibreperonoposeeelcdigoabierto.Laaltavelocidaddeemulacinlalogragraciasaqueejecutaelcdigoen"modousuario"yen"modovirtual8086"directamenteenelprocesadordondeestacorriendoQemu,yusandolaemulacindeprocesadoryperifricossoloparaelcdigoen"modokernel"yen"modoreal".AdemsKqemuposeeunmodode"Virtualizacincompleta",enlacualnosoloseejecutaelcdigode"modousuario"enlaCPUhost,sinoqueseejecutatambinelcdigode"modokernel",aumentandoanmslavelocidad.

    ExisteotromodulodeaceleracinllamadoQVM86,peroalparecerestabandonado.

    EjemplosdefuncionamientodeQemu:

    qemuimgcreatefqcowimagen.img3G

    Estocreaunaimageneneldiscollamada"image.img"conqcowcomotipodeimagen,lacualpermiteiragrandandoelarchivoamedidaquesevaescribiendoenlhastauntamaomximode3GB

    qemuhdaimagen.imgcdrom/dev/hdcbootdm128soundhwsb16localtime

    Estoinicialamaquinavirtual,especificandoquelaunidadhdaseralaimagencreadaanteriormente,elcdromeseldispositivo/dev/hdc,queiniciedesdeelcdrom,conunamemoriaramde128MBseemulaunaplacadesonido"SoundBlaster16"yseespecificalahoralocal

    Qemumonitor:

    LamquinavirtualQemuposeeunmonitorquefuncionaentiemporeal.Estemonitoresaccedidoconlacombinacindeteclas"Ctrl+Alt+2"ysepuedehacertodotipodeconsultas,desdelaversinactualdeQemu,hastasaberlosvaloresdelosregistrosdelmicroemulado

    TraduccinDinmica:

    Qemuesuntraductordinmico.Cuandoencuentraunpedazodecdigo,loconviertealsetdeinstruccionesdelamquinahost.Porlogeneral,lostraductoresdinmicossonmuycomplicados,ygrandesconsumidoresdeCPU.Qemuutilizaalgunostrucosquelohacenporttilrelativamentefcilysimple,almismotiempoquelograbuenaperformanceLaideaesdividirtodaslasinstruccionesx86eninstruccionesmssimples.CadainstruccinestimplementadaporuntrozodecdigoenC.Luegounautilidaddecompilacintomaelcorrespondientearchivoobjetopararealizarungeneradordinmicodecdigo,quienconcatenalasinstruccionessimples,paraarmarunafuncin.

    Unaideaclaveparaobtenerunaperformanceptimaesquesepuedanpasarparmetrosconstantesalasoperacionessimples.Paraesepropsito,realocacionesdearchivosELFsongeneradoscongccparacadaparmetroconstante.LuegolautilidaddecompilacinpuedeubicarlasrealocacionesygenerarelcdigoCapropiadocuandoseestconstruyendoelcdigodinmico.Destamanera,Qemunoesmscomplicadodeportarqueunlinkeadordinmico.

    Paraanmayorvelocidad,lasvariablesderegistrosestticosdegccsonusadasparamantenerelestado

  • delaCPUvirtual.

    Alocacinderegistro

    DesdequeQemuusasimplesinstruccionesfijas,nopuedehacerseunaalocacinderegistroseficiente.Detodasformas,dadoquelosCPU'sRISCposeenmuchosregistros,lamayorpartedelestadodelaCPUvirtualpuedeserpuestoenregistrossinhacerunacomplicadaalocacin.

    Optimizacindecdigocondicional

    UnpuntocrticoparaobtenerbuenaperformanceesunabuenaemulacindeloscdigoscondicionalesdelaCPU(registrosEFLAGSenx86).Qemuutilizaunaevaluacindecdigocondicionalperezosa:Enlugardecomputarelcdigocondicionalluegodecadainstruccinx86,solamenteguardaunoperando(llamadoCC_SRC),elresultado(llamadoCC_DST)yeltipodeoperacin(llamadoCC_OP).Cuandosepuededemostrarqueloscdigoscondicionalesnovananecesitarseenlasprximasinstrucciones,estasnosecomputan.

    OptimizacindeestadodeCPU

    LaCPUx86poseemuchosestadosinternos,loscualescambianlaformaenlaqueseevalanlasinstrucciones.Paraobtenerunabuenavelocidad,lafasedetraduccinconsideraquealgunainformacindelosestadosdelCPUx86virtualnopuedencambiarenl.Porejemplo,silossegmentosSS,DSyESposeenunabasecero,entonceseltraductornisiquierageneraunasumaparalabasedelsegmento.

    Cachedetraduccin

    Unacachde16MBalmacenalastraduccionesusadasmsrecientemente.Unaunidaddetraduccincontienesolounnicobloquebsico(unbloquedeinstruccionesx86terminadasporunsaltooporuncambiodeestadoenlaCPUvirtual,queeltraductornopuedededucirestticamente)

    Cdigoautomodicanteeinvalidacindecdigotraducido

    elCdigoautomodificanteesundesafoespecialenlaemulacindex86,dadoaque,cuandoelcdigoesmodificado,laaplicacinnoenvaningunasealalainstruccindeinvalidacindecach.Cuandoelcdigotraducidoesgeneradoparaunbloquebsico,lapginacorrespondientedelhost,estprotegidacontraescritura(conlallamadaalsistemamprotect()).Entonces,siunprocesodeescrituraesrealizadoalapgina,Linuxenvaunfallodesegmentacin.Qemuentonces,invalidatodoelcdigotraducidoenlapginaypermitelaescrituraalapgina.Lainvalidacincorrectadelcdigotraducidoesrealizadaeficientementemanteniendounalistaligadadetodoslosbloquestraducidoscontenidosenunapaginadada.Otraslistasligadassontambinmantenidasparadeshacerlaencadenacindebloques.Qemutambininvalidapginasdecdigotraducidocuandodetectaquesemodificanlosmapeosdememoriaconmmap()omunmap().CuandoseutilizaunMMUporsoftware,lainvalidacindecdigoesmseficiente:siunasiunapginadecdigodadaesinvalidadademasiadoseguidoporpermisosdeescritura,entoncesseconstruyeunbitmapquerepresentatodoelcdigodentrodelapgina.Todoalmacenamientodentrodeesapginachequeaelbitmapparaversielcdigorealmentenecesitaserinvalidado.Evitainvalidarelcdigocuandosolamentesehanmodificadodatosenlapgina.

    SoportedeExcepciones

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

  • usadosparaobteneraccesosamemoriainvlidos.ElestadoexactodelaCPUpuedeserdevueltodebidoaquetodoslosregistrosdex86sonalmacenadosenregistrosfijosdelhost.Elprogramcountersimuladoesencontradovolviendoatraducirelbloquebsicocorrespondienteybuscandodondeelprogramcounterdelhostestabaenelmomentodelaexcepcin.ElCPUvirtualnopuededevolverlosregistrosEFLAGSexactosporqueenalgunoscasosnosoncomputadosdadoalasoptimizacionesdelcdigocondicional.Noesunagranpreocupacinporqueelcdigoemuladopuedeserrecomenzadoencualquiercaso.

    EmulacindelaMMU

    ParalaemulacindelaMMU,Qemuutilizalallamadaalsistemammap().FuncionamientraselSistemaOperativoemuladonouseunazonareservadaporelsistemaoperativohost(comolazonasobre0xc0000000enunLinuxx86).Parapodertenerlacapacidaddeejecutarcualquiersistemaoperativo,QemutambinsoportaMMUporsoftware.Enesemodo,latraduccindelaMMUdedireccionesvirtualesafsicassonhechasencadaaccesoamemoria.Qemuusauncachedetraduccionesdememoriaparaacelerarlatraduccin.

    InterrupcionesdelHardware

    Demaneradesermsrpido,Qemunocontrolacadabloquebsicoporsialgunainterrupcindehardwareseencuentrapendiente,sinoqueelusuariodebellamar,asncronamente,unafuncinespecfica,paraanunciarquehayunainterrupcinpendiente.stafuncinreseteaelencadenamientodelbloquebsicoqueestactualmenteenejecucin..SeaseguraquelaejecucinvaaretornarprontoenelbucleprincipaldelemuladordelaCPU.Luegoelbucleprincipalpuedecomprobarsilainterrupcinestpendienteymanejarla.

    Detallesespecficosdelaemulacindeusuario

    TraduccionesdelasllamadasalsistemadeLinux

    QemuincluyeuntraductorgenricodellamadasalsistemaparaLinux.Esosignificaquelosparmetrosdelasllamadasalsistemapuedenserconvertidosparaarreglarlostemasde"endianness"yde32/64bits.Lasllamadasalsistemaparamanejarentradasalidasonconvertidaspormediodeunsistemagenricodescriptivodetipo.QemusoportaCPU'shostqueposeenpginasmsgrandesque4KB.Almacenatodoslosmapeosquehacenlosprocesosytratadeemularlallamadaalsistemammap()enloscasosdondelallamadammap()enelhostfallaraporunamalaalineacindepgina.

    SealesdeLinux

    Lassealesnormalesydetiemporealsonencoladasjuntoconsuinformacin(siginfo_t)comosehaceenelkerneldeLinux.LuegounpedidodeinterrupcinesrealizadoalaCPUvirtual.Cuandoesinterrumpida,unasealencoladaesmanejadagenerandounmarcodepilaenlaCPUvirtualcomoelkerneldeLinuxhace.Lallamadaalsistemasigreturn()esemuladapararetornardelmanejadordesealesvirtuales.Algunasseales(comoSIGALRM)vienendirectamentedelhost.OtrassealessonsintetizadasdesdelasexcepcionesdelaCPUvirtualcomoSIGFPEcuandoserealizaunadivisinporcero.LamscaradelasealbloqueadaesmanejadaporelkerneldelhostLinuxdemaneraquelamayoradelassealesdellamadasasistemapuedanserredirigidasdirectamentealkerneldelhostLinux.Solosigaction()ysigreturn()necesitansercompletamenteemuladas.

    Hilosyllamadaalsistemaclone()

  • lallamadaalsistemadeLinux,clone(),esusadaporlogeneral,paracrearhilos.Qemuusalallamadaalsistemaclone()delhostdemaneratalquesecreenhilosenelhostporcadaunoemulado.UnaCPUvirtualescreadaporcadahilo.LasoperacionesatmicasdelaCPUx86virtualsonemuladasconbloqueosglobalesdemaneraquesusemnticaespreservada.ActualmentehayalgunosproblemasdebloqueoenQemu.Particularmente,elvaciadotraducidodecachonoestaprotegidocontrareentrada

    Autovirtualizacin

    Qemufueconcebidodemaneraqueelpuedaemularseasimismo.Apesardenosermuytil,esuntestimportanteparademostrarelpoderdelemulador.Conseguirautovirtualizacinnoesfcildadoquepuedehabermuchosconflictosdeespaciosdedireccionamiento.QemuresuelveesteproblemasiendounobjetocompartidoELFejecutablecomoelintrpreteELF"ldlinux.so".Deesamanerapuedeserrealocadoenelmomentodecarga

    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

    SolamenteposeesoporteparalaslibrerasgrficasSDLyCocoaapesarqueexisteunparcheparaGGI

  • MAQUINAVIRTUALVMWARE

    StanfordhasidolacunadeempresastcnicasycientficastanimportantescomoHewlettPackard,CiscoSystem,Yahoo,GoogleyVMwareentreotras.VMwareesunsistemadevirtualizacinporsoftware.Unsistemavirtualporsoftwareesunprogramaquesimulaunsistemafsicoconcaractersticasdehardwaredeterminadas.Cuandoseejecutaelprograma,proporcionaunambientedeejecucinsimilaratodoslosefectosaunordenadorfsico.VMwareemulacompletamenteunaPCconunaplataformahardwaredeterminada.Elhardwareemuladonotienenadaqueverconelequipoquehacedeanfitrin,yaqueelsistemainvitadosoloveloscomponentesvirtuales.VMwarefuncionaenWIndowsyLinuxyproximamenteenMACO2.LaempresaVMwarebrindaasususuarioinfinidaddeproductosparaoptimizarlavirtualizaciondehardwareolasimulacindesistemasoperativosporsoftware.DebidoalafinalidaddeestamonografasolomostraremoslosproductosVMwareworkstation,VMwareESXserveryGSXserver

    Funcionamiento

    EncasodeWorkstationyGSXserverelfuncionamientoeselsiguiente:

    Aplicacin>SO>Hardware>VMware>SOHost>Hardware

    EstediagramaindicadederechaaizquierdalascapasenlasqueseimplantaVMware.Enlaprimeraencontraremosalhardwaresubyacente.EnlasegundaesdondesediferencianWorkstationyGSXserverdeESXserver.Yaqueenestasenecesitaunsistemaoperativobaseendondeejecutarlamquinavirtual(Estoafectaelrendimientoydesempeodelasmquinasvirtuales).Enlaterceraencontramosalamquinavirtualpropiamentedichalaqueemulaunhardwarecompletamentevirtual,queseencuentraenlacuartacapa.Siguiendoeldiagramaencontramoselsistemaoperativovirtualquepuedesermasdeuno.Luegoseencuentranlasaplicacionesqueestnvirtualmenteejecutndosesobreelsistemaoperativoantesmencionado.

    AdiferenciadelaversinESXserverquefuncionamsomenosdelasiguientemanera.

    Aplicacin>OS>Hardware>VMware>hardwarefsico.

    Enestecasoencontramoslamaquinavirtualenlasegundacapa,desdeaquseemulaelhardware,yluegoenlasiguientecapasealojaelsistemaoperativovirtual.Estaformadeubicarlamaquinavirtualenlasegundacapaimplicaquedichosoftwarehagalasfuncionesdeunsistemaoperativo.Loqueoptimizaconsiderablementelavirtualizacin.Estamaquinavirtualcuentaconestrategiasdepaginacinysegmentacinparahacerunmejorusodelosrecursosdememoria.

    VM1VM2VM3

    |||

    VMWare>virtualizacin>Hardwareemulado|||

    Hardwarefsico

  • Hardwareemulado

    Procesador

    IntelPentiumoposteriorAMDAthlonoposterior(DependiendodelaCPUoriginal)SoporteexperimentalparalasprocesadoresAMD64yIA32eRAMHasta3.6GBytesdependiendodelamemoriafsica

    UnidadesIDEHasta4unidadesIDEDiscosfsicosyvirtuales(mx.128GBytes)UnidadesCD/DVDROM

    UnidadesSCSIHasta7UnidadesDiscosfsicosyvirtuales(mx.256GBytes)SoportedeSCSIgenricoSoporteparaescneres,CD/DVDROM,unidadesdecinta,etc.ControladordeentradasalidaLSILOGICLSI53C1030Ultra320

    AnfitrincompatibleconeladaptadordebusMylex(BusLogic)BT958(solamentesobreWindowsXPconcontroladoresdedispositivoadicionales)

    MediosextrablesUnidadesCDROM/CDR/CDRW(fsicasoimgenesISO)UnidadesDVDROMUnmximode2unidadesde1.44Mbytes(fsicasocomoimgenes)

    HardwaregrficoVGAySVGAconBIOSVESA

    Puertos

    Hastaunmximode4puertosserie(COM)Hasta2puertosparalelosbidireccionales(LPT)DoscontroladoresUSB1.1UHCITecladocompatibleRatnPS/2

    Dispositivosdered

    Unmximodetresadaptadoresderedvirtuales(Ethernet)TarjetadesonidocompatibleconAMDPcnetPCIIICompatibleconSoundBlasterAudioPCI(sinsoporteparaMIDIniparajoystick)

    BIOSSoporteparalaversin6VESABIOSdePhoenixBIOS4.0conDMIv2.2/SMBIOS

    Detalles

    Paraquelaemulacinpuedaejecutarcualquieraplicacinconunavelocidadaceptable,esnecesarioquehardwareseabastanterpido.VMwarerecomiendaunPentiumIIAMDequivalente,256MBytesdeRAM,

  • unadaptadorgrficode16bityporlomenos20MbytesdeespaciolibreeneldiscoduroparaelsoftwareVMware.Porsupuestoquehabrqueaadirespacioendisco,paraqueestdisponiblealsistemaoperativoinvitado,yunatarjetadered,suponiendoqueelhardwarevirtualnecesiteaccederalared.

    VmwareESXserver

    Esunproductoparaservidores.Constituyeunacapadevisualizacinderecursosmontadadirectamentesobreelhardware,sinlanecesidaddeunsistemaoperativobase.YaqueESXserveresunsistemaoperativoensi.LafuncinprincipalesladevirtualizarygestionarlosrecursosentrelasmltiplesmquinasvirtualesmontadassobrelacapaVmware.

    Arquitectura:Diseadaparaelfuncionamientoenproduccindemltiplesmaquinasvirtualesdeformaindependientes.

    Virtualizacin:Proporcionaacadamquinavirtualunamquinafsicaidealizada,totalmenteaisladadeotrasmquinasvirtuales.

    Gestinderecursos:reaprovecharecursosdeunamquinavirtualaotramediantelamultiprogramacin.

    Caractersticas:Particionanadoenmquinasvirtuales,encapsulado,aislamientodefallosygestindinmicaderecursos.

    VmwareGSXserver

    Esunsoftwaredevirtualizacinenentornoscomercialescrticos.Simplificalasestructurasinformticasmediantelaparticinyaislamientodeservidoresenmquinasvirtualessegurasytransportables.VMwareGSXServerpermitequeestosservidoresdemquinasvirtualessepuedanadministrardeformaremotayestandarizarsobreunaplataformasegurayuniforme.Transformalosordenadoresfsicosenunconjuntodemquinasvirtuales.Lossistemasoperativosylasaplicacionesseaislanendistintasmquinasvirtuales.Losrecursosdelsistemaseutilizanencualquiermquinavirtual,dependiendodelasnecesidadesquesetengan,detalformaqueseconsigaunagestindecapacidadyuncontrolsobrelasinfraestructurastecnolgicas(hardware).Sepuedeutilizarparaimplantarlaconciliacinentreservidoresoparamejorarelsoportetcnicodesoftware.ConVMwareGSXServerhacequelaaltadisponibilidadseaeconmicayescalable,protegiendolasaplicacionescrticasylosdatosenunmximode64mquinasvirtualesaisladasysegurassobreunanicaplataformadehardware.

    VmwareWorkstation

    EsunpotentesofwareparavisualizacindeEscritorios(desktop).Ejecutamltiplessistemasoperativoscomo,MicrosoftWindows,LinuxyNovellNetWare,deformasimultneaenmquinasvirtuales.VMwareWorkstationproporcionamsopciones,mayorflexibilidadyunafuncionalidadmspotentequecualquierotrosoftwaredevirtualizacinquehayaenelmercado.

    Desdesulanzamientoen1999,VMwareWorkstationharevolucionadolaformaenquesedesarrollantantoelsoftwarecomolasinfraestructurastecnolgicasysehaconvertidoenunestndardefactoparalosprofesionalesdelastecnologasylosdesarrolladores.

    Lopodemosutilizarparadesarrollo,pruebaeinstalacindesoftware.SepuedencrearaplicacionescrticasbasadasenLinuxoMicrosoftydesarrollaryrealizarpruebassobreaplicacionesmltiplesendiferentessistemasoperativossimultneamentey,adems,archivarentornosdepruebasyrestablecerlosrpidamente.

    Asegurarcedelacompatibilidaddelasaplicacionesylamigracindesistemasoperativos.Sepuededarsoporteaaplicacionesexistentesalmismotiempoqueserealizalamigracinaunsistemaoperativonuevo

  • deunaformasegura,alavezquesepuedenrealizarpruebassobreestenuevosistemaoperativoantesdelainstalacin.

    Permiteexperimentarconlasnuevasaplicacionesoherramientasy,adems,distribuireinstalarsoftwareparademosyaplicacionescomplejasencualquierPC.

    Mejorarelsoportetcnicodesoftware.ConVMwareWorkstationsepuedenresolverproblemasrpidamenteyproporcionarunservicioalclientedecalidad.

    AdiferenciadelosemuladoresdeAPI(delinglsApplicationProgrammingInterfaseInterfazdeProgramacindeAplicaciones)comoWINE,VMwareworkstationemulaunordenadorcompletocomounprogramadesoftware.EldenominadosistemaoperativoinvitadofuncionadentrodelaemulacinVMwaresinquepuedadistinguiresteentornodelaPCdeverdad.

    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

    XenesunaMquinaVirtualdesarrolladaporlauniversidaddeCambridgeenEEUUquecorresobrearquitecturasx86.SeencuentrabajolalicenciadeGNUGeneralPublicLicence.FueelresultadadeXXXaosdetrabajo.ElobjetivodelequipoeradesarrollarunaVMquefueracapazdecorrermltiplesSistemasOperativosteniendoelmenordesperdicioderecursosposibles,esdecirquesepudieralograrundesarrollosimilaraldeunSOcorriendodeformanativa.

    Dichoobjetivofueconseguido,llegndosealograrperdidasderendimientoverdaderamentebajas,siendoincluso,eldesempeodeXen,superiorenotrosmbitos.

    Parapoderllevaracaboesto,elequipodedesarrollo,utilizunatcnicallamadaParavitualizacin.EstaSedescribirmasadelante.Peroloqueesimportantetenerpresente,esque,paraqueXenpuedafuncionarprecisaqueelSOhostposeaunportparaeste,obienestecorriendobajounmicroprocesadorquesoportelatcnicamencionada(LineaPacficaencasodeAMDyVanderboolenINTEL).

    LossistemasoperativosquetienenportsdesarrolladossonLinux,MacOS,BSDyWindowsXP.Enelultimoporcuestioneslegalesnoesposiblelanzarelportalpblico6.

    Xenescapazdecorrer100mquinasalmismotiempo(siempreycuandoelhardwaresobreelqueseejecutesoporteesto),brindandounaindependenciadeentreestasmuyefectiva.DeestaformacadasistemaoperativoquecorresobreunaVMdiferentenosepercatasobrelaexistenciadelosotrosSO.

    Lograrunaejecucincasinativaesunatareaquerequieretrabajarconmuchocuidadoalmomentodeimplementardiferentesaspectoscomoson:

    1. Administracindememoria

    2. AdministracindelaCPU

    3. AdministracindelosdispositivosdeE/S(discosduros,grabadoras/lectoras,Interrupciones,etc.)

    ParaverdequeformalograestoXen,analizaremosdeformaindependientelosapartadosrecinmencionados.

    Administracindememoria.

    EsteesunaspectomuyimportanteyaqueesunodelospuntosquemarcarnloptimoonodelaejecucindelasVM.Estosedebeaquesinoseadministrabienlamemoria,elSOseveraobligadoarealizarmuchosintercambiosconeldiscoduro.

    Laadministracinesdejadaalsistemaoperativohost,esteseencargaderesolverlospedidosdealocacinyliberacindememoria.ParapodermantenerlaindependenciassobrelasdiversasVMqueestncorriendo,Xendeberealizaralgunamodificacionesendichaadministracin.

    Loprimeroquehaceesreservarunespaciode64MBaltopedelamemoria.EstamemoriaesdedicadaaltrabajodeXen,ysolopuedeseraccedidaporeste.Estosedebealanecesidaddecontarentodomomentoconunespacioparaalmacenarsusdatos(quesearpido7).ElSOhostseencargadecolocarlospermisosnecesariosparaquesoloXenpuedautilizarla.

    OtroaspectoenelqueseinvolucraXenesenlospermisosdelamemoria.LosSOmodernosadministranlamemoriaatravsdesegmentos,estostienediversospermisosquedeterminanqueprocesopuedeaccederaestos.Porcuestionesdeeficienciaunsegmentopuedesercompartidoconconvariosprocesos(yaque

    6 MicrosoftasumequenopuedengarantizarelcorrectofuncionamientodelaVMdeXenaltenerqueparcharsuKernel(eldeWindows),porestemotivorecomiendanlautilizacindeVirtualPC,unaMquinavirtualadquiridaporestos.

    7 porestoesquesequiereevitarreservarmemoriaeneldiscoduro,yaqueesterepresentaunaamenazaaltiempoderespuesta,loquederivaenuntiempoderespuestamenor.

  • esmaseficientetenerunacopiadelosdatosquevariasdeeste).Paraevitarproblemasconaccesosindebidosdesegmentos,Xenrevisalospermisosconlosqueseadministranlosrecursos.

    Debetenerespecialcuidadocuandoseactualizanlastablasdememoria,paraquenoquedeinconsistente.EstosedebeaqueelSOhostenconjuntoconlasactualizacionesquellevaacaboXenpuedenafectarlaintegridaddelaspginas.

    UnultimoelementoquetieneencuentaXen,esquetodoslossegmentosdememoriaqueseanresultadodelasallocacionesdelasVMquecorrensobreeste,debenpoderseraccedidosporel.XendalailusinacadaVMquetieneunsegmentodememoriacontiguoparasuutilizacin,esdecirqueposeeunbloquedeXtamaoparautilizar.Sinembargoenlarealidadlamemoriaquelesbrindapuedeestardistribuidaensegmentosseparados.Deestaformaselograoptimizarlosespaciosdememoriaquesonotorgados.

    AdministracindelaCPU

    Coneltiempolosmicroprocesadoreshanevolucionadoensuarquitectura.Estostieneunvariosmodosenlosquedeterminanlaprioridaddelaejecucin.Esteesunaspectomuyimportanteenlaparavirtualizacin.Hacemosaquunadivisinenlostiposdemicroprocesadores:

    1. Losqueposeendosnivelesdeprioridad.Existeunniveldemayorprioridad(elcero).EnesteseejecutaelSO,dejandoelotroparalasinstruccionesdelasaplicacionesquecorrensobreeste.

    2. Losqueposeen5nivelesdeprioridad.Laarquitecturax86sebasaenunsistemadeanillos,siendoelanilloceroeldemayorprioridad,yel4eldemenor.DejandoelprimeroparaelSOyelultimoparaelsoftwaredelusuario.

    3. ProcesadoresdelaLineaPacficayVanderbooldeAMDeIntel.Estoscuentanconunatecnologaquebrindanunniveldeejecucinnuevo,queeselquemayorniveldeprioridadposee.Esteesusadoparalaparavirtualizacin.

    EntodosloscasosesposiblecorrerXen,peroinvolucrandistintasmodificacionesanivelsoftware.ParalosdosprimeroscasosesnecesarioqueexistaunPortdelSOhost,estosedebeaqueesnecesariodesplazarlounaniveldeprioridad,yaqueXennecesitaejecutarseenelmasbajo.EnelprimercasoelSOesdesplazadoalsegundonivelenconjuntoconlosprogramasdelusuario.Estedebeserprotegido(espaciosdememoria,prioridades,etc).ParaelsegundocasoelSOesmovidoalanillo1,mientrasqueXenseinstalaenelanillo0.EltercercasosonmicroprocesadoresquenodemandanrealizarunportdelSOhost.YaseencuentranpreparadosparaqueelSOcorraenlacapanumero1ylasmquinasvirtualespreparadasparaparavirtualizacinenlanumero0.

    XenprecisainstalarseenlacapadeprioridadmasbajayaquenecesitatenertodoslosprivilegiosparapoderrealizaroperacionescomoadministrarciertasLlamadasalsistema.Deestaformalaspuedemanejardeformamaseficiente,esdecirsincronizarlasconlasmltiplesVM.

    Antesdecontinuar,semostraraunatablacomparativaenlaqueseilustraelcostodeportarunSOxparautilizarXen.Elcostoestamostradoenlineasdecdigoquesonnecesariasimplementar.

    SO Linux WindowsXP

    Arquitecturaindependiente

    78 1299

    Red 484

  • SO Linux WindowsXP

    Driverdedispositivosdebloque.

    1070

    Xen(NoinvolucranDriver).

    1363 3321

    Total 2995 7620

    DispositivosdeEntrada/Salida.

    Xenposeeseencuentramuyinvolucradoenesteaspecto.Encuantoalosdispositivosdealmacenamientobrindaunaabstraccindeestos,proporcionandoasiunaindependenciaentrelasdistintasVM.AlmomentodecrearseunanuevaVM,Xendeterminaendondesemontaraeldispositivodealmacenamientoasicomosucapacidadypermisosqueestetendr.Estossealmacenanenunarchivoqueposeeunaestructuraespecial.

    AdemsproporcionaunaMemoriacompartidayunbufferasncrono.DeestaformacuandounprocesocorriendoenunaVMutilizaalgndispositivodeE/S,suspeticiones,datos,etc.sonenviadosenestebufferparasuanlisisysuposterioradministracin.

    Porltimoproporcionaunainterfazdeadministracindelasinterrupciones.Seencargadederivarlasadondeseannecesarias.PuedehacerqueelsistemaoperativoHostnolasvea,paracasoscomoWakeUpdeprocesos,porejemplo.

    Llamadasalsistemaytiempo.

    XenimplantounmecanismoquepermiteadministrarlasSyscallsquellevanacabolosSOqueseencuentracorriendoenlasVM.EstesedenominaHipercalls.Cuandounprocesollamaaunadeterminadapginadememoria,yestanoseencuentra,esprecisocargarlaparaqueestedisponible.Cuandounechocomoesteocurreentraenmarchaelmecanismodehiperllamadas.Xeninterceptaenestallamada,yrealizalasoperacionesnecesariassegnsusistemadeadministracindememoria.LuegodeechoestoregresaelcontrolalaVMquellevoacabolallamada.

    Lasmquinasconvencionalesusanunrelojinternoparadeterminarlahoraactual.TenerunaunidaddemedidadeltiempoesfundamentalparaelfuncionamientodelSO.Xenposeeunrelojvirtualyunrelojbase.ElprimerocomienzasucontadordetiempoenelmomentoenquesecrealaVMyluegolomideennanosegundosdesdeelmomentodesucreacin.EsusadoparahacerlosclculosdelSchedulerporejemplo.ElotroesunrelojconvencionalqueXendebeencargarsedeajustaralahoracorrectaymantenerloencorrectofuncionamiento.

    Dispositivodealmacenamiento.

    SoloellaVM0eslaautorizadaparaaccederalosdispositivosdedisco.Lasrestantesutilizanunaabstraccindeeste,queconsisteenunarchivoalmacenadoeneldispositivofsico,queendondesonalmacenadoslosdatos.

    Xenmantieneunalgoritmodecola,paraadministrarlospedidosdeE/Sdeldisco,quesonproporcionados

  • porlasdistintasVM.Buscahacerlaformamsrpidaderesponderalospedidosdeestos.

    MigracindeMquinasVirtuales.

    UnacaractersticamuyinteresantedeXeneslaposibilidaddepodermigrarlasmquinasVirtualesdeunacomputadoraaotra.Enesteprocesolamemoriaesmigradaiterativamentedesdeundispositivoalotro.Lointeresantedeesteprocesoesqueesposiblerealizarlosinhaberdetenidolamquinavirtual.Existeunpequeoretardodealrededorde60a300ms,quesonutilizadospararealizarajustesysincronizarlaVMquehasidocopiada.LatcnicademigracindeunaVMescomplejayabarcamuchosaspectosatenerencuenta(Memoria,datosalmacenadosendispositivosfsicos,etc.).LaMemoriaescopiadadeapginas.Siunprocesointentaaccederaunapginaqueestasiendocopiada,sedarunfalloysevolveratenerelaccesocuandoestedisponibles(queserluegodequehallasidocopiada).Sinembargo,elusuariopuedeutilizardistintaspolticasparaelcopiadodememoria.LamseficienteconsisteendetenerlaVMycopiarensutotalidadlamemoria.Estaalternativanoeslaapropiadaencasodequeseestecorriendounsistemaquenopuedeserdetenido.Otraalternativaeslacopiasegnlademanda.Primerocopialamemoriaesencialparapodercorreryluegocopialaspginassegnsondemandadasporlosprocesosqueestnenejecucin.Porultimoexisteunmtodollamadoprecopia,queconsisteencopiarnpaginasenintervalosdetiemposcortos.DurantelacopialaVMesdetenida.ParacopiarlosDatosdedispositivosfsicosseutilizantcnicassimilaresalasdememoria,siendomassimpleeltraspasodeestos.Paraevitarlacopialosservidoresgeneralmentesuelenutilizarotrotipodealmacenamientodedatos,comodispositivoscompartidos,porloquenoesnecesariohacerlacopiadelosdatos.

    EstatcnicapuedeserinteresantesiesnecesariomigrardeservidorunaVMydetenerestaimplicaconflictos.

    Acontinuacinsemuestrauncuadroqueresumeelprocesodemigracin8.

    Paso1PreMigracin.SeinicialanuevaVMenlaquesequieremigrarlosdatos(VMB).Estaesseleccionadocomoobjetivoparacopiarlosdatos.

    Paso2

    Confirmacin.LaVMAenvaunpedidodeconfirmacinalaVMB.EstadebeconstatardequedisponedelosrecursosnecesariosparasoportarlaVmquesecopiara.Encasodequeestonoocurre,Acancelalacopiaysiguecorriendosinningnefecto.

    Paso3Secopialamemoriadeformaiterativaobienconalgunodelosmtodosantesmencionados.

    Paso4SesuspendelaVMA.ENestemomentoseredireccionaeltraficodelaredaBysecopianlaspginasdememoriaquenohanpodidocopiarseantes.Esunaetapadereajustedelosdatos.

    Paso5Benvauncomunicadodequerecibicorrectamentelacopiadelaimagen.AseeliminayBseconvierteenelVMprimaria.

    Paso6LuegoqueBesactivadocomoprimariaesprecisoactivarelprocesodepostmigracin,queseencargadereconfigurarlosdriversdelosdispositivos.

    ComofuncionaXen?

    Enesteapartadomostraremoscomofuncionadesdeelmomentodesuinstalacin.ParasupruebafueutilizadoLinuxSUSU10.1conKernel2.6.Comonocontamosconmicroprocesadoresquesoportenparavirtualizacin,esprecisoinstalarXenconunconjuntodeparchesparaelKernel.Lospaquetesestndisponiblesparasuinstalacinencualquieradelosrepositoriosdeladistribucin.Unavezinstalados,Seagregaunanuevaopcindebooteoenlamquina,enlacualsepuedeiniciarelnuevokerneldelinux

    8 LiveMigrationofVirtualMachines.ChristopherClark,KeirFraser,StevenHand,JacobGormHansen,EricJul,ChristianLimpach,IanPratt,AndrewWarfield.

  • corriendobajoXen.

    AlIniciardeestaforma,secrealaprimeramaquinavirtualsobrelaquecorrerelLinuxhost(lanmero0).Xencreadostiposdekernel,unoqueposeeprivilegiosespecialesyotroquenolosposee.ElprimeroesdejadoparalaprimeraVM(la0)mientrasqueelsegundoesdejadoparalassucesivasVMquesepuedancrear.LanecesidaddehacerestoesquelaVM0precisaadministraralasrestantes,porellodebepoderhaceroperacionesespecialesquenoleestnpermitidasalasotras.Elpasoaseguirescrearlassucesivasmquinasquesenecesitencorrer.Enelmomentodehacerlosedebeespecificarlacantidaddememoriaquesequierequeutilicecomomximo,unespaciodediscoendondesevanaalmacenarlosdatos,unidadesdeE/S,etc.Unavezespecificadosestosparmetrossecrealamquinavirtualquesimulaunanuevacomputadoraconelelhardwareantesmencionado.

    PruebasdeRendimiento.

    Acontinuacinsemuestranbenchmarkrealizadossobredistintosaspectos,endondesevequeXenbrindaunrendimientoqueesmuysimilaraldeunSOcorriendosinningunaVM.Enalgunosaspectossepodrobservarqueelrendimientoesinclusosuperior.AcontinuacinsedetallaranpruebasoficialesderendimientollevadasacaboconXenVMqueseencuentranenelmercado.

    1. LaprimerapruebafuellevadacaboconunasuitedeevaluacinderendimientollamadaSPECINT200.EstaseencargaderealizarpruebasendistintosmbitosdelaPC.DentrodeellosseveelrendimientodelaCPU,pruebasdeE/S,pruebasdememoria,etc.

    2. EnlasegundasepuedeobservareltiempoensegundosquetomocompilarLinuxconkernel2.4conlacompilacinpordefecto.

    3. LasdospruebassiguientesfueronllevadasacaboconlabasededatosPostgreSQL7.Seevaluaronconlaconfiguracinpordefecto.Enlaprimeraseviolallegadadedatosdemltiplesusuarios,yenlasegundallegadaportransferenciaonline.

    4. dbenchesunprogramaparahacertestingdesistemasdearchivos.EmulalacargaenunservidorrealizadaporclientesconWindows95.

    5. Lasultimasbarras(SPECWEB99)esunasuitequeevalaelrendimientodeunservidorwebydelossistemasquelohostean.

    COMPARATIVAENTREMAQUINASVIRTUALES

    Seadjuntaarchivodehojadeclculos(comparativa.ods)endondesecomparandistintosaspectosdediversasmquinasvirtuales.Estatablafueextradadelawikipediaenespaol.

    SPECINT200(score)

    CompilaciondeLinux(Segundos)

    OSDBIR(tups/s)

    OSDBOLTP(tups/s)

    dbench(score)

    SpecWEB99(score)

    0

    200

    400

    600

    800

    1000

    1200

    1400

    1600

    1800

    567

    263172

    1714

    418518

    567

    271158

    1633

    400514554

    334

    80199

    310

    150

    550 535

    65

    306

    111172

    PruebasdeRendimiento

    LinuxNativoXen

    VmwareWorkstation

    LinuxUserMode

  • MALWARE

    EnesteapartadoharemosunaespecialreseaauntemaqueinvolucraenlaactualidadalasVM.Comomalwaresedenominaauntipoespecialdesoftwarequetieneintencionesperjudicialesparaelusuarioylamquinaenlaqueseestcorriendo.Estetienelaparticularidaddequeposeeuncontrolsobreelsistemamuchomasampliodeelquetienecualquierotrosoftwareconlamismaintencin.

    Elsoftwaremaliciosopuedecorrersobreunacapasuperioraladecualquiersoftwarequeseesteejecutando,generandodeestaformaquesepuedaninterceptarlassealesollamadasquerealiceelprimero.Porelloparapodercombatirlosenprecisoqueelsoftwaredeproteccinseencuentreenunacapainferioraeste.

    ElmalwaresepresentacomounamquinavirtualqueseinstalasobreunhardwaredeterminadoycorreluegosobrecapasinferioresalsistemaoperativoHost(queesunacopiadeloriginal).Otraformaesquesecorradosomasmquinasvirtualesenparaleloyenalgunasdeellasseencuentrainstaladoelsoftwaremalicioso.

    ElMalwaresacaprovechodedosaspectosquelebrindanpodercorrersobreunamquinavirtual,elprimeroserefierequealcorrersobreunaVMqueesindependientealasotrasloquelaaisladelosprogramasdeproteccin.Lootroqueutilizaesquepuedevermodificacionesqueocurranenelsistema,comocambioseneldisco,memoria,puertoscomoastambinlainterceptacindeseales,etc.

    Acontinuacinseexplicaracomohacenestosprogramasmaliciososparainstalarse.Inicialmentenecesitantenerprivilegiosaltosparapodermodificarelmododebooteodelamquina,deestaformasebooteaconlaVMmaliciosa.Parahacerestosepuedenutilizardiversastcnicasquevandesdeelusodeprogramasparadichainstalacin,comoadquisicindeunacontraseaderoot,etc.Unavezqueestahaconseguidobootearmodificaelsistemadeformaquepuedacorrersinqueesteseadviertadesuexistencia.Deestaformalograquedarinstalada.

    Luegodeestopuedecorrerdiversasaplicacionesmaliciosasqueafectenelsistema.Unodelosprimerospasosarealizaresdesactivarlossistemasdeproteccindelsistema.

    Existentrestiposdeataquesposibles

    1. Aquellosquenointerfierenconelsistema.Esdecirnoafectansufuncionamiento,laVMcorredeformaindependiente.

    2. Aquellosqueinteractanconelsistema,peroparainterceptarseales,porejemplopararobarinformacin.

    3. Aquellosquetienecomoobjetivodesestabilizarelsistema.Afectansufuncionamiento.

    SibienunMalwaretieneunformadefuncionamientoquepuedecomprometermuchoalsistema,paraqueestospuedancorrerelprecisoinstalarseenunamquinadeterminadayparaellosprecisadeprivilegiosaltos.Sinesterequisitonoesposiblequepuedacorrer.

    Losesquemasantesmostradossepuedenobservarenelsiguientegrfico

    [SistemaoperativoREAL]|\>[Malware]+[MquinaVirtual]

    \>[CopiadelSO]\>[Programasdelusuario]

    obienpuedeserdelasiguienteforma:

    [Mquinavirtual]\>[SOReal]+[MquinaVirtual]

    \>[Mquinavirtual]

  • \>[SOCopia]\>[Programasdelusuario]

    Lasegundaestructuraesmascomplejaynoestanfcilqueselleveacabo.Parapoderhacerestoesnecesarioutilizarlaparavirtualizacinobienunmicroprocesadorconsoporteparavirtualizacin.

  • CONCLUSION

    LasVMhanevolucionadomuchodesdelasprimerasquefueronimplementadasporlosMainframesdeIBM.Sinembargoconelpasodeltiemposepudoverquesemantuvieronlosconceptosiniciales.

    Elusodestasbrindasolucionesaproblemasdelosusuarios.Ademsexistendediversostiposparalasdistintasutilidades.Suprincipalaplicacinseharadicadoenelmbitoderedesparaoptimizarlautilizacindelosrecursos(Xen,VmWare,etc.),brindarfuncionesespeciales,compatibilidaddesistemasoperativos(JAVAvirtualmachine)yproporcionarseguridadenmbitosenlosqueesnecesarioprotegerelhardwarefsico.

    Apesardelasventajassehapodidoverquepuedenserutilizadasconfinesmaliciosos(Malwares),siendounaformadeataquesofisticadoquepuedecausargrandesdaosenlossistemasafectados.

    PodemosconcluirdiciendoquelaslasVMtieneunfuturoextenso,sepuedeobservarcomoelhardwareevolucionaparapoderbrindarlesmayoresfuncionalidadesyposeenunestadodemaduracinquepermitesuutilizacindeformasegura.

  • 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