Sisteme de emulare cu qemu

Ce este QEMU?

Nu este nici o exagerare să spunem că virtualizarea - este o tehnologie foarte popular curent. Astăzi, cuvinte de virtualizare la cerere într-un motor de căutare se emite aproximativ 22 de milioane de rezultate. De exemplu, doar o lună, EMC a anunțat retragerea pieței valorilor mobiliare pentru VMware, Citrix System a anunțat planurile de a achiziționa XenSource, o mulțime de noi companii din segmentul de virtualizare. Pe aceasta, așa cum sa dovedit, o piață colosală este găsit în mod constant noi nise. Dar pentru toate vorbesc de oferte publice inițiale și achiziții în virtualizarea acestor zile este ușor să uităm despre unele alte tehnologii de virtualizare existente.







Acest articol va prezenta una dintre cele mai interesante aplicatii de virtualizare, nu headlining benzile de știri - QEMU. QEMU - este o aplicație care puteti folosi in mai multe scopuri. Acesta poate fi folosit pentru a virtualizați sistem de operare oaspete sau ca un complet funcțional sisteme de operare mașină emulator de funcționare proiectate pentru CPU gazdă sau alte arhitecturi de procesoare.

Scurtă Introducere în virtualizare

Să începem cu o scurtă introducere în virtualizare pentru a seta scena pentru QEMU.

În conformitate cu virtualizarea în acest articol presupune platforma de virtualizare. Pentru fizică program de monitorizare hardware poate fi sistemul de operare gazdă sau hypervisor (vezi. Figura 1). În unele cazuri, sistemul de operare gazdă și un hypervisor. Sisteme de operare musafir „live“ pe un hypervisor. În unele cazuri, sistemul de operare musafir se concentrează pe același procesor ca și programul de monitorizare, dar în alte cazuri pot fi diferite (de exemplu, un oaspete PowerPC care rulează pe x86).

Figura 1. Arhitectura de bază a platformei de virtualizare

Punerea în aplicare a virtualizarea poate fi o varietate de moduri, dar de cele mai multe ori există trei metode principale. Prima se numește „nativ“ (sau plin) virtualizarea. În această realizare, un hypervisor implementează elementele de bază ale izolării, separarea hardware fizic de sistemul de operare oaspete. Această abordare a fost demonstrat pentru prima dată în 1966 de către sistemul de operare mașină virtuală / virtuală IBM® de memorie CP - 40, iar acum aceeași metodă utilizată în VMware ESX Server.

O alta metoda populara de virtualizare numit paravirtualizare. În paravirtualizare, programul de control implementează un hypervisor interfața programului de aplicație (API), care este utilizat de sistemul de operare oaspete. Xen paravirtualizare utilizat și Linux Kernel-based Virtual Machine (KVM).

A treia tehnică utilă se numește emulare. Emulare, după cum sugerează și numele, virtualizes platforma de oaspeți prin simularea mediului de hardware complet. Emulare se realizează în diferite forme, chiar și în cadrul aceleiași aplicații. Exemple de virtualizare prin emularea -este QEMU și Bochs.

QEMU Arhitectura

Luați în considerare modul în care QEMU realizează emulare. Această secțiune descrie cele două moduri de funcționare QEMU, precum și unele aspecte interesante ale dinamic traducător QEMU.

Operatii de baza QEMU

QEMU suportă două moduri de emulare: modul de utilizator [User-mode] și modul sistemic [System-mode]. Modul utilizator permite procesul de emulare creat pe un singur procesor, operează pe un alt (traducerea dinamică a instrucțiunilor executate pentru procesorul gazdă și de conversie a apelului sistem Linux). emulare Sistemul permite emularea întregului sistem, inclusiv un procesor și diverse periferice.

Atunci când codul pentru emularea x86 pe sistemul gazdă cu arhitectura x86, puteți obține o performanță aproape de casa, cu ajutorul așa-numitului accelerator QEMU. Acesta vă permite să efectuați cod emulat direct pe CPU gazdă (pe Linux printr-un modul kernel).

