Iniciar sesión

Ver la versión completa : [Ayuda] Máquinas virtuales tipo 1 (Xen o KVM)



Dullyboy
27/03/2014, 19:06
Lo puse aquí pero no se la gente que lo leerá :D:
http://www.gp32spain.com/foros/showthread.php?127733-Virtualbox&p=1622565#post1622565

Leí ayer por meneame que hay dos tipos de maquinas virtuales, las de tipo 1 y las de tipo 2 es.wikipedia.org/wiki/Hipervisor

Hipervisor tipo 2: También denominado hosted, es software que se ejecuta sobre un sistema operativo para ofrecer la funcionalidad descrita. (VirtualBox y Parallels son de este tipo)

Hipervisor tipo 1: También denominado nativo, unhosted o bare metal (sobre el metal desnudo), es software que se ejecuta directamente sobre el hardware, para ofrecer la funcionalidad descrita.

¿Alguien tiene funcinando con una de tipo 1? Estuve intentado un poco ayer con Xen (en el portátil) en Debian pero todavía no conseguí nada. Hoy he estado probando un poco con KVM (en el sobremesa) y no tengo claro si está funcionando como tipo 2 o tipo 1.

Y es que viendo este video me ha picado mucho la curiosidad de ver si lo puedo poner:

http://www.youtube.com/watch?v=37D2bRsthfI&feature=youtu.be

DarkDijkstra
27/03/2014, 19:27
En mi trabajo monté en su día varias virtualizaciones en XEN sobre CentOS...
Básicamente instalas algunos paquetes en el host CentOS, entre ellos un kernel especial que es capaz de arrancar ese CentOS usando sólo una parte de los recursos. Una vez que has arrancado ese "host", puedes crear las distintas virtualizaciones, de hecho hay una interfaz gráfica muy cómoda, tipo VirtualBox y tal, donde puedes especificar que cores dedicar, cuanta memoria, etc

Lo hice hace ya un par de años, y recuerdo que con esa versión de CentOS en concreto tuvimos algún problema de dependencias, supongo que con las nuevas no habrá problema (o con Debian por ejemplo)

Si quieres dime que es lo que quieres probar exactamente e intento echarte un cable.

JoJo_ReloadeD
27/03/2014, 19:36
Yo he hecho funcionar xen e hipervisor de vmware, pero... tu idea es para usarlo para juegos? Olvidate, el soporte grafico que tienen suele ser bastante limitado, al menos hasta hace 3 años que fue la ultima vez que toque esto... y viendo que la finalidad de estos sistemas es escalar para meter mas maquinas, migrarlas, reemplazarlas... en definitiva, embeber sistemas (el sgbbdd, el servidor web, el dominio windows, ...)... como que el tema de videojuegos no es su objetivo.

Dudo que hayan evolucionado en ese sentido.

Los sistemas de virtualizacion que funcionan sobre SO* estan mas optimizados en el tema grafico, que creo que es lo que buscas.

* En la practica ambos sistemas de virtualizacion corren sobre un SO, nadie va a meterse a atacar un pc desnudo hoy dia, lo que pasa es que los 'nativos' llevan un linux, bsd o similar personalizado y optimizado para estos usos; y por aqui sacan mejor rendimiento que aquellos que 'corren sobre un SO', ya que sus kernels no estan tan optimizados para ello.

Espero que te sirva :)

rage
27/03/2014, 19:45
Hace mas o menos un año probe KVM en Ubuntu (13.04 creo) virtualizando un Windows 7. Solo fue una pequeña prueba, para comprobar la virtualización de la GPU.

Para ello necesitas que la CPU y la placa base soporten, ambas, VT-d en el caso de Intel y creo que se llama IOMMU en el caso de AMD.
En mi caso usaba la GPU integrada de la CPU (una Intel HD 2500 por VGA) en el host Ubuntu, mientras que para el Windows virtualizado usaba la gpu discreta (una AMD 7700 por DVI), sobre el mismo monitor.

Creo que no llegue a probar ningun juego potente. El sistema virtualizado funcionaba bien con la GPU de AMD, pero tenia problemas con la integracion del teclado y raton dentro de la maquina virtual.

Tengo que volver a retomarlo. :)

Un saludo.

