4/24/2007

Interesante entrevista (politica)

Me hago eco de una entrevista que acabo de ver con la que no podría estar más de acuerdo. Aqui está el enlace.

Os pongo la presentación del entrevistado:

Hermann Tertsch del Valle-Lersundi (Madrid, 1958) ha dejado de trabajar para El País después de 22 años en ese periódico. Su palabra discordante con la línea editorial del rotativo en temas de política nacional le ha llevado a la dirección de El País a prescindir de sus servicios, en lo que muchos han entendido como una purga dentro de la redacción del primer periódico en ventas de España.Tertsch entró a trabajar con El PAIS en 1985 procedente de la agencia EFE. Fue corresponsal de El País en Bonn y Varsovia y, posteriormente, para Europa Oriental y cubrió el estallido de la guerra de los Balcanes. De 1993 hasta 1996 fue subdirector de El País y jefe de la sección de Opinión. Desde entonces ha trabajado en el mismo como enviado especial y entrevistador, editorialista y columnista. Ha sido y es colaborador de numerosos medios de comunicación españoles y extranjeros. Es una de las voces más críticas del periodismo español con la actual política del Gobierno del PSOE y con la figura de su presidente, José Luis Rodríguez Zapatero.

De Madrid

Bueno, ya he dio a Madrid y he vuelto, y mi impresión ha sido buena, he hecho tres entrevistas de las cuatro que me proponía y seguramente me cojan llamen de dos de los tres sitios. Bueno, os cuento un poco mi experiencia:

- Indra: llego al proceso de selección a las diez y media en vez de a las diez, pero me disculpan tras decirles que es que había salido de Granada a las cinco de la mañana, si no me hubiese equivocado de salida habría llegado a la hora. Cuando llego ya habían hecho la prueba de inglés, creo que era de comprensión y completar frases y todo eso. Tras esta prueba hice un prueba de numérica, de completar series, como por ejemplo 2, 3, 5, 7, .... . Sorprendentemente estando muerto de sueño creo que me salió bien, porque conteste a 45 de las 50 preguntas y con quien hable no le había dado tiempo a tanto. Después teníamos una entrevista personal, en la que no me hicieron ninguna pregunta de esas extrañas de "¿Que defectos tienes?" ni nada de eso, simplemente, que tienes planteado para el futuro, y cosas por el estilo. Me dijeron las condiciones del trabajo que estaba más o menos bien, 18000 mas tiques de comida mas seguro de vida, mediante un contrato en prácticas. También me dijeron de incorporarme para el día 7 de mayo, pero yo no acepté, debido a que no acabo hasta el 20 de Junio, así que me volverían a llamar en Junio. Tras esta entrevista tocaba una entrevista técnica que no hice, ya que no me iba a incorporar inmediatamente y ya me la harían cuando me volviesen a llamar.
- VASS: Esta es la entrevista que no hice, y es una pena porque me daba muy buena espina, me dijeron que cunado saliese de Indra les llamase para quedar a una hora en concreto, pero cunado llamé tenía todo el día completo excepto a las 4 y media y yo a las 5 debía estar en otra, asi que si puedo subir intentaré hacer la entrevista de nuevo.
- VO Consulting: Empresa chiquitita pero con muy buena pinta, fue solo una entrevista de trabajo con el director, me dio muy buena espina como lugar agradable para trabajar, además de estar en Madrid capital, por lo que podría llegar perfectamente en metro (a 200 metros). Estoy esperando a ver si me confirman que me cojen, porque me dijo que si pero que debía pensarlo un par de días y ya me avisaría, algo normal, debido a que son unos 20 empleados. Aquí me pidieron, como en todos los sitios, Java y .Net, y les gusto bastante que me defendiera en Linux, debido a que aunque no es su principal linea de negocio, siempre hay que montar algún servidor o algo, y también les gusto, que me gustara trastear por mi cuenta un poco de todo.
- Aptivo: Esta empresa no me gusto, ni me gusto el trato con quién me entrevistó, que lo percibí como bastante subido, como mirando demasiado por encima del hombro, como con desprecio, ni me gustó el trabajo que ofrecían. El trabajo consistía en trabajar con el cliente, pero en cualquier parte de España, es decir, cada semana en un lugar de España distinto, y yo actualmente, no estoy dispuesto a ello, creo que es la diferencia entre vivir para trabajar o trabajar para vivir. No digo que no acepte viajar cunado haga falta, me da igual que sea por España que por el extranjero, pero que sean periodos de tiempo concretos y puntuales.