Dar ceea ce face QEMU interesant din punct de vedere tehnic, este de traducător dinamic rapid și compact [dinamic traducător]. Dinamic traducător permite transferul în timpul executării instrucțiunilor țintă (Guest) în instrucțiunile de procesor CPU gazdă pentru emulare. Acest lucru poate fi realizat prin forță brută (pur și simplu, înlocuind-o singură instrucțiune procesor de alții), dar nu este întotdeauna ușor de făcut, iar în unele cazuri, o singură instrucțiune poate necesita mai multe instrucțiuni sau modificări în ordinea lor secvențială pentru arhitectura de difuzare.

QEMU realizează traducerea dinamică a instrucțiunilor țintă în micro-op. Aceste micro-ops sunt elemente ale P-cod care este compilat în obiecte. Apoi, vine în principal traducător. Se afișează instrucțiunile țintă pentru operațiunile de micro pentru traducere dinamică. Această abordare nu este numai eficient, dar oferă, de asemenea portabilitate.







QEMU dinamic traducător, de asemenea, cache-uri blocuri de cod tradus pentru a minimiza deasupra capului traducătorului. Când blocul de cod țintă este mai întâi găsit, acesta este transferat și stocat ca un bloc tradus [bloc tradus]. QEMU magazine cache tradus recent blocuri într-un 16MB. QEMU poate sprijini chiar cod auto modificarea prin invalidarea blocuri traduse în cache.

periferice acceptate

Pe lângă PC-ul standard si ISA PC (fara bus PCI), QEMU poate emula platforma hardware și alte non-PC, cum ar fi plăci de bază APM Versatil (folosind 926E) și placa bazată pe Malta milioane de instrucțiuni pe secundă (MIPS). În prezent, munca se face pentru a pune în aplicare sprijinul unui număr de alte platforme, inclusiv G3 Power Macintosh (Albastru Alb) și Sun 4U.

Construirea și instalarea QEMU

Construirea și instalarea QEMU este de aproximativ instrumente standard simple GNU. După descărcarea și distribuția dezarhivare QEMU nevoie pentru a efectua configurare. face. și apoi make install (a se vedea. Listarea 1).

Listarea 1. Construirea emulatorul QEMU

Acest proces creează nu doar o imagine qemu executabil pentru arhitectura țintă curentă, dar și imaginile pentru alte arhitecturi, inclusiv ARM, MIPS, PowerPC, 68k, și SPARC. Puteți apoi descărca kernel-ul Linux a fost construit pentru un alt arhitecturi țintă.

Dacă oaspetele și sistemul de operare gazdă au ca scop o singură arhitectură, este posibil să crească rata de aproape de acasă, folosind QEMU accelerator (KQEMU). KQEMU - un driver (modulul de kernel pentru Linux), permițând codul de utilizator și codul de kernel-ul pentru a executa direct pe CPU gazdă. Construirea acceleratorul QEMU la fel ca și QEMU în sine (a se vedea. Listarea 2).

Listarea 2. Construirea acceleratorul QEMU

KQEMU poate fi compilat și instalat pe o varietate de sisteme de operare, inclusiv Microsoft® Windows®, FreeBSD® și Linux. După ce a construi acceleratorul QEMU, instalați-l pe Linux, folosind următoarea comandă:

Utilizarea QEMU

Acum, să ne uităm la utilizarea QEMU pentru a virtualiza o altă mașină cu un PC de tip desktop care rulează GNU / Linux. Emularea o altă mașină este similar cu obtinerea a început cu doar cumpărat un computer nou. Primul pas - este de a instala sistemul de operare. Computer nou, desigur, trebuie să aibă un loc pentru a instala sistemul de operare, asa ca ai nevoie de un hard-disk.

Pentru quemu-img trebuie să specifice operația (a crea pentru a crea o nouă imagine de disc), formatul (qcow pentru formatul de imagine qemu), iar dimensiunea numele imaginii discului. Exemplul următor emulează o mașină pentru o distribuție Linux mică, destinat utilizării în Flash. Deci, a crea o imagine de disc de la 128 MB:

Este necesar să ne amintim că, dacă aveți de gând să instalați un sistem general de operare scop, cum ar fi Windows, Linux sau FreeBSD, aveți nevoie de un disc mult mai mare. Rezultatul operației efectuate - fișierul disk.img - conține discul emulat de 128 MB.

