{"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\/fr\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm","title":{"rendered":"Principes g\u00e9n\u00e9raux de fonctionnement de QEMU-KVM","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Principes g\u00e9n\u00e9raux de fonctionnement de QEMU-KVM\" src=\"\/wp-content\/uploads\/2019\/09\/6619dbfb022d3fdb87159a33d4d27466.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMa compr\u00e9hension actuelle :<\/p>\n<h2>1) KVM<\/h2>\n<p>\nKVM (Machine Virtuelle Bas\u00e9e sur le Noyau) \u2013 un hyperviseur (VMM \u2013 Gestionnaire de Machines Virtuelles) qui fonctionne comme un module sur le syst\u00e8me d'exploitation Linux. L'hyperviseur est n\u00e9cessaire pour ex\u00e9cuter un logiciel dans un environnement virtuel non existant tout en masquant le mat\u00e9riel physique r\u00e9el sur lequel ce logiciel fonctionne. L'hyperviseur agit comme un \u00ab interm\u00e9diaire \u00bb entre le mat\u00e9riel physique (h\u00f4te) et le syst\u00e8me d'exploitation virtuel (invit\u00e9).<\/p>\n<p>Puisque KVM est un module standard du noyau Linux, il b\u00e9n\u00e9ficie de toutes les fonctionnalit\u00e9s offertes par le noyau (gestion de la m\u00e9moire, planificateur, etc.). Par cons\u00e9quent, tous ces avantages profitent \u00e9galement aux invit\u00e9s (car les invit\u00e9s fonctionnent sur l'hyperviseur qui tourne dans le noyau du syst\u00e8me d'exploitation Linux).<\/p>\n<p>KVM est tr\u00e8s rapide, mais \u00e0 lui seul, il n'est pas suffisant pour lancer un syst\u00e8me d'exploitation virtuel, car une \u00e9mulation I\/O est n\u00e9cessaire. Pour l'I\/O (processeur, disques, r\u00e9seau, vid\u00e9o, PCI, USB, ports s\u00e9rie, etc.), KVM utilise QEMU.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>2) QEMU<\/h2>\n<p>\nQEMU (\u00c9mulateur Rapide) \u2013 un \u00e9mulateur de divers dispositifs qui permet d'ex\u00e9cuter des syst\u00e8mes d'exploitation con\u00e7us pour une architecture sur une autre (par exemple, ARM \u2192 x86). En plus du processeur, QEMU \u00e9mule divers p\u00e9riph\u00e9riques : cartes r\u00e9seau, disques durs, cartes graphiques, PCI, USB, etc.<\/p>\n<p>\u00c7a fonctionne comme ceci :<\/p>\n<p>Les instructions \/ code binaire (par exemple, ARM) sont convertis en code interm\u00e9diaire ind\u00e9pendant de la plateforme \u00e0 l'aide du convertisseur TCG (Tiny Code Generator), puis ce code binaire ind\u00e9pendant de la plateforme est converti en instructions \/ code cible (par exemple, x86).<\/p>\n<p>ARM \u2192 code_interm\u00e9diaire \u2192 x86<\/p>\n<p>En gros, vous pouvez ex\u00e9cuter des machines virtuelles sur QEMU sur n'importe quel h\u00f4te, m\u00eame avec d'anciens mod\u00e8les de processeurs qui ne supportent pas Intel VT-x (Technologie de Virtualisation Intel) \/ AMD SVM (Machine Virtuelle S\u00e9curis\u00e9e AMD). Cependant, dans ce cas, cela fonctionnera tr\u00e8s lentement, en raison du fait que le code binaire d'ex\u00e9cution doit \u00eatre recompil\u00e9 \u00e0 la vol\u00e9e deux fois, \u00e0 l'aide de TCG (TCG est un compilateur Just-in-Time).<\/p>\n<p>C'est-\u00e0-dire que QEMU est en soi super, mais il fonctionne tr\u00e8s lentement.<\/p>\n<h2>3) Anneaux de protection<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Principes g\u00e9n\u00e9raux de fonctionnement de QEMU-KVM\" src=\"\/wp-content\/uploads\/2019\/09\/01df130d94b54251f517f776c99009f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe code binaire sur les processeurs ne fonctionne pas n'importe comment, mais se situe \u00e0 diff\u00e9rents niveaux (anneaux \/ Anneaux de Protection) avec diff\u00e9rents niveaux d'acc\u00e8s aux donn\u00e9es, du plus privil\u00e9gi\u00e9 (Anneau 0) au plus restreint, r\u00e9gul\u00e9 et \u00ab avec des contraintes \u00bb (Anneau 3).<\/p>\n<p>Le syst\u00e8me d'exploitation (noyau OS) fonctionne en Ring 0 (mode noyau) et peut faire tout ce qu'il veut avec n'importe quelles donn\u00e9es et dispositifs. Les applications utilisateur fonctionnent au niveau Ring 3 (mode utilisateur) et ne peuvent pas faire ce qu'elles veulent, elles doivent \u00e0 chaque fois demander l'acc\u00e8s pour effectuer une op\u00e9ration (de cette fa\u00e7on, les applications utilisateur n'ont acc\u00e8s qu'\u00e0 leurs propres donn\u00e9es et ne peuvent pas \u00ab s'immiscer \u00bb dans le \u00ab bac \u00e0 sable \u00bb des autres). Les Rings 1 et 2 sont destin\u00e9s \u00e0 \u00eatre utilis\u00e9s par les pilotes.<\/p>\n<p>Avant l'invention d'Intel VT-x \/ AMD SVM, les hyperviseurs fonctionnaient en Ring 0, tandis que les invit\u00e9s fonctionnaient en Ring 1. \u00c9tant donn\u00e9 que le Ring 1 n'a pas suffisamment de droits pour le bon fonctionnement de l'OS, \u00e0 chaque appel privil\u00e9gi\u00e9 du syst\u00e8me invit\u00e9, l'hyperviseur devait modifier cet appel \u00e0 la vol\u00e9e et l'ex\u00e9cuter en Ring 0 (un peu comme le fait QEMU). C'est-\u00e0-dire que le code binaire de l'invit\u00e9 <b><i>NON<\/i><\/b> s'ex\u00e9cutait directement sur le processeur, subissant \u00e0 chaque fois plusieurs modifications interm\u00e9diaires \u00e0 la vol\u00e9e.<\/p>\n<p>Les frais g\u00e9n\u00e9raux \u00e9taient consid\u00e9rables et c'\u00e9tait un gros probl\u00e8me, et \u00e0 ce moment-l\u00e0, les fabricants de processeurs, ind\u00e9pendamment les uns des autres, ont publi\u00e9 un ensemble d'instructions \u00e9tendu (Intel VT-x \/ AMD SVM) permettant d'ex\u00e9cuter du code des syst\u00e8mes d'exploitation invit\u00e9s <b><i>DIRECTEMENT<\/i><\/b> sur le processeur h\u00f4te (en contournant toutes sortes d'\u00e9tapes interm\u00e9diaires co\u00fbteuses, comme cela se faisait auparavant).<\/p>\n<p>Avec l'apparition d'Intel VT-x \/ AMD SVM, un nouveau niveau sp\u00e9cial Ring -1 (moins un) a \u00e9t\u00e9 cr\u00e9\u00e9. Et maintenant, l'hyperviseur fonctionne \u00e0 ce niveau, tandis que les invit\u00e9s fonctionnent en Ring 0 et obtiennent un acc\u00e8s privil\u00e9gi\u00e9 au CPU.<\/p>\n<p>C'est-\u00e0-dire qu'en d\u00e9finitive :<\/p>\n<ul>\n<li>l'h\u00f4te fonctionne en Ring 0<\/li>\n<li>les invit\u00e9s fonctionnent en Ring 0<\/li>\n<li>l'hyperviseur fonctionne en Ring -1<\/li>\n<\/ul>\n<p><\/p>\n<h2>4) QEMU-KVM<\/h2>\n<p>\nKVM donne acc\u00e8s aux invit\u00e9s au Ring 0 et utilise QEMU pour l'\u00e9mulation I\/O (processeur, disques, r\u00e9seau, vid\u00e9o, PCI, USB, ports s\u00e9rie, etc., que voient et avec lesquels interagissent les invit\u00e9s).<\/p>\n<p>D'o\u00f9 QEMU-KVM (ou KVM-QEMU) \ud83d\ude42<\/p>\n<p><i>CR\u00c9DITS<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.ionos.com\">Image pour attirer l'attention<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/profile\/Roberto_Pietro\">Image Protection rings<\/a><\/noindex><\/i><\/p>\n<p><i>P.S. Le texte de cet article a \u00e9t\u00e9 initialement publi\u00e9 sur le canal Telegram <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_voip\">@RU_Voip<\/a><\/noindex> en r\u00e9ponse \u00e0 la question d'un des membres du canal.<\/p>\n<p>\u00c9crivez dans les commentaires, \u00e0 quels endroits je ne comprends pas correctement le sujet ou s'il y a des \u00e9l\u00e9ments \u00e0 ajouter.<\/p>\n<p>Merci!<\/i><br \/>\n<br \/>Source : <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.1 - 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\/fr\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Principes g\u00e9n\u00e9raux de fonctionnement de QEMU-KVM | ProHoster","description":"Ma compr\u00e9hension actuelle : 1) KVM KVM.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/37939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=37939"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37939\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/28470"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=37939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=37939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=37939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}