Por otra parte, en la ciudad estuve muy agusto, impresiona cambiar de una ciudad manejera, como Granada, en la que en una hora vas andando de punta a punta, a una ciudad tan grande en que cualquier desplazamiento ya supone esa hora. Tenía gracia que cada vez que preguntaba una dirección nadie la sabía, aunque después el lugar estuviese a dos calles.

4/13/2007

A Madrid


Como casi todo el que estudia informática en Granada nos toca decidir entre quedarse a trabajar aquí arreglando ordenadores o programando por cuatro duros o liarse la manta a la cabeza y buscar trabajo fuera de aquí. Yo he decidido lo segundo.
¿Porque? Pues es sencillo, codo el que veo que se queda en esta ciudad, informático o no, o se hace comercial o trabaja en lo que encuentre por lo que le paguen. En esta ciudad hay trabajo para mecánicos, electricistas y cualquier gremio de los de toda la vida, pero no para universitarios, es lo que pasa por vivir en una ciudad de 250.000 habitantes con 80.000 estudiantes, que se descompensa la balanza entre oferta y demanda.
Conozco a dos informáticos que acabaron la carrera en los últimos años y uno esta arreglando ordenadores y otro se preparó unas oposiciones cuando vio que con buen expediente y siendo buen trabajador no llegaba a los 1000€ al mes.

Tras esta exposición de como veo la situación ahora estoy en un dilema, ¿como saber si la empresa a la que entro es buena? si fuese en Granada pues no tendría ese problema ya que seguiría viviendo con mis padres y el llegar a fin de mes no dependería de mi sueldo. Asi que ante la imposibilidad de poder saber donde me meto salvo por portales como trabajobasura, donde la gente solo escribe cuando se rebota, he decidido intentar trabajar en empresas medianas, alrededor de 50 o 60 trabajadores, antes que en las macro-consultorías como Coritel, Everis o Indra con miles de empleados. Mi decisión se basa en que en las empresas más pequeñas eres alguien, conoces a la gente y eres algo más que un dato en una estadística.
En todas las decisiones hay que elegir, y a lo que he tenido que renunciar en este caso es a la formación y cursos subvencionados que te suelen proporcionar todas estas empresas, algo, que para un novato como yo, es importante.

¿Algún consejo sobre mi decisión?¿Me he equivocado? Y también muy importante: ¿Que condiciones de trabajo debo aceptar como novato?

4/11/2007

Xen - Funcionamiento

Este articulo consta de tres partes:
  1. Introducción
  2. Paravirtualización
  3. Funcionamiento de Xen





Arquitectura de Xen:


Antes de empezar notaré que la maquina virtual anfitrión VM0 se suele notar como dominio 0 y las demás como dominio U.

En la máquina anfitrión el kernel se ejecuta en el nivel del microprocesador 0 así como el monitor o hypervisor. El resto de máquinas virtuales se ejecutan en el nivel 1. Las aplicaciones del todas las máquinas virtuales se ejecutan en nivel 3 el nivel con menores privilegios.

En paravirtualización todas las máquinas virtuales usan el procesador directamente haciendo el hypervisor de planificador del tiempo de ejecución de tal manera que las maquinas corran de forma nativa.

