{"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\/sl\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm","title":{"rendered":"Op\u0107i principi rada QEMU-KVM","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Op\u0107i principi rada QEMU-KVM\" src=\"\/wp-content\/uploads\/2019\/09\/6619dbfb022d3fdb87159a33d4d27466.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMoje trenutne spoznaje:<\/p>\n<h2>1) KVM<\/h2>\n<p>\nKVM (Hypervisor temeljen na jezgru) \u2013 hypervisor (VMM \u2013 Upravitelj virtualnih ma\u0161ina) koji radi kao modul u OS Linux. Hypervisor je potreban za pokretanje odre\u0111enog softvera u nepostoje\u0107em (virtualnom) okru\u017eenju, dok istovremeno skriva fizi\u010dki hardver na kojem se taj softver izvodi. Hypervisor djeluje kao \"posrednik\" izme\u0111u fizi\u010dkog hardvera (hosta) i virtualnog OS-a (gosta).<\/p>\n<p>Budu\u0107i da je KVM standardni modul jezgra Linuxa, on dobiva sve potrebne resurse od jezgre (rad s memorijom, planiranje itd.). Stoga, na kraju, sve te prednosti dolaze i do gostiju (po\u0161to gosti rade na hypervisoru koji radi u\/na jezgru OS-a Linux).<\/p>\n<p>KVM je vrlo brz, ali sam po sebi nije dovoljan za pokretanje virtualnog OS-a, jer je potrebna emulacija I\/O-a. Za I\/O (procesor, diskovi, mre\u017ea, video, PCI, USB, serijski portovi itd.) KVM koristi QEMU.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>2) QEMU<\/h2>\n<p>\nQEMU (Brzi emulator) \u2013 emulator raznih ure\u0111aja koji omogu\u0107uje pokretanje operativnih sustava namijenjenih jednoj arhitekturi na drugoj (na primjer, ARM \u2013&gt; x86). Osim procesora, QEMU emulira razli\u010dite perifernije ure\u0111aje: mre\u017ene kartice, HDD, grafi\u010dke kartice, PCI, USB itd.<\/p>\n<p>Radi to ovako:<\/p>\n<p>Upute\/binarni kod (na primjer, ARM) konvertiraju se u me\u0111uprostorni platformu neovisni kod uz pomo\u0107 konvertera TCG (Mali generator koda) i zatim se taj platformu neovisni binarni kod konvertira u ciljne upute\/kod (na primjer, x86).<\/p>\n<p>ARM \u2013&gt; me\u0111uprostorni_kod \u2013&gt; x86<\/p>\n<p>U su\u0161tini, mo\u017eete pokretati virtualne ma\u0161ine na QEMU na bilo kojem hostu, \u010dak i s starijim modelima procesora koji ne podr\u017eavaju Intel VT-x (Intelova tehnologija virtualizacije) \/ AMD SVM (AMD-ova sigurna virtualna ma\u0161ina). Me\u0111utim, u tom slu\u010daju, radit \u0107e vrlo sporo, jer se izvr\u0161ni binarni kod mora rekompajlirati u hodu dvaput, pomo\u0107u TCG-a (TCG je Just-in-Time kompajler).<\/p>\n<p>Dakle, sam QEMU je iznimno mo\u0107an, ali radi vrlo sporo.<\/p>\n<h2>3) Za\u0161titna koluta<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Op\u0107i principi rada QEMU-KVM\" src=\"\/wp-content\/uploads\/2019\/09\/01df130d94b54251f517f776c99009f6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBinarni programski kod na procesorima ne radi samo tako, ve\u0107 se nalazi na razli\u010ditim razinama (kolutima \/ Za\u0161titnim kolutima) s razli\u010ditim razinama pristupa podacima, od najprivilegiranijeg (Ring 0) do najograni\u010denijeg, reguliranog i \"zakovano\" (Ring 3).<\/p>\n<p>Operacijski sistem (jedro OS) deluje na Ring 0 (kernel mode) in lahko tako manipulira z vsemi podatki in napravami, kot ho\u010de. Uporabni\u0161ke aplikacije delujejo na ravni Ring 3 (user mode) in nimajo pravice po\u010deti vsega, kar \u017eelijo, ampak morajo vsaki\u010d zaprositi za dovoljenje za izvedbo dolo\u010dene operacije (tako imajo uporabni\u0161ke aplikacije dostop le do lastnih podatkov in ne morejo \"vstopiti\" v \"tuje peskovnike\"). Ring 1 in 2 sta namenjena uporabi z gonilniki.<\/p>\n<p>Pred izumom Intel VT-x \/ AMD SVM so hipervizorji delovali na Ring 0, gostje pa na Ring 1. Ker Ring 1 nima dovolj pravic za normalno delovanje OS, je moral hipervizor vsaki\u010d, ko je gostujo\u010di sistem naredil privilegiran klic, na hitro modificirati ta klic in ga izvesti na Ring 0 (pribli\u017eno tako, kot to po\u010dne QEMU). T.j. gostujo\u010da binarna koda <b><i>NE<\/i><\/b> se je izvajala neposredno na procesorju, pri \u010demer je vsaki\u010d na hitro pre\u0161la skozi ve\u010d medfaznih modifikacij.<\/p>\n<p>Naka zneski so bili ogromni in to je predstavljalo velik problem, zato so proizvajalci procesorjev, brez medsebojnega sodelovanja, izdala raz\u0161irjen niz navodil (Intel VT-x \/ AMD SVM), ki omogo\u010dajo izvajanje kode gostujo\u010dih OS <b><i>NEPOSREDNO<\/i><\/b> na procesorju gostitelja (brez dragih medfazi, kot so to po\u010deli prej).<\/p>\n<p>S pojavom Intel VT-x \/ AMD SVM je bil ustvarjen nov poseben nivo Ring -1 (minus en). In zdaj na njem deluje hipervizor, gostje pa delujejo na Ring 0 in pridobivajo privilegiran dostop do CPU.<\/p>\n<p>T.j. na koncu:<\/p>\n<ul>\n<li>gostitelj deluje na Ring 0<\/li>\n<li>gostje delujejo na Ring 0<\/li>\n<li>hipervizor deluje na Ring -1<\/li>\n<\/ul>\n<p><\/p>\n<h2>4) QEMU-KVM<\/h2>\n<p>\nKVM omogo\u010da dostop gostom do Ring 0 in uporablja QEMU za emulacijo I\/O (procesor, disk, omre\u017eje, video, PCI, USB, serijske porte itd., ki jih \"vidijo\" in s katerimi delujejo gostje).<\/p>\n<p>Odtod QEMU-KVM (ali KVM-QEMU) \ud83d\ude42<\/p>\n<p><i>ZASLUGE<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.ionos.com\">Slika za pritegnitev pozornosti<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.researchgate.net\/profile\/Roberto_Pietro\">Slika Protection rings<\/a><\/noindex><\/i><\/p>\n<p><i>P.S. Besedilo tega \u010dlanka je bilo prvotno objavljeno na Telegram kanalu <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_voip\">@RU_Voip<\/a><\/noindex> kot odgovor na vpra\u0161anje enega od \u010dlanov kanala.<\/p>\n<p>Napi\u0161ite v komentarjih, kje sem napa\u010dno razumel temo ali \u010de imate kaj dodatnega.<\/p>\n<p>Hvala!<\/i><br \/>\n<br \/>Izvor: <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.4 - 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\/sl\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\/sl\/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\udd47Splo\u0161na na\u010dela delovanja QEMU-KVM | ProHoster","description":"Moje trenutno razumevanje: 1) KVM KVM.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/obshhie-printsipy-raboty-qemu-kvm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/37939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=37939"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/37939\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/28470"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=37939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=37939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=37939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}