PD: recuerdo que, entre otros, use un tutorial bastante bueno aunque era para Fedora. Si lo encuentro te paso el enlace, aunque igual ya está algo desfasadillo.

PD2: si buscas por VGA passthrough que es como se conoce esto, hay algunas cosillas por ahi.

Dullyboy
27/03/2014, 19:55
Gracias por contestar.

En mi trabajo monté en su día varias virtualizaciones en XEN sobre CentOS...
Básicamente instalas algunos paquetes en el host CentOS, entre ellos un kernel especial que es capaz de arrancar ese CentOS usando sólo una parte de los recursos. Una vez que has arrancado ese "host", puedes crear las distintas virtualizaciones, de hecho hay una interfaz gráfica muy cómoda, tipo VirtualBox y tal, donde puedes especificar que cores dedicar, cuanta memoria, etc

Lo hice hace ya un par de años, y recuerdo que con esa versión de CentOS en concreto tuvimos algún problema de dependencias, supongo que con las nuevas no habrá problema (o con Debian por ejemplo)

Si quieres dime que es lo que quieres probar exactamente e intento echarte un cable.

Quiero probar a hacer como el del video :D, con la gráfica integrada arrancar el huesped, y dejar la ati que tengo para el windows y que me vaya al 95% jajaja. El problema que tengo, aparte de la ignorancia en el tema, es que estas cosas que no he visto nunca funcionando no se si está bien configurado y está haciendo lo que supone, por eso preguntaba por


Yo he hecho funcionar xen e hipervisor de vmware, pero... tu idea es para usarlo para juegos? Olvidate, el soporte grafico que tienen suele ser bastante limitado, al menos hasta hace 3 años que fue la ultima vez que toque esto... y viendo que la finalidad de estos sistemas es escalar para meter mas maquinas, migrarlas, reemplazarlas... en definitiva, embeber sistemas (el sgbbdd, el servidor web, el dominio windows, ...)... como que el tema de videojuegos no es su objetivo.

Dudo que hayan evolucionado en ese sentido.

Los sistemas de virtualizacion que funcionan sobre SO* estan mas optimizados en el tema grafico, que creo que es lo que buscas.

* En la practica ambos sistemas de virtualizacion corren sobre un SO, nadie va a meterse a atacar un pc desnudo hoy dia, lo que pasa es que los 'nativos' llevan un linux, bsd o similar personalizado y optimizado para estos usos; y por aqui sacan mejor rendimiento que aquellos que 'corren sobre un SO', ya que sus kernels no estan tan optimizados para ello.

Espero que te sirva :)

El tipo dice que tiene un 95% del rendimiento en windows y que igual toqueteando podría sacar más (que no se si será verdad pero yo con el 95% creo que estaría agusto :D):
https://bbs.archlinux.org/viewtopic.php?id=162768

-----Actualizado-----


PD: recuerdo que, entre otros, use un tutorial bastante bueno aunque era para Fedora. Si lo encuentro te paso el enlace, aunque igual ya está algo desfasadillo.

PD2: si buscas por VGA passthrough que es como se conoce esto, hay algunas cosillas por ahi.

Por supuesto que me ayuda, gracias :).

nanoxxl
27/03/2014, 19:59
si quieres probar maquinas virtuales sobre hardware , sin so de por medio , solo el propio de software de virtualizacion yo solo e probado el VMware ESX/ESXi o vSphere ( este no lo e provado ) , se instalan en un pc sin so , pero solo lo e probado para crear servidores virtuales dentro de un servidor físico

Juk
27/03/2014, 20:09
si quieres probar maquinas virtuales sobre hardware , sin so de por medio , solo el propio de software de virtualizacion yo solo e probado el VMware ESX/ESXi o vSphere ( este no lo e provado ) , se instalan en un pc sin so , pero solo lo e probado para crear servidores virtuales dentro de un servidor físico

De estos me he montado unos cuantos. Es lo mismo ESXi que Vsphere, solo cambia la licencia, el soporte y las características completas, pero es lo mismo. Para usar Vsphere necesitas licencia de pago, para esx simple no. No obstante, no creo que le sirva para correr juegos.

nanoxxl
27/03/2014, 20:15
ok , la verdad es que hace tiempo que deje parado eltema de virtualizacion y me interesa mucho , seguiré este hilo con atención