Cuando las máquinas virtuales acceden a un dispositivo este acceso pasa por el dominio 0 proporcionando el aislamiento necesario. De esta forma los controladores de los dispositivos de las máquinas virtuales no son más que una API que se comunica con el anfitrión, este posee la implementación de los controladores de los dispositivos virtuales que no son más que unas traducciones hacia los controladores nativos, realiza la operación, accediendo al dispositivo y devuelve el resultado a la máquina invitada.

Uno de los puntos más conflictivos de que se ejecuten las instrucciones de las máquinas virtuales nativamente sobre el procesador son las interrupciones por falta de página. Para esto el hypervisor genera una CPU virtual y una unidad de gestión de memoria (MMU) virtual, pudiendo así correr las máquinas con más o con menos procesadores que los reales.

Las aplicaciones que hacen uso de muchas interrupciones hardware provocan una caída de rendimiento debido a la intercesión del hypervisor entre el hardware real y el virtual, así que Xen intenta minimizar al máximo estas actuaciones.

Como también se puede ver en la figura Xen permite la ejecución de sistemas operativos sin modificación, hasta hace poco esto no era posible debido a la necesidad de que el kernel de estos se ejecutase a nivel de privilegio del procesador 1 en vez de 0, pero desde la salida de los últimos microprocesadores esto ya es posible por la inclusión de unas nuevas instrucciones al procesador, VT en el caso de Intel y Pacifica en el caso de AMD, que crean un nuevo nivel de privilegios por debajo del nivel 0 denominado “root-mode”, a partir de este nivel ya se pueden ejecutar cualquier sistema operativo sin modificación.

Tras dar una breve introducción a la arquitectura de Xen pasaremos a ver como lo hace.

Interfaz de la máquina virtual

Los temas a tratar por el hypervisor son los siguientes:

  • Gestión de memoria:

    • Segmentación: No se pueden usar descriptores segmentos con todos los privilegios y tampoco se pueden superponer los segmentos con el final del espacio de direcciones.

    • Paginación: El sistema operativo invitado tiene acceso directo a las tablas de paginación (TLB) pero para actualizarla debe validarlo el hypervisor.

  • CPU:

    • Protección: El sistema operativo invitado debe correr en un nivel de privilegios menor que el hypervisor.

    • Excepciones: El SO invitado debe registrar una tabla de manejadores de excepciones en Xen, de tal manera que, por ejemplo, las faltas de página las ejecute el Hypervisor.

    • Llamadas al sistema: Las llamadas al sistema se ejecutan directamente, para esto previamente se deben validar, de tal manera que no se mantenga el aislamiento entre máquinas virtuales.

    • Interrupciones: las interrupciones se remplazan por eventos del sistema.

    • Tiempo: Cada máquina virtual tiene una interfaz de tiempo, para mantener la diferencia entre el tiempo real y el tiempo virtual.

  • Dispositivos de entrada y salida: para los dispositivos virtuales se capturan sus interrupciones hardware y se sustituyen por un mecanismo de eventos.

Gestión de memoria:

Virtualizar la memoria es la parte mas difícil, requiere la intervención del hypervisor además de la modificación de cada sistema operativo invitado. El primer problema es la virtualización de la TLB, en otras arquitecturas se puede manejar por software, de tal manera que puedan coexistir diferentes TLBs de un modo eficiente, pero la arquitectura x86 no lo permite, lo que conlleva que para cada mdificación en esta deba de ser capturada y validada.

Sabiendo esto la solución a la que se ha llegado consta de dos puntos:

1.- El sistema operativo invitado es responsable de manejar y alojar las tablas de paginación, con la intervención de Xen para asegurar el aislamiento y la seguridad.

2.- Xen residirá en los últimos 64 MB del espacio de direcciones de cada máquina virtual para que la intervención en la TLB no conlleve un cambio de contexto hacia el hypervisor.