Acum, că hard disk-ul a fost creat, puteți instala un nou sistem de operare pe el. Pentru a demonstra acest lucru, am folosi o distribuție Linux mic, numit cfLinux, destinat utilizării ca un mic sisteme bazate pe Linux încorporate în dispozitive, cum ar fi gateway-uri, puncte de acces wireless, firewall-uri și routere. Această distribuție poate fi descărcat în format ISO folosind wget:

imagine ISO sunt utilizate pe scară largă în format CD-ROM-ul (de asemenea, cunoscut sub numele de sistemul de fișiere ISO 9660).

Acum ne-am imitat pe disc (disk.img) și CD-ROM, de unde puteți instala sistemul de operare. Următorul pas este instalarea sistemului pe hard disk. Acest lucru se face foarte simplu prin qemu:

Când utilizați imagine de disc qemu dată de opțiunea hda. și CD-ROM-ul (fișierul în care se află imaginea) - cu opțiunea cdrom. opțiune de boot vă permite să boot-eze de pe CD-ROM. Argumentul d specifică boot de pe CD-ROM, o - o dischetă, c indică să pornească de pe hard disk (implicit), și n - cizme de la rețea. În cazul în care comanda este corectă, atunci va apărea o nouă fereastră cu QEMU mașină emulat (a se vedea. Figura 2).

Figura 2. Pregătirea pentru instalare cfLinux pe disc emulat cu QEMU

Sisteme de emulare cu qemu

Urmați instrucțiunile pentru a instala de pe CD-ROM-ul, ușor pentru a finaliza instalarea cu ISO-imaginea de pe hard disk-ul emulat. Instalarea necesită o repornire. În acest moment, puteți completa emularea (Ctrl-C în fereastra qemu). Puteți descărca acum sistemul de operare nou instalat, utilizând următoarea comandă:

Această comandă emulează un PC standard (opțiunea implicită) pe hard disk-ul reprezentat de disk.img fișier imagine. Imagine Linux, de boot de pe hard disk-ul emulat, va da un rezultat al ferestrei QEMU, prezentată în figura 3.

Figura 3. Se încarcă proaspăt cfLinux cu hard disk-ul emulat

Sisteme de emulare cu qemu

După cum puteți vedea, totul este foarte simplu. În acest caz, aceeași secvență poate fi utilizată pentru a instala și porni orice varietate de sisteme de operare (distribuții Linux, Windows, și altele).

alte emulatoare

Deși QEMU - mediu de emulație fantastic, iar altele sunt în valoare de explorare. Vin - o implementare open source a Windows API - vă permite să rulați aplicații Windows fără sistemul de operare Windows. Dar, așa cum acronimul vinului explică, de vin - nu este un emulator (Vin - vinul nu este un emulator). În schimb, Wine pune în aplicare un set de API, care permite aplicațiilor să ruleze arhitectura x86. Prin urmare, aplicațiile care rulează cu vin, se simt bine.

Mergând mai departe

Utilizarea QEMU ca un emulator de PC vă permite să experimentați cu o varietate de sisteme de operare fără a fi nevoie de a avea o mașină de rezervă. De exemplu, cu ReactOS - sistem de operare open source Windows XP compatibil (a cărui emulație este prezentată în Figura 4).

ReactOS are ca scop pentru compatibilitate binară cu Windows XP, astfel încât ReactOS poate rula aplicații pentru Windows XP. Secțiunea Resurse oferă link-uri către resurse care conțin informații cu privire la compatibilitatea de aplicare curentă.

Figura 4. Emularea un PC standard cu ReactOS

Sisteme de emulare cu qemu

imagine QEMU cu ReactOS și multe alte sisteme de operare pot fi găsite la zoo Sisteme de operare gratuit (pentru mai multe informații, a se vedea Resurse). Aceste sisteme de operare sunt prezentate sub forma unei imagini CD live, discuri sau CD-uri floppy (la formatul qcow). QEMU - este o modalitate foarte bună de a încerca noi sisteme de operare, fără timp pentru a le instala pierdem.

Obțineți produse și tehnologii