{"id":37939,"date":"2019-10-31T22:20:41","date_gmt":"2019-10-31T19:20:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/obshhie-printsipy-raboty-qemu-kvm\/"},"modified":"2019-10-31T22:20:41","modified_gmt":"2019-10-31T19:20:41","slug":"obshhie-printsipy-raboty-qemu-kvm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm","title":{"rendered":"Principios generales de funcionamiento de QEMU-KVM","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Principios generales de funcionamiento de QEMU-KVM\" src=\"\/wp-content\/uploads\/2019\/09\/6619dbfb022d3fdb87159a33d4d27466.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMi comprensi\u00f3n actual:<\/p>\n<h2>1) KVM<\/h2>\n<p>\nKVM (M\u00e1quina Virtual basada en el N\u00facleo) es un hipervisor (VMM - Gestor de M\u00e1quinas Virtuales) que funciona como un m\u00f3dulo en el sistema operativo Linux. El hipervisor se necesita para ejecutar cierto software en un entorno no existente (virtual) y ocultar este software del hardware f\u00edsico real en el que se ejecuta. El hipervisor act\u00faa como un 'intermediario' entre el hardware f\u00edsico (host) y el sistema operativo virtual (invitado).<\/p>\n<p>Dado que KVM es un m\u00f3dulo est\u00e1ndar del n\u00facleo de Linux, recibe todas las ventajas del n\u00facleo (gesti\u00f3n de memoria, planificador, etc.). Como resultado, todas estas ventajas tambi\u00e9n se trasladan a los invitados (ya que los invitados funcionan en el hipervisor, que opera en\/en el n\u00facleo del sistema operativo Linux).<\/p>\n<p>KVM es muy r\u00e1pido, pero por s\u00ed solo no es suficiente para ejecutar un sistema operativo virtual, ya que se requiere emulaci\u00f3n de I\/O. Para I\/O (procesadores, discos, red, video, PCI, USB, puertos seriales, etc.), KVM utiliza QEMU.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>2) QEMU<\/h2>\n<p>\nQEMU (Emulador R\u00e1pido) es un emulador de diversos dispositivos que permite ejecutar sistemas operativos dise\u00f1ados para una arquitectura en otra (por ejemplo, ARM -&gt; x86). Adem\u00e1s del procesador, QEMU emula varios dispositivos perif\u00e9ricos: tarjetas de red, HDD, tarjetas de video, PCI, USB, etc.<\/p>\n<p>Funciona as\u00ed:<\/p>\n<p>Las instrucciones\/c\u00f3digo binario (por ejemplo, ARM) se convierten en c\u00f3digo intermedio independiente de la plataforma mediante un convertidor TCG (Generador de C\u00f3digo Reducido) y luego, este c\u00f3digo binario independiente de la plataforma se convierte en instrucciones\/c\u00f3digo objetivo (por ejemplo, x86).<\/p>\n<p>ARM -&gt; c\u00f3digo_intermedio -&gt; x86<\/p>\n<p>En esencia, puedes ejecutar m\u00e1quinas virtuales en QEMU en cualquier host, incluso en modelos de procesador antiguos que no admiten Intel VT-x (Tecnolog\u00eda de Virtualizaci\u00f3n Intel) \/ AMD SVM (M\u00e1quina Virtual Segura AMD). Sin embargo, en este caso, funcionar\u00e1 bastante lento, dado que el c\u00f3digo binario ejecutable debe recompilarse sobre la marcha dos veces, utilizando TCG (TCG es un compilador Just-in-Time).<\/p>\n<p>Es decir, QEMU por s\u00ed solo es incre\u00edble, pero funciona muy lento.<\/p>\n<h2>3) Anillos de Protecci\u00f3n<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Principios generales de funcionamiento de QEMU-KVM\" src=\"\/wp-content\/uploads\/2019\/09\/01df130d94b54251f517f776c99009f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEl c\u00f3digo de programaci\u00f3n binario en los procesadores no funciona arbitrariamente, sino que se organiza en diferentes niveles (anillos \/ Anillos de Protecci\u00f3n) con diferentes niveles de acceso a los datos, desde el m\u00e1s privilegiado (Anillo 0) hasta el m\u00e1s restringido, regulado y 'con tuercas apretadas' (Anillo 3).<\/p>\n<p>El sistema operativo (n\u00facleo del SO) funciona en Ring 0 (modo kernel) y puede hacer lo que quiera con cualquier dato y dispositivo. Las aplicaciones de usuario funcionan en el nivel Ring 3 (modo usuario) y no tienen derecho a hacer todo lo que deseen, sino que deben solicitar acceso cada vez que necesiten realizar alguna operaci\u00f3n (as\u00ed, las aplicaciones de usuario solo tienen acceso a sus propios datos y no pueden \u00abinvadir\u00bb la \u00abarena de juegos\u00bb de otros). Ring 1 y 2 est\u00e1n destinados al uso por controladores.<\/p>\n<p>Antes de la invenci\u00f3n de Intel VT-x \/ AMD SVM, los hipervisores operaban en Ring 0, mientras que los hu\u00e9spedes funcionaban en Ring 1. Dado que Ring 1 no ten\u00eda suficientes privilegios para el funcionamiento normal del SO, cada vez que hab\u00eda una llamada privilegiada desde el sistema hu\u00e9sped, el hipervisor ten\u00eda que modificar esa llamada en tiempo real y ejecutarla en Ring 0 (algo similar a lo que hace QEMU). Es decir, el c\u00f3digo binario del hu\u00e9sped <b><i>NO<\/i><\/b> se ejecutaba directamente en el procesador, y cada vez pasaba por varias modificaciones intermedias en tiempo real.<\/p>\n<p>Los costes fueron significativos y esto represent\u00f3 un gran problema, y entonces los fabricantes de procesadores, de manera independiente, lanzaron un conjunto de instrucciones ampliadas (Intel VT-x \/ AMD SVM) que permiten ejecutar el c\u00f3digo de los sistemas operativos hu\u00e9spedes <b><i>DIRECTAMENTE<\/i><\/b> en el procesador del host (eliminando todos los costosos pasos intermedios, como se hac\u00eda antes).<\/p>\n<p>Con la llegada de Intel VT-x \/ AMD SVM, se cre\u00f3 un nuevo nivel especial Ring -1 (menos uno). Ahora en este nivel opera el hipervisor, mientras que los hu\u00e9spedes operan en Ring 0 y obtienen acceso privilegiado a la CPU.<\/p>\n<p>Es decir, en resumen:<\/p>\n<ul>\n<li>el host opera en Ring 0<\/li>\n<li>los hu\u00e9spedes operan en Ring 0<\/li>\n<li>el hipervisor opera en Ring -1<\/li>\n<\/ul>\n<p><\/p>\n<h2>4) QEMU-KVM<\/h2>\n<p>\nKVM proporciona a los hu\u00e9spedes acceso a Ring 0 y utiliza QEMU para la emulaci\u00f3n de I\/O (procesador, discos, red, video, PCI, USB, puertos serie, etc., que \u00abven\u00bb y con los que trabajan los hu\u00e9spedes).<\/p>\n<p>De aqu\u00ed QEMU-KVM (o KVM-QEMU) \ud83d\ude42<\/p>\n<p><i>CREDITOS<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.ionos.com\">Imagen para atraer la atenci\u00f3n<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/profile\/Roberto_Pietro\">Imagen Anillos de protecci\u00f3n<\/a><\/noindex><\/i><\/p>\n<p><i>P.D. El texto de este art\u00edculo fue publicado originalmente en el canal de Telegram <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_voip\">@RU_Voip<\/a><\/noindex> como respuesta a la pregunta de uno de los participantes del canal.<\/p>\n<p>Escriba en los comentarios en qu\u00e9 puntos no entiendo correctamente el tema o si hay algo que agregar.<\/p>\n<p>\u00a1Gracias!<\/i><br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/466549\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u043e\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435: 1) KVM KVM (Kernel-based Virtual Machine) \u2013 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440 (VMM \u2013 Virtual Machine Manager), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u0432\u0438\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u043d\u0430 \u041e\u0421 Linux. \u0413\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u0441\u043e\u0444\u0442 \u0432 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 (\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439) \u0441\u0440\u0435\u0434\u0435 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044d\u0442\u043e\u0442 \u0441\u043e\u0444\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0413\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u043e\u043b\u0438 \u00ab\u043f\u0440\u043e\u043a\u043b\u0430\u0434\u043a\u0438\u00bb [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28470,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37939","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u043e\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435: 1) KVM KVM.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0431\u0449\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b QEMU-KVM | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u043e\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435: 1) KVM KVM.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Principios generales de funcionamiento de QEMU-KVM | ProHoster","description":"Mi entendimiento actual: 1) KVM KVM.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0431\u0449\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b QEMU-KVM | ProHoster","og:description":"\u041c\u043e\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435: 1) KVM KVM.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:41+00:00","article:modified_time":"2019-10-31T19:20:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37939","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:51:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:18:22","updated":"2026-01-23 19:51:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/37939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=37939"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/37939\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/28470"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=37939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=37939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=37939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}