Cada vez que el sistema operativo invitado requiera alojar una nueva página en memoria esta se registrará en Xen, lo que quiere decir que el sistema invitado debe renunciar a escribir directamente en la tabla de paginación, lo que conlleva una modificación del sistema operativo.

La segmentación se gestiona de un modo similar, las unicas restricciones que se imponen a los descriptores de segmento del sistema operativo invitado son que: deben tener menor privilegio que Xen y que no se debe permitir ningún acceso a la porción de memoria reservada por este.

CPU:

La virtualización de la CPU tiene importantes connotaciones, la primera es que Xen debe correr en un nivel de privilegios mayor que los sistemas operativos, lo que viola la suposición de que el sistema operativo debe ser la entidad con mayores privilegios en la máquina.

Así dado que la arquitectura x86 consta de cuatro niveles de privilegios (o rings), el hypervisor se situaría en el nivel 0, el de mayores privilegios, los sistemas operativos invitados en el nivel 1 y las aplicaciones que corran sobre estos en el nivel 3, el de menores privilegios. El uso de los tres niveles de privilegios permite garantizar la seguridad de que ni las aplicaciones podrán ejecutar instrucciones en el modo kernel del sistema operativo ni el sistema operativo podrá ejecutar las instrucciones privilegiadas del hypervisor, proporcionando un nivel de seguridad entre las distintas máquinas virtuales y el hypervisor. El problema para usar esta técnica en otras arquitecturas, es que algunas solo poseen dos niveles de privilegios, lo que provoca que el sistema operativo corra al mismo nivel que las aplicaciones, es decir, que se pierda el aislamiento entre el kernel del sistema operativo y las aplicaciones.

Las instrucciones que solo podría ejecutar Xen serían las relacionadas con las tablas de páginas y otras como “halt” que sirve para detener el procesador.

Las excepciones son tratadas de un modo bastante sencillo, una tabla contiene los punteros a las rutinas de cada excepción, esta tablas la registra Xen tras validarla. Esto es posible debido a que la gran mayoría de las rutinas son idénticas a las que se usarían directamente sin virtualización. Las rutinas que no son iguales son las que se han explicado antes, las relacionadas con memoria, para asegurar el aislamiento. Cuando se intenta ejecutar una instrucción fuera del nivel 0 la rutina de Xen crea una copia del marco de pila de esta en el sistema operativo invitado y le pasa el control a la excepción registrada por Xen.

Normalmente solo hay dos tipos de excepciones que puedan afectar notablemente el rendimiento del sistema por su frecuencia, las llamadas al sistema y las faltas de página. La solución que se utiliza en el caso de las llamadas al sistema es simplemente revisarlas para que se puedan ejecutar a nivel de privilegios 1 y dejar que se ejecuten directamente. Las faltas de página son un caso distinto ya que solo se pueden ejecutar en nivel 0 lo que implica que siempre las deba procesar Xen. El proceso de ejecución de estas es el siguiente: Desde el sistema operativo anfitrión se mira la falta de página, se mira que el segmento al que pertenezca la página este cargado y que la carga de esta página no afecte a los segmentos marcados como estáticos por Xen, si el segmento no está en memoria se sale de la subrutina con “iret”, con lo que en el sistema invitado se detectaría una doble falta, y lanzaría la interrupción correspondiente.

Dispositivos de entrada y salida:

En la virtualización completa se emulan completamente los comportamientos de los dispositivos de la máquina virtual, en la paravirtualización únicamente se crea una capa de abstracción sobre los dispositivos reales. Así Xen provee una interfaz de dispositivos genéricos con los que se interactúa. Cuando una máquina virtual utiliza un dispositivo la orden val al controlador de esta máquina virtual que no es más que una interfaz del controlador real que está en el sistema operativo anfitrión, aquí se traduce la petición al los drivers nativos de los dispositivos físicos y se ejecuta la orden.

