Cómo funciona la virtualización clásica, VT-x y AMD-V (ISO - 4.2)

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ย. 2024

ความคิดเห็น • 24

  • @LGaugen
    @LGaugen 3 ปีที่แล้ว +2

    ¡Qué gran descubrimiento! me pareces un docente brillante, explicas con sencillez y precisión. Muchas gracias por compartir tu conocimiento.

    • @chess.6507
      @chess.6507 7 หลายเดือนก่อน

      Pienso igual! Lo encontré de casualidad y estoy viendo las explicaciones desde el principio, me estoy enterando más en sus vídeos que en los meses que llevo de clases online. Bravo por este maestro 👏👏👏 Gracias @imesinet! 🙌

  • @vicentej
    @vicentej 3 ปีที่แล้ว +1

    Muy buena explicación, me ha ayudado muchísimo. Muchas gracias!!!

  • @amperioamperiano5003
    @amperioamperiano5003 4 ปีที่แล้ว +2

    Buen video , gracias por compartirlo en youtube

  • @rbonuccirandybonucci794
    @rbonuccirandybonucci794 4 ปีที่แล้ว +1

    Excelente explicación, hay que mandar un exterminador del hardware al SO, jajaja

  • @thh1010
    @thh1010 5 หลายเดือนก่อน

    Si VT-X no está activado, si tengo un programa ejecutando sobre el SO y realizo una instrucción de anillo 0, eso produce un fallo o la puede ejecutar normalmente?

    • @imesinet
      @imesinet  5 หลายเดือนก่อน

      Sin VT-x o AMD-V un SO virtualizado no debería poder funcionar, porque cualquier SO necesita instrucciones de anillo 0.
      La razón por la que aún así funcionan es una de dos:
      - El SO detecta que está siendo virtualizado y se paravirtualiza, emulando instrucciones de anillo 0 con otras de anillo 3.
      - El VMM detecta que no hay instrucciones de virtualización y comprueba todas y cada una de las instrucciones del SO antes de enviarlas y emula las que fueran a causar falla. Esto funciona pero es mucho más lento y mucho más trabajo para el VMM.

    • @thh1010
      @thh1010 5 หลายเดือนก่อน

      @@imesinet Entonces si no tengo VT-x, necesito un VMM que capture y emule si o si cada instrucción? O un SO paravirtualizado. Por otra parte, si tengo un pc sin VT-x, que le impide a un proceso (virtualizado o no) realizar instrucciones de anillo 0 si en x86 eso no produce fallas para que el SO las detecte y mate el proceso?
      Gracias!

    • @imesinet
      @imesinet  5 หลายเดือนก่อน +1

      @@thh1010 Si el VMM permitiera ejecutar un SO no emulado ni paravirtualizado sin VT-x el ordenador se colgaría inmediatamente.
      Las instrucciones de anillo 0 no se restringen porque sí, afectan a partes delicadas del sistema. Un ejemplo rápido: un SO tiene guardada en una zona de memoria el estado de sus periféricos con DMA. Un SO virtualizado podría ejecutar una instrucción que sobreescriba esa zona de memoria, inutilizando al SO anfitrión y por tanto dejando inutilizable también el VMM y a sí mismo.
      Las fallas son necesarias y útiles, delegan una parte importante del SO en el hardware y eso hace los SO más rápidos y más seguros.

    • @thh1010
      @thh1010 5 หลายเดือนก่อน

      @@imesinet graciass

  • @nexus4fan
    @nexus4fan ปีที่แล้ว

    de pcem no hablas?

  • @RANDOM-ix6pn
    @RANDOM-ix6pn 2 ปีที่แล้ว

    Excelente contenido.
    Tengo más dudas.
    Espero puedas ayudarme
    ¿Porque se puede ejecutar una máquina virtual con Intel VT-D pero sin Intel VT-X?
    ¿Porque el rendimiento sin Intel VT-X es tan malo?
    ¿Cuál es la diferencia entre Virtualización activada y compatibilidad con Hyper-V en Windows 10?
    ¿Son necesarias las instrucciones Intel VT-X para que el SO invitado (en este caso Hyper-V) gestione de manera correcta la arquitectura SMT?

    • @imesinet
      @imesinet  2 ปีที่แล้ว +1

      - El VT-d y el VT-x atienden cosas distintas. El VT-d da acceso exclusivo a dispositivos y el VT-x sirve para que los accesos al estado privilegiado den falla. Se pueden usar por separado, pero no se me ocurre qué utilidad podría tener usar VT-d sin VT-x, porque limitaría mucho los posibles SO vitualizados.
      - Porque toca emular muchas instrucciones que podrían causar falla y sin VT-x no la causan. Se emula en lugar de usar virtualización clásica y la emulación es muchísimo más lenta.
      - Ni idea. No sé qué es la virtualización activada.
      - No. El SMT no tiene nada que ver con el VT-x hasta donde lelgan mis conocimientos.
      Un saludo.

    • @RANDOM-ix6pn
      @RANDOM-ix6pn 2 ปีที่แล้ว

      @@imesinet Agradezco tu respuesta.
      Soy un novato en esto. Recientemente Hyper-V de Microsoft implementó GPU-P. Desde mi entendimiento, permite asignar una parte de una GPU a una máquina virtual en Hyper-V. Con varios ajustes, se puede usar y obtener un excelente rendimiento (hay problemas con Open GL). La máquina virtual funciona, el rendimiento en juegos es bueno. Pero el CPU sufre. Quiero habilitar el SMT en la máquina virtual. Aparentemente se puede hacer modificando el núcleo de ejecución de Hyper-V. Esto ya lo hice. Ya hice las comprobaciones correspondientes en poweshell. Pero en la máquina virtual siguen apareciendo 3 núcleos 3 hilos. Seguro Microsoft deberían aparecer 3c/6h. ¿Ahora te pregunto Intel VT-X posibilita el uso de vários hilos por núcleo en una máquina virtual?
      Muchos emuladores y monitores VM dicen que esto posibilita la asignación de mas núcleos. Por desgracia mi placa base solo tiene Intel VT-D, y llevó horas leyendo e investigado, para entender porque no se habilitan 2 hilos por núcleo en mis maquinas virtuales.

    • @RANDOM-ix6pn
      @RANDOM-ix6pn 2 ปีที่แล้ว

      @@imesinet El CPU es una muestra de ingeniería de un Intel i7 9850H. Actualmente esta a 5.1GHZ con 6c/12h. Es compatible con todos los sets de instrucciones de intel. La única limitación, es que la region de Intel ME. está desabilitada (es la única condición para que pueda funcionar). Desconozco si esta cuestión límite la virtualización de intel de alguna forma. Todo esto es porque quiero montar un servidor para videojuegos para que cuándo vienen amigos a casa, poder ejecutar varios juegos de forma simultánea y jugar todos. Además el cliente Parsec, permite compartir la PC con alguien del exterior en una laptop, pc, teléfono , tableta. Únicamente recurriendo a las capacidades de decodificación de dicho dispositivo. Tengo amigos que no pueden costearse una PC o consola, y compartir una máquina virtual a través de este cliente les permite jugar conmigo usando mi PC. Ya lo he hecho, y es fantástico, pero el CPU produce problemas de rendimiento. La GPU por otro lado va sobrada incluso con 3 personas jugando. Si llegaste hasta muchas gracias. De nuevo felicitaciones por tu contenido. Un saludo

    • @imesinet
      @imesinet  2 ปีที่แล้ว +1

      @@RANDOM-ix6pn No he necesitado usar Hyper-V y no sé qué tecnología hay debajo de ese GPU-P. No te puedo ayudar en esos detalles.
      Lo que me dices de que tu placa soporta VT-d pero no VT-x no lo creo posible. VT-x es una tecnología mucho anterior y mucho más básica, lo más probable es que simplemente en la BIOS VT-x tenga cambiado el nombre, normalmente suele llamarse algo parecido a 'Enable Virtualization'. Lo más probable es que tengas ya VT-x activado. Si quieres estar 100% seguro, instala VirtualBox y prueba a instalar un Windows 10 de 64 bits (el 11 de momento no funciona en VBox). Si te deja instalarlo es que tienes VT-xactivado.
      Un saludo.

    • @imesinet
      @imesinet  2 ปีที่แล้ว +1

      @@RANDOM-ix6pn Tu plan de poner varias máquinas virtuales compartiendo recursos me parece muy bueno. Para algo así yo no usaría Hyper-V, sino KVM, en concreto en el canal de Linus, siempre que han hecho algo como eso usan una implementación de KVM llamada unRAID. Creo recordar que tiene versión de prueba, podrías echarle un vistazo.
      No sé si has visto los vídeos, son estos:
      th-cam.com/video/1yFQd4MaKK0/w-d-xo.html&pp=ugMICgJlcxABGAE%3D
      O busca 'linus 8 gamers 1 cpu'. Obviamente trabajan con unos presupuestos muy por encima del tuyo o el mío, pero la configuración del hipervisor quizá te sirva).
      Enhorabuena por tu proyecto. Espero que puedas solucionar tus problemas de rendimiento al compartir procesador.
      PD: Otra cosa que se me ocurre... ¿Has mirado qué pasa si le das más cores a la máquina virtual. Como te comento he usado muy poco Hyper-V, pero algunos VMM simplemente tratan los hilos como cores y cuando le dices que quieres que la máquina virtual tenga 3 cores le da realmente 3 hilos. Quizá ese sea el origen de tus problemas de rendimiento, que tú quieres darle 3 cores y realmente la da 3 hilos.
      Un saludo.

  • @dumbomalo
    @dumbomalo 2 ปีที่แล้ว

    Es buenisima la clase, pero no comparto el decir (como mencione en otro comentario) "maquina falsa", es muy chocante, xq la maquina si existe aunque no fisicamente, es como decir un sueño o un pensamiento es algo falso porque no existe fisicamente, de la misma manera hablas de "emular un proceso" emular seria virtual xq no existe tampoco, sin embargo, no dices "proceso falso". Quizas sea tu paradigma y tu forma de pensar en que es falso, pero hay q analizarlo desde otro punto de vista.

  • @dennisgr7
    @dennisgr7 ปีที่แล้ว

    quita la cam de alumno, que mareo

    • @imesinet
      @imesinet  ปีที่แล้ว

      Ya no la uso desde el COVID. Fue un experimento que creo que solo me gustó a mí :')