K-teto
28/03/2014, 02:04
Me suscribo al hilo, mierda, ya me habeis picao otra vez, ale, ya tengo que hacer para la semana que viene que sigo de vacaciones y mi novia ya esta currando... y me aburrire... mierda!! os odio!! XDDDDDD
No me enseñeis mas cosas chulas que hacer!! XDDD

Mañana me pongo a buscar informacion y me lio con ello, tengo un disco duro de 250Gb completamente vacio, una tarjeta grafica extra que no estoy usando y puedo pinchar, tres monitores, 8Gb de ram... creo que sera suficiente.

Aiken
28/03/2014, 08:41
Y es que viendo este video me ha picado mucho la curiosidad de ver si lo puedo poner:


no se, mi pc del curro que no esta nada cuidado en hw, mueve la ventana de msdos igual, no se ....

Aiken

otto_xd
28/03/2014, 10:27
Cuando me pegue hace 3 anios con esto, no se podia sacar tanto rendimiento de las graficas, o eso me parecio leer.

Era un problema de direccionamiento de memoria, pero lei que era algo que se podria solucionar.

Por lo que veo han solucionado ese gap, y actualmente desde este tipo de virtualizacion se puede acceder a todo el HW casi sin overhead.

Tiene sentido, ya que los servicios de streaming de juegos deben de tener maquinas con muchas graficas, ram y ssd, e instanciar de forma dinamica lo que necesiten para cada juego

Sven
28/03/2014, 14:54
Puede un virus saber si está atacando un sistema virtualizado?

K-teto
28/03/2014, 15:30
Pues no voy a poner la mano en el fuego por ello, pero en principio, aunque lo sepa, un sistema virtualizado deberia ser como una especie de "jaula" de la cual no sale nada.
Pero por otro lado, hoy en dia se pueden pasar archivos de manera transparente de un SO a otro con solo arrastrar y soltar, se comparten directorios, etc...

En todo caso, con que el virus compruebe si se esta ejecutando algun software del que te instalan estos, en teoria podria deducir que es una maquina virtual, lo que no se es si podria salir de esa maquina.

Dullyboy
28/03/2014, 16:47
Vale, acabo de descubrir que no puedo hacerlo porque mientras la placa sí, mi procesador no soporta Vt-d (y yo pensaba que la placa era la que tenía que soportarlo únicamente). Eso sí, el proceso parece que es una pijada, activar las cosas en la bios, instalar la máquina virtual con virt-manager y transferirle la gráfica con dos clicks.

tognin
29/03/2014, 10:47
El año pasado cuando di el curso de certiicacion vSphere 5.1 nos comentaron que ya habia soporte para graficas y 3d pero nunca lo he probado. Podria mirarlo la semana que viene en el curro...

slaudos

Drumpi
31/03/2014, 14:07
Pero a ver, una cosa que no entiendo: una VM de tipo 1 funciona sin un SO por debajo, entonces ¿qué sentido tiene usarlo si puedes instalar directamente el SO en la máquina? Si es porque puedes tener varios SO y usarlos a la vez ¿es eso realmente posible? es decir, los SO tienen acceso directo al HW, pero entonces diversos SO están compitiendo por el mismo HW sin nadie que lo gestione ¿no? y en caso de ser el programa de máquinas virtuales el encargado de hacer dicha gestión, ¿no convierte eso, por definición, al VM de tipo 1, en un Sistema Operativo? y por tanto, la VM de tipo 1 es de tipo2 porque ya tiene un SO por debajo: él mismo.
A ver si me lo podeis aclarar ;)

Dullyboy
31/03/2014, 14:35
Pero a ver, una cosa que no entiendo: una VM de tipo 1 funciona sin un SO por debajo, entonces ¿qué sentido tiene usarlo si puedes instalar directamente el SO en la máquina? Si es porque puedes tener varios SO y usarlos a la vez ¿es eso realmente posible? es decir, los SO tienen acceso directo al HW, pero entonces diversos SO están compitiendo por el mismo HW sin nadie que lo gestione ¿no? y en caso de ser el programa de máquinas virtuales el encargado de hacer dicha gestión, ¿no convierte eso, por definición, al VM de tipo 1, en un Sistema Operativo? y por tanto, la VM de tipo 1 es de tipo2 porque ya tiene un SO por debajo: él mismo.
A ver si me lo podeis aclarar ;)
Lo gestionan la placa base y el procesador si no entendí mal, en plan el de tipo 1 dice al hardware "ey, que aquí hay sistemas operativos", mientras que el de tipo 2 se hace el trabajo él solo como otro proceso del SO anfitrión.