Esto aunque parezca que es lo mismo que en otras plataformas de virtualización completa como VMware Workstation, no es así, por ejemplo, en el caso del disco duro en nuestro caso es una partición real o por LVM de nuestro disco, en la virtualización completa el disco duro no es más que un archivo de nuestro sistema de ficheros.

Otro ejemplo de esto sería la tarjeta gráfica, mientras que en la virtualización completa es impensable ejecutar juegos en 3D, la tarjeta gráfica virtual de Xen es una S3 Savage con soporte completo OpenGL que se ejecuta a la velocidad de la tarjeta real, habiéndose hecho pruebas de rendimiento con una perdida menor del 10%.


Portar un sistema operativo a Xen:


Este es un punto crucial para el éxito de Xen, ya que se trata de modificar software ajeno, si bien con los últimos procesadores no es necesario, sigue siendo mas eficiente. Dejo una tabla que demuestra la facilidad de portar un sistema operativo:


Sección del SO

Número de lineas


Linux

XP

Independiente de arquitectura

78

1299

Controlador de red virtual

484

-

Controlador de dispositivo de bloques virtual

1070

-

Código de Xen específico

1363

3321

Total

2995

4620

Porcentaje del total de lineas

1.36%

0.04%

Conclusión:

La paravirtualización es un tema que va a dar mucho que hablar ahora que se ha añadido soporte a los microprocesadores de los diferentes fabricantes de la arquitectura x86. Dentro de poco aparecerán versiones híbridas entre la virtualización completa y esta como la futura VMware Workstation 6 y la respectiva de Parallels.

Yo creo que a partir de la popularización de estas técnicas será la evolución hacia los microkernels, ya que, que evitaría que yo construyese un servidor web corriendo únicamente sobre Xen, sin sistema operativo intermediario, gestionando directamente un sistema de archivos, creado por mi y orientado exactamente al uso que le quiero dar, o una base de datos, o otros tipos de aplicaciones que requieran un uso intensivo y especializado de los recursos como los juegos.

Dicen que la informática ha avanzado mucho, pero en términos de sistemas operativos esta evolución no ha sido tal, ha sido mas de aspecto que de funcionamiento, quizás sea este el paso que nos lleve a la evolución de este, propiciando la creación de seudo-sistemas operativos para propósitos específicos son las típicas barreras para su expansión, los controladores.

Xen - Paravirtualización

Este articulo consta de tres partes:
  1. Introducción
  2. Paravirtualización
  3. Funcionamiento de Xen



Los usos de la virtualización pueden ser muy variados, desde el simple echo de necesitar ejecutar una aplicación que no existe en tu sistema operativo hasta el testeo de sistemas operativos. Los más importantes usos son los siguientes:


  • Aprovechamiento de servidores: los servidores salvo en casos excepcionales están infrautilizados, con la virtualización se pueden correr varios sobre la misma maquina y así aprovechar mejor las maquinas, reduciendo el espacio ocupado por los servidores y el consumo de energía.

  • Desarrollo: Puedes estar desarrollando una aplicación que deba de ejecutarse en distintas plataformas, como ejemplo se podría mencionar el desarrollo de sistemas operativos o algo mucho mas común, el desarrollo de paginas web sobre Linux y su visualización sobre Internet Explorer.

  • Plataformas obsoletas: a menudo se necesita usar aplicaciones antiguas que solo corren sobre un hardware antiguo, de esta manera se podría migrar esta maquina real a una virtual y dejar de depender del hardware.


Historia de Xen:


Xen fue inicialmente un proyecto de investigación de la Universidad de Cambridge (la primer versión del software fue publicada a fines de 2003). Este proyecto de investigación fue liderado por Ian Pratt, quien luego formó una empresa -junto con otras personas- para dar servicios de valor agregado como soporte, mantenimiento y capacitación sobre Xen en Enero de 2005. Esta empresa es Xensource Inc. y actualmente mantiene Xen (junto con otras empresas y la comunidad), también se dedica a programar aplicaciones adicionales no libres para facilitar el uso, instalación y mantenimiento de Xen.

Dado que Xen está licenciado bajo GPL el código no puede cerrarse, y no es solo Xensource quien mantiene el código, sino que varias empresas importantes como IBM, Sun, HP, Intel, AMD, RedHat, Novell están sumamente involucradas en el desarrollo asignando programadores al mantenimiento de este software.


Paravirtualización:


En los ordenadores normalmente el software mas poderoso es el sistema operativo, ya que controla todos los recursos del CPU, como el uso compartido del mismo entre las aplicaciones, memoria virtual, I/O a dispositivos, entre otras cosas. Estas tareas las puede realizar gracias a que los procesadores modernos soportan varios niveles de privilegios, cuatro exactamente. El sistema operativo, el supervisor, corre en el nivel 0 (más privilegiado) y las aplicaciones en nivel 3 (menos privilegiado).

¿Cómo se adapta Xen a este esquema?, utiliza una técnica llamada “ring deprivileging”, donde el sistema operativo es modificado para poder ejecutarse en nivel 1 dejando el nivel 0 para el Xen, el cual es conocido como Hypervisor. Este mecanismo le permite a Xen tener más poder que el sistema operativo controlando los recursos a los cuales este puede acceder. Este esquema de usos de niveles es lo que se llama “paravirtualización”, termino que existe desde hace ya algunos años.

La modificación que deben sufrir los sistemas operativos para ser “virtualizados” en principio presenta una limitación, ya que esto solo puede realizarse en software abierto (o por el fabricante del software, en el caso del software propietario). Mas adelante veremos que esta limitación esta empezando a desaparecer.

El rendimiento superior de Xen es una de sus características principales, ya que los sistemas virtualizados corren directamente sobre el procesador, sin emulación. Sistemas de virtualización completa como VMware y Virtual PC o Virtual Server de Microsoft utilizan una técnica conocida como “binary translation”, donde las instrucciones privilegiadas son reemplazadas con fragmentos de código que simulan las mismas, esta técnica es muy compleja y provoca grandes perdidas de rendimiento, sobre todo en aplicaciones con un uso intensivo de dispositivos.



Soporte de sistemas operativos:


Actualmente se puede usar tanto como sistema anfitrión o invitado casi cualquier distribución de Linux, destacando las de Novel y RedHat, que han apostado muy fuerte por esta plataforma. También existen “ports” para NetBSD, openSolaris. Con los sistemas propietarios ocurre lo contrario, debido a que se necesita modificar el núcleo para que se ejecute este con un nivel de privilegios distinto, así que ninguno de la familia Windows se puede usar como invitado.

Sin embargo, esta limitación es eliminada con las nuevas tecnologías de virtualización de Intel y AMD, que permiten ejecutar sistemas operativos en nivel del procesador 0 sin necesidad de modificación alguna, dejando un nivel de privilegio especial para el “hypervisor”. Este nivel de privilegio especial se llama “root-mode”, el resto de los componentes corren en “non-root-mode”.


Funciones del hypervisor:


Hasta este momento he mencionado varias veces al hypervisor pero no lo he descrito. Este termino viene de supervisor, que es como se llama al software que maneja las maquinas virtuales en la virtualización completa (VMware Workstation). Así este termino llevado al extremo sería el hypervisor del que hablamos. Se podría describir como un microkernel con las siguientes funciones:

  • Planificación del tiempo de CPU.

  • Protección de memoria entre máquinas virtuales.

  • Encaminamiento de interrupciones.

  • Mantenimiento del tiempo.

  • Paso de mensajes entre máquinas virtuales.