tognin
31/03/2014, 18:44
Pero a ver, una cosa que no entiendo: una VM de tipo 1 funciona sin un SO por debajo, entonces ¿qué sentido tiene usarlo si puedes instalar directamente el SO en la máquina? Si es porque puedes tener varios SO y usarlos a la vez ¿es eso realmente posible? es decir, los SO tienen acceso directo al HW, pero entonces diversos SO están compitiendo por el mismo HW sin nadie que lo gestione ¿no? y en caso de ser el programa de máquinas virtuales el encargado de hacer dicha gestión, ¿no convierte eso, por definición, al VM de tipo 1, en un Sistema Operativo? y por tanto, la VM de tipo 1 es de tipo2 porque ya tiene un SO por debajo: él mismo.
A ver si me lo podeis aclarar ;)

Las maquinas virtuales tipo 1 tienen sentido en entornos corporativos, pero evidentemente en tu casa no serian de mucha utilidad.
El rendimiento que un Hypervisor (yo en el trabajo uso vmware) saca del hardware esta a ños luz de una virtualizacion tipo 2, ya no por la gestion de recursos, si no por la ingente cantidad de utilidades que tiene (disponibilidad total en caso de averias, backups, etc...)
Tecnicamente un Hypervisor es un SO como dices, pero no es lo mismo. Es un SO que proporciona acceso al hardware para sus huespedes. No es un SO al uso evidentemente.

slaudos

Jurk
31/03/2014, 19:09
Osea, que Hypervisor es una especie de linux minimo para que sobre el corra otro SO, no?

Drumpi
03/04/2014, 18:54
Las maquinas virtuales tipo 1 tienen sentido en entornos corporativos, pero evidentemente en tu casa no serian de mucha utilidad.
El rendimiento que un Hypervisor (yo en el trabajo uso vmware) saca del hardware esta a ños luz de una virtualizacion tipo 2, ya no por la gestion de recursos, si no por la ingente cantidad de utilidades que tiene (disponibilidad total en caso de averias, backups, etc...)
Tecnicamente un Hypervisor es un SO como dices, pero no es lo mismo. Es un SO que proporciona acceso al hardware para sus huespedes. No es un SO al uso evidentemente.

slaudos

No sé, será que al no trabajar con ellos no entiendo el concepto que rodea a los virtualizadores de tipo 1, y las diferencias reales con los virtualizadores de tipo 2 o usar un SO instalado sobre la máquina directamente.
Y lo curioso es que "hypervisor" me suena a algo que vi, que me permitía conectarme de forma remota a un PC en una ventana, y hacer un "streaming" de lo que pasaba allí (lo siento, no me sale ni la palabra que lo define ni el nombre del programa más común usado para ello ^^U), pero usando parte del HW si el servidor no da abasto. Vamos, lo que es un terminal "pasivo" por decirlo de alguna forma.

Pero ya digo, que lo de los virtualizadores tipo1 me suena a algo que ya hacen los virtualizadores tipo2, o en todo caso, varios SO instalados en un mismo equipo, con copias de seguridad tipo "Norton Ghost" que puedes arrancar en cualquier momento, o una solución parecida.

Dullyboy
03/04/2014, 19:46
Como en la vida real la gente me ignora a veces cuando hablo :D.

tognin
04/04/2014, 00:16
No sé, será que al no ...

Pero ya digo, que lo de los virtualizadores tipo1 me suena a algo que ya hacen los virtualizadores tipo2, o en todo caso, varios SO instalados en un mismo equipo, con copias de seguridad tipo "Norton Ghost" que puedes arrancar en cualquier momento, o una solución parecida.

Creeme. Lo que hace vmware con vSphere, esta a años luz de lo que puede hacer una maquina virtual tipo2 con una solucion parecida a la que tu planteas.
El conocerlo y leer acerca de ello es darse cuenta que a nivel empresarial o de nube, el futuro ya esta aqui. Imagina tener un servidor, en el cual tienes 5 maquinas virtuales funcionando, con partes criticas de tu empresa (por ejmplo, servidor de apps, servidor web, bbdd, etc...). Imagina que de acuerdo a los recursos que cada maquina requiera en cada segundo, vSphere esta trabajando para que el resto no se enteren. Imagina que puedes programar la disponibilidad de recursos segun tramo horario, para que por las mañanas el servidor de Apps tenga mas memoria, ya que tus usuarios hacen un uso intensivo por las mañanas, y que por las noches le das mas recursos a la bbdd porque toene tareas de mantenimiento importantes. Imaginate que una de las maquinas se rompe, muere, y resulta que gracias a la alta disponibilidad, nadie se entera. Porque es como si no hubiese ocurrido gracias a la replicacion y al despliegue de maquinas virtuales... Todo esto automaticamente y sin mover tu un solo dedo, claro.
En fin, es muy complejo describir todo lo que hace algo comovSphere en un hilo (el manual que tengo yo sobrepasa las 1000 paginas) pero creedme cuando digo que una maquina virtual tipo 2 es un juguete al lado de una de tipo 1. Y un desperdicio de recursos por otro lado.

Ahora bien, una maquina virtual tipo 2 puede manejarse desde su host, una de tipo 1 siempre debe hacerse en remoto. Un servidor con un hypervisor no muestra ventanitas ni nada. Solo funciona y ya esta... Por eso digo que tiene sentido en entornos corporativos y no en hogares.

slaudos

Drumpi
06/04/2014, 20:15
Como en la vida real la gente me ignora a veces cuando hablo :D.

¿Por quién lo dices?


Creeme. Lo que hace vmware con vSphere, esta a años luz de lo que puede hacer una maquina virtual tipo2 con una solucion parecida a la que tu planteas.
El conocerlo y leer acerca de ello es darse cuenta que a nivel empresarial o de nube, el futuro ya esta aqui. Imagina tener un servidor, en el cual tienes 5 maquinas virtuales funcionando, con partes criticas de tu empresa (por ejmplo, servidor de apps, servidor web, bbdd, etc...). Imagina que de acuerdo a los recursos que cada maquina requiera en cada segundo, vSphere esta trabajando para que el resto no se enteren. Imagina que puedes programar la disponibilidad de recursos segun tramo horario, para que por las mañanas el servidor de Apps tenga mas memoria, ya que tus usuarios hacen un uso intensivo por las mañanas, y que por las noches le das mas recursos a la bbdd porque toene tareas de mantenimiento importantes. Imaginate que una de las maquinas se rompe, muere, y resulta que gracias a la alta disponibilidad, nadie se entera. Porque es como si no hubiese ocurrido gracias a la replicacion y al despliegue de maquinas virtuales... Todo esto automaticamente y sin mover tu un solo dedo, claro.
En fin, es muy complejo describir todo lo que hace algo comovSphere en un hilo (el manual que tengo yo sobrepasa las 1000 paginas) pero creedme cuando digo que una maquina virtual tipo 2 es un juguete al lado de una de tipo 1. Y un desperdicio de recursos por otro lado.

Ahora bien, una maquina virtual tipo 2 puede manejarse desde su host, una de tipo 1 siempre debe hacerse en remoto. Un servidor con un hypervisor no muestra ventanitas ni nada. Solo funciona y ya esta... Por eso digo que tiene sentido en entornos corporativos y no en hogares.

slaudos

Pero eso, más que máquinas virtuales, es el típico esquema "centralita-terminales" que lleva años usándose: la centralita que es un servidor sin consola, y los terminales que son consolas sin casi HW... Y aun así, en la centralita seguimos con el problema de que hay un "SO" gestionando diversos SO, por lo que a menos que el concepto de virtualizadores tipo 1 se aplique a todo el conjunto, seguimos hablando de una máquina con virtualizador tipo 2.
Aparte, luego también existen los sistemas distribuidos, que también parece que se ajusta en cierto odo a tu descripción, en la que puede haber, o no, una "centralita", pero en el que varios ordenadores comparten tanto HW como SW para realizar las tareas (¿que un usuario le falta CPU? se trasladan operaciones a la máquina de otro usuario que le sobre, algo similar al programa SETI).

tognin
07/04/2014, 11:58
Hombre. La estructura es parecida, pero no la ejecucion.
Piensa que esa estructura de "centralita-cliente" que comentas, gracias a la virtualizacion se alberga en una sola maquina. Los costes son infinitamente menores y los beneficios bastante superiores.

slaudos

Dullyboy
07/04/2014, 13:25
¿Por quién lo dices?
Porque te había contestado con esto y no me respondiste na' :).

Lo gestionan la placa base y el procesador si no entendí mal, en plan el de tipo 1 dice al hardware "ey, que aquí hay sistemas operativos", mientras que el de tipo 2 se hace el trabajo él solo como otro proceso del SO anfitrión.
Lo que es el concepto (dejando fuera el como se hace) con el esquema queda claro.
38319



Ahora bien, una maquina virtual tipo 2 puede manejarse desde su host, una de tipo 1 siempre debe hacerse en remoto. Un servidor con un hypervisor no muestra ventanitas ni nada. Solo funciona y ya esta... Por eso digo que tiene sentido en entornos corporativos y no en hogares.

slaudos
En el video que puse está manejando desde el mismo ordenador (desde linux que anfitrión del hipervisor, pero vamos que es para uso doméstico) con KVM como Hypervisor de tipo 1. Y de KVM se puede discutir si es de tipo 1 o 2 o mixto, pero es una cuestión de nomenclatura porque hace lo que tiene que hacer uno de tipo 1, y sino también se podría hacer con Xen en el que no hay esa discusión.

(slaudos para ti también :P)

Drumpi
07/04/2014, 18:30
Porque te había contestado con esto y no me respondiste na' :).

Lo que es el concepto (dejando fuera el como se hace) con el esquema queda claro.
38319



En el video que puse está manejando desde el mismo ordenador (desde linux que anfitrión del hipervisor, pero vamos que es para uso doméstico) con KVM como Hypervisor de tipo 1. Y de KVM se puede discutir si es de tipo 1 o 2 o mixto, pero es una cuestión de nomenclatura porque hace lo que tiene que hacer uno de tipo 1, y sino también se podría hacer con Xen en el que no hay esa discusión.

(slaudos para ti también :P)

No es que te hubiera ignorado, símplemente pensaba que ya había respondido, no voy a quotear a todo el hilo :D

Pero es lo que he dicho antes: una CPU o una placa base no gestionan nada, esos son los recursos a compartir. Es cosa del SO decidir quién usa qué, o sea, quién puede estar usando la CPU, el bus de datos o cuanta memoria tiene disponible cada programa. Por lo tanto, los esquemas que has puesto son correctos, pero si en el tipo 1 tienes más de un SO en funcionamiento, el hypervisor deja de actuar como los antiguos programas, en plan monotarea (todos los recursos son mios y hago lo que quiero) y funciona en plan multitarea, decidiendo en cada momento quien usa la CPU (aunque tengas dos SO, ambos no pueden usarla al mismo tiempo, deben turnarse) y el resto de recursos.

Un SO, por definición, es un software que actúa gestionando el uso del HW, así como de intérprete entre la capa HW y SW, por lo que, en el esquema del tipo 1, Hypervisor = SO, y por tanto, y ese es el problema que tengo, el esquema del tipo 1 y del tipo 2 son iguales, salvo que en el tipo 2 el SO host es Windows, Linux o Mac, y en el tipo 1 es el propio virtualizador (que encima, antes alguien había dicho que incluso algunos usaban un núcleo Linux, dándome aun más la razón).

Dullyboy
07/04/2014, 19:56
Pero es lo que he dicho antes: una CPU o una placa base no gestionan nada, esos son los recursos a compartir. Es cosa del SO decidir quién usa qué, o sea, quién puede estar usando la CPU, el bus de datos o cuanta memoria tiene disponible cada programa. Por lo tanto, los esquemas que has puesto son correctos, pero si en el tipo 1 tienes más de un SO en funcionamiento, el hypervisor deja de actuar como los antiguos programas, en plan monotarea (todos los recursos son mios y hago lo que quiero) y funciona en plan multitarea, decidiendo en cada momento quien usa la CPU (aunque tengas dos SO, ambos no pueden usarla al mismo tiempo, deben turnarse) y el resto de recursos.

Lo que yo decía de que gestionen el procesador y la placa es por esto:
https://es.wikipedia.org/wiki/Virtualizaci%C3%B3n_x86#Soporte_hardware
Pero sí, el que manda las instrucciones de los SO huespedes es el hipervisor.