De tal manera el hypervisor se ejecuta por debajo por debajo incluso del sistema operativo anfitrión proporcionando estabilidad, aislamiento entre maquinas y políticas de QoS (Calidad del servicio).Otros hypervisores importantes son:

  • Denali: utiliza la virtualización para proporcionar máquinas virtuales de alto rendimiento en ordenadores x86. La máquina virtual Denali da soporte a Sistemas Operativos mínimamente especializados hacia servicios de Internet. El sistema puede escalar a millares de máquinas virtuales. A diferencia de Xen, Denali no preserva el interfaz binario (ABI), y algunas aplicaciones deben ser recompiladas para que funcionen con las librerías del sistema operativo; en este sentido es similar a Exokernel.

  • VMware Server ESX: Hypervisor de la empresa VMware. Este tiene un funcionamiento y unos usos muy parecidos a Xen.

Paravirtualización VS microKernels:

Tras llegar a este punto es fácil pensar porque en vez de desarrollar un hypervisor, por que no desarrollar un microKernel, sobre el que corran las máquinas virtuales. Teóricamente no hay mucha diferencia, e incluso sería mejor ya que no deberías tener corriendo ningún sistema operativo anfitrión consumiendo recursos del sistema.

La razón de esto es mas bien práctica, si desarrollas un microKernel deberás desarrollar también controladores para la máquina y esto supone un costo muy grande, casi imposible para cualquier proyecto, además de ser uno de los principales impedimentos para que triunfe cualquier nuevo sistema operativo. De aquí que se use un sistema operativo anfitrión como intermediario solventando este problema.

Xen - Introducción

Lo prometido es deuda, aunque he tardado mas de lo que esperaba, aquí os lo dejo:

Espero que si veis fallos, incongruencias o cosas que no se entienden me lo digais, también tengo intención de publicar un poco mas adelante un tutorial sobre su manejo.

Este articulo consta de tres partes:
  1. Introducción
  2. Paravirtualización
  3. Funcionamiento de Xen

Introducción



Virtualización:


La virtualización se podría definir como una técnica para esconder las características físicas de los recursos de la computadora de la forma en que otros sistemas, aplicaciones o usuarios finales interactúan con éstos recursos.

O de un modo mas completo:

La virtualización es una técnica para ocultar las características físicas de los recursos de una computadora de tal manera que un solo recurso físico pueda parecer ser varios recursos, o viceversa, que muchos recursos parezcan como uno solo.

Tipos de virtualización:

Se pueden diferenciar dos grandes ramas, las orientadas a plataforma y las orientadas a recursos:

Virtualización de plataforma: la que involucra la simulación de máquinas virtuales.
  • Emulación o simulación: Es cunado se emula un hardware completo, un buen ejemplo de esto sería el emulador de recreativas “Mame”.
  • Virtualización nativa y virtualización completa: Se simula el hardware necesario para correr un sistema operativo sin modificar. Como ejemplo se puede mencionar a VMware Workstation.
  • Virtualización parcial: Es un termino medio entre la ejecución nativa y la virtualización, el sistema simula múltiples instancias del hardware pero no de todo. Esta técnica fue un acercamiento a las técnicas actuales y ya no se usa.
  • Paravirtualización: la máquina virtual no necesariamente simula un hardware, en cambio ofrece una API especial que solo puede usarse mediante la modificación del sistema operativo “guest”. Ejemplo de esta técnica son Xen y VMware Server ESX
  • Virtualización a nivel del sistema operativo: virtualizar un servidor físico a nivel del sistema operativo, permitiendo múltiples servidores virtuales aislados y seguros correr en un solo servidor físico, con la salvedad de que tanto el sistema anfitrión, como el invitado, comparten sistema operativo.
  • Virtualización de aplicaciones: Consiste en correr una máquina una aplicación sobre una máquina virtual usando los recursos reales. El ejemplo mas famoso hoy en día es la máquina virtual Java.
Virtualización de recursos: que involucra la simulación de recursos combinados, fragmentados o simples. Como ejemplo de este tipo de virtualización podríamos hablar de bases de datos distribuidas o de discos duros en RAID.