Un SO, por definición, es un software que actúa gestionando el uso del HW, así como de intérprete entre la capa HW y SW, por lo que, en el esquema del tipo 1, Hypervisor = SO, y por tanto, y ese es el problema que tengo, el esquema del tipo 1 y del tipo 2 son iguales, salvo que en el tipo 2 el SO host es Windows, Linux o Mac, y en el tipo 1 es el propio virtualizador (que encima, antes alguien había dicho que incluso algunos usaban un núcleo Linux, dándome aun más la razón).

Estoy buscando para no mentir, así que tomalo con pinzas hasta que encuentre un fuente fiable o un contraejemplo :D. Creo que la diferencia está en la forma de comuncación con el hardware, en una tipo 2, cuando el SO huesped quiere realizar una operación, la maquina virtual la tiene que traducir al SO anfitrión, que la tiene que mandar al hardware, recoje la respuesta, se la da a la maquina virtual que la tiene que volver a traducir para que la entienda el huesped. Mientras, en una tipo 1, cuando un SO huesped quiere realizar una operación este se la manda la hipervisor, que la manda "en bruto" al hardware y se le devuelve la respuesta solo preocupandose de hacerlo ordenadamente para el resto de SO huespedes. En un ordenador x86 con uno del tipo 2 puedes virtualizar un SO para ARM, con uno tipo 1 no.

Lo otro es fácil :), un hipervisor de tipo 1 sí es un SO (o casi dependiendo de la definición, pero sí, se corresponde con tu definición) y sí los hay que usan núcleos de linux (la "K" de KVM es de Kernel, pero eso decía que se puede decir que es de tipo 1 o 2 o mixto, pero que el para caso patata porque hace lo mismo que Xen con él que no hay discusión :)).

Vale lo he encontrado antes de acabar de escribir, aunque resulta que hay más tipos, jajaja (y puede que ese sea el problema que tenías, porque yo solo pensaba en los segundos que eran los que me interesaban :D):

Los hipervisores de tipo 1 a su vez pueden ser de dos tipos:

i) Monolíticos: son hipervisores que emulan hardware para sus máquinas virtuales.

Esta aproximación, usada por productos como VMWare ESX, obliga a usar una gran cantidad de código que se interpone entre los recursos físicos reales y las operaciones de acceso a ellos efectuadas por las máquinas virtuales.

El proceso que sigue una llamada a hardware en un sistema virtualizado usando un hipervisor de tipo monolítico es:

1) El hardware emulado debe interceptar la llamada.
2) El VMM redirije estas llamadas hacia los drivers de dispositivo que operan dentro del hipervisor, lo cual requiere de numerosos cambios de contexto en el código de la llamada.
3) Los drivers del hipervisor enrutan la llamada hacia el dispositivo físico.

Este funcionaminto obliga a desarrollar drivers específicos para el hipervisor de cada componente hardware.

ii) De MicroKernel: en esta aproximación el hipervisor se reduce a una capa de software muy sencilla, cuya única funcionalidad es la de particionar el sistema físico entre los diversos sistemas virtualizados.

Con esta manera de funcionar los hipervisores de microkernel no requieren de drivers específicos para acceder al hardware.

En el caso de Hyper-V, que es la solución de virtualziación de Microsoft basada en hipervisor de tipo 1 de microkernel, el acceso a los recuros físicos se hace desde la partición primaria, usando los drivers nativos de Windows Server 2008 R2.

En las particiones hija se utilizan drivers sinténticos, que son simplemente enlaces a los drivers reales ubicados en la partición primaria.

De esta manera los hipervisores de microkernel no sólo aumentan el rendimiento al reducir el código intermedio y el número de cambios de contexto necesarios, sino que también aumentan la estabilidad de los sistemas, al haber menos componentes, y sobre todo la seguridad, al reducir la superficie de ataque del hipervisor.

http://www.datakeeper.es/?p=716

Drumpi
12/04/2014, 20:42
Mmmm, sí y no. A ver, cuando digo que un SO es el puente entre SW y HW, no significa que se dedique a transformar llamadas como READ o WRITE a una serie de unos y ceros y señales eléctricas (que también), sino que aunque el HW use código máquina directamente (ya sea ASM o cualquier lenguaje de ultra-bajo nivel), es el SO el que debe decidir si ese programa tiene permiso para usarlo, si debe estar contenido en un contexto (ya sea por cosas como firewalls o porque esté en modo invitado o administrador) y durante cuanto tiempo puede usarlo, porque entraría en conflicto si otro programa quiere usar, por ejemplo, la gráfica al mismo nivel: no se pueden mezclar instrucciones de dos programas en la CPU sin cambiar los valores internos de los registros, las posiciones de memoria, etc...

Que es lo que parece que hacen los hipervisores de microkernel: se dedican a cambiar el contexto de ejecución cada vez que van a hacer una tarea de un SO virtualizado distinto. Ya digo, eso es una tarea de SO, porque el resto ya lo hacen los SO clientes.
Pero eso de los hipervisores monolíticos no cuadra con el concepto de "virtualizador", sino más bien con el de "emulador", que es diferente, porque añade HW virtual. Los virtualizadores, hasta donde yo sé, no hacen transformaciones de comandos entre arquitecturas HW, sino sólo de SW (no sé si ejecutan instrucciones DirectX sobre un host Linux directamente en la gráfica, o por el contrario convierten llamadas DX a OGL del sistema Linux, y luego se manda al HW) y suelen ser cosas muy simples.
Por eso insisten tanto en WINE que el programa "Wine Is Not an Emulator".

Dullyboy
04/01/2019, 20:19
¿Desde 2014 hasta ahora alguien tiene montado algo así funcionando? Porque querría hacerlo yo ahora que voy a cambiar de PC :).
https://www.gp32spain.com/foros/showthread.php?161558-Quiero-comprar-PC-nuevo&p=1849462#post1849462

rage
04/01/2019, 22:21
¿Desde 2014 hasta ahora alguien tiene montado algo así funcionando? Porque querría hacerlo yo ahora que voy a cambiar de PC :).
https://www.gp32spain.com/foros/showthread.php?161558-Quiero-comprar-PC-nuevo&p=1849462#post1849462

Yo la verdad que no lo he vuelto a probar, igual es momento de retomarlo :D

Han salido tambien nuevas tecnologias especificas para graficos como te he indicado en el otro hilo que has abierto

Dullyboy
12/01/2019, 14:27
La Vega 64 descartada también que tiene bugs al hacer el VGA passthrough. Al final tendré que ir a por una 590.

Dullyboy
18/08/2020, 23:54
Madre mía, no había puesto nada. Al final conseguí hacerlo funcionar hace un año ya, a base de sudar y leer mucho en los foros de level1techs.com. Con Debian y el kernel 5.2 tuve que parchearlo, pero desde el 5.4 creo que era va todo bien y ya no tengo miedo de actualizar.
Con un Ryzen 2700X y una Taichi X470, gráfica para Debian una Nvidia GTX 1060 3GB y para Windows la Radeon RX 590.

No he hecho medidas de rendimiento, pero lo que es la experiencia es totalmente indistinguible, probado con el Trackmania :awesome: .

SplinterGU
21/08/2020, 06:31
Madre mía, no había puesto nada. Al final conseguí hacerlo funcionar hace un año ya, a base de sudar y leer mucho en los foros de level1techs.com. Con Debian y el kernel 5.2 tuve que parchearlo, pero desde el 5.4 creo que era va todo bien y ya no tengo miedo de actualizar.
Con un Ryzen 2700X y una Taichi X470, gráfica para Debian una Nvidia GTX 1060 3GB y para Windows la Radeon RX 590.

No he hecho medidas de rendimiento, pero lo que es la experiencia es totalmente indistinguible, probado con el Trackmania :awesome: .

a ver si entendi, tienes un Ryzen con 2 placas graficas, 1 para cada operativo? si es asi, no se puede usar 1 sola grafica y switchear entre operativos?

Dullyboy
21/08/2020, 10:19
a ver si entendi, tienes un Ryzen con 2 placas graficas, 1 para cada operativo? si es asi, no se puede usar 1 sola grafica y switchear entre operativos?

Poder creo que se puede, pero es más complicado y según lo tengo ahora puedo usar ambos a la vez. Tener puesto un juego en Windows en la tele, y usar Debian en el monitor mientras.