Szerző: Budai Péter

2003. december 10. 16:44

Bemutató: Microsoft Virtual PC 2004

A több operációs rendszer párhuzamos futtatását lehetővé tevő Virtual PC első verzióját a Connectix készítette el, azonban sikerének köszönhetően felfigyelt rá a Microsoft, és megvásárolta a technológiát. A december 2-án piacra dobott változat az első verzió, amely már a Microsoft neve alatt került forgalomba.

Mit is várunk egy PC emulátortól? Futtasson bármilyen operációs rendszert, azon minden támogatott szoftvert, játékot, és lehetőleg minden hardvert képes legyen emulálni, amit egy fizikai számítógépben is használnánk. Ezen felül még az is felmerülhet, hogy a PC-re fizikailag rákapcsolt külső eszközöket is elérhessük az emulált PC-ben, így akár a hálózatot is. A Virtual PC a felsorolt igényeknek szinte teljes mértékben megfelel, egyetlen kivétel, hogy nem képes bármilyen hardvert emulálni, csak a leggyakrabban használtakat.

A Virtual PC első verzióját a Connectix készítette el, azonban sikerének köszönhetően felfigyelt rá a Microsoft, és megvásárolta a technológiát. A december 2-án megjelent változat az első, amely már a Microsoft neve alatt került forgalomba, és szerves részét képezi a Windows Szerver rendszernek is. Ez a szoftver több szempontból is tökéletes választás volt a Microsoft számára, mivel egyszerre nyújt megoldást a következő problémákra:

  • Visszafelé kompatibilitás kérdése
  • Operációs rendszerek közötti áttérés megkönnyítése
  • Hatékony tesztelési platform fejlesztők és rendszermérnökök számára
  • Macintosh és PC alapú rendszerek, szoftverek kommunikációja (létezik Virtual PC Macintoshra is)

A szoftver működése egyszerű alapokon nyugszik, ám tökéletes megvalósítása igencsak nehéz. "Mindössze" át kell tudni verni az alkalmazásokat és az operációs rendszereket, hogy azt higgyék, egy igazi számítógépen futnak. Ehhez szükség volt egy BIOS és egy alacsonyszintű hardveremuláció teljes megírására is. Ezzel a szoftverek összes funkciója - amivel a hardvert, vagy a BIOS-t érik el - a Virtual PC moduljaihoz jut el, és ezek a modulok a beállításaik alapján eldöntik, hogyan végezzék el a szoftver által kért szolgáltatásokat. Így például kikerülhető, hogy a virtuális PC-n futó szoftver a valódi PC merevlemezére írjon, illetve akár csak lássa is azt, helyette az általunk megadott fájlba ír, mintha az lenne a merevlemez. Ugyanilyen módon megváltoztatható a teljes rendszer bármely részének működése: így jön létre a virtuális PC, és az azon futó, becsapott operációs rendszer.


Windows 2003 telepítése egy Guest PC-re

A Virtual PC képes DOS, OS/2, bármely Windows, vagy akár UNIX disztribúció futtatására is, és az operációs rendszer telepítése sem különbözik lényegesen a megszokottól. Lehetőség van több virtuális gépet (ezek a guest PC-k) is futtatni egyszerre, és ezek egymással, illetve a nekik otthont adó számítógéppel (ezt a gépet nevezzük host PC-nek) képesek hálózati kommunikációt folytatni.


RedHat Linux 8 telepítése egy Guest PC-re

A UNIX disztribúciók telepítése hivatalosan nem támogatott, ugyanakkor lehetséges, és működik is, ugyanakkor ehhez semmiféle támogatást, dokumentációt nem biztosít a Microsoft, talán érthető okokból. Ennek következtében a Virtual PC egyes funkciói nem érhetőek el ezeken az operációs rendszereken.

[oldal:A Virtual PC lehetőségei]

A Virtual PC a következő hardvereket emulálja, ezek használhatóak egy guest PC-re installált operációs rendszerben is:

  • AMI BIOS
  • Intel 440BX alaplap
  • Creative Labs Sound Blaster 16 ISA Plug and Play hangkártya
  • DEC 21140A 10/100 hálózati kártya (egyes esetekben, pl. Win2003 alatt Intel 21140-nak ismeri fel)
  • S3 Trio 32/64 PCI grafikuskártya 8 MB Video RAM-mal
A hardverek fennmaradó részét képes a host PC-ről használni:
  • Képes a host PC CD meghajtóit és floppymeghajtóját használni, illetve ISO állomány is mountolható a helyére. Ezt a guest PC futtatása közben bármikor át lehet állítani.
  • A host PC processzorát használja, annak minden képességével együtt. (MMX, SSE, SSE2, stb)
  • A host PC soros és párhuzamos portjait használja.

USB eszközöket a guest PC nem lát, csak akkor, ha hálózaton keresztül megosztjuk az USB porton található erőforrást a host PC-n.

Mivel a guest PC-ben található emulált S3 Trio alapú grafikuskártya nem képes a 3D módokban hatékonyan működni, ezért ezen keresztül az újabb 3D játékokkal nem lehet élvezhető minőségben és sebességgel játszani, már ha egyáltalán hajlandóak elindulni.

A merevlemezeket tekintve meglehetősen segítőkész a Virtual PC. Készíthetünk virtuális merevlemezeket, amelyeket a host PC merevlemezein (vagy esetleg hálózaton) tárolhatunk külön fájlban. Ennek a fájlnak a tartalma egy az egyben megfeleltethető a Virtual PC-n futó guest PC-k merevlemezének, így nem szükséges az operációs rendszer telepítéséhez a host PC már meglévő partícióit használni, és nem is kell újat létrehozni, helyette csak erre az egy fájlra van szükség. Megtehetjük, hogy nem fix méretű merevlemezt hozunk létre, hanem egy dinamikusat, ami mindig pontosan akkora, amennyi adatot tárol rajta a guest PC, amivel rengeteg helyet spórolhatunk meg, és mégis rugalmas megoldást kapunk. A virtuális merevlemez létrehozáskor nincs partícionálva, ezt azonban tetszés szerint mi is megtehetjük egy guest PC-n keresztül, ugyanúgy, ahogy azt egy új merevlemez használatának megkezdésekor is tennénk.

A virtuális merevlemezek sebessége természetesen messze elmarad egy fizikai merevlemezétől, különösen, ha adatmozgatás szempontjából kritikus alkalmazásokat használunk, például adatbázisszervereket. Ezek az alkalmazások kevéssé örülnek annak, ha egy dinamikus merevlemez van alattuk, ami ugyancsak egy másik merevlemezen fájlként található, általában meglehetősen fragmentáltan. Ilyen felhasználásra ajánlott fix méretű virtuális merevlemezt használni, és annak a fájlját úgy töredezettségmentesíteni, hogy összefüggő területen legyen a host PC merevlemezén. Ugyancsak megoldást jelent, ha a virtuális PC merevlemezét összerendeljük egy fizikai partícióval, vagy merevlemezzel, de erre csak akkor képes írni a guest PC, ha az nincs mountolva a host PC-n.

Ami még érdekesség, hogy hozzárendelhetünk Undo fájlt a virtuális merevlemezhez, aminek a segítségével a guest PC használatának befejeztével eldönthetjük, hogy a történt változásokat megtartjuk, vagy inkább a guest PC használatának megkezdése előtti állapotot szeretnénk visszaállítani.

A Virtual PC-vel futtatott guest PC-k képesek CD-ről és floppyról, vagy akár ISO-ból is bootolni, ezért egy operációs rendszer telepítése senkinek sem okozhat különösebb problémát.

Az Alt-Ctrl-Del kombináció alapbeállítás szerint a host PC-n idéz elő hatást, bárhol is nyomjuk meg. Kinevezhető egy gomb (alapbeállítás szerint ez a jobb oldali Alt billentyű), aminek a megnyomásakor az egér kilép a guest PC-ből és utána a host PC-n tudunk dolgozni tovább. Ha újra a guest PC-t szeretnénk használni, akkor csak bele kell kattintani a guest PC ablakába. A guest PC Alt-Ctrl-Del kombinációja a megadott gomb és a Del gomb egyidejű lenyomásával érhető el. A teljes képernyős és az ablakos megjelenítés között pedig ugyancsak a megadott gomb és az Enter lenyomásával válthatunk.

Az operációs rendszer telepítése után lehetőség van a Virtual PC bővítményeinek telepítésére is, amit ISO fájlban mellékeltek a készítők. Ennek a segítségével a következő funkciók érhetőek el:

  • Könyvtármegosztás. Ez a szolgáltatás a hálózati konfigurációtól függetlenül képes a host PC könyvtárait külön meghajtóként megjeleníteni a guest PC operációs rendszerén.
  • Egérkezelés. Az egér szabadon mozgatható a guest PC ablaka és a host PC között, nem kell megnyomni a jobb Altot hozzá.
  • Képernyőméret változtatásának lehetősége. Bármikor dinamikusan átméretezhetjük a guest PC ablakát, és a guest PC operációs rendszerének felbontása azonnal tükrözni fogja a megváltozott állapotokat.
  • Vágólap támogatás, drag&drop. Az egér segítségével fájlokat, OLE objektumokat másolhatunk a guest PC és a host PC között, mintha a guest PC csak egy egyszerű ablak lenne. A guest PC és a host PC vágólapja közös, így könnyen mozgathatunk például szöveges adatokat is egyik operációs rendszerről a másikra.

[oldal:Windows használata Virtual PC-vel]

A Virtual PC-re könnyedén telepíthető bármelyik Windows kiadás, legyen szó akár a Longhorn korai verziójáról, Windows 2003 Serverről, vagy például Windows 95-ről. A legegyszerűbben a guest PC bootolása során, CD-ről lehet megkezdeni a telepítést. Az installáció menete nem sokban tér el a megszokottól. Fontos, hogy a guest PC-ben található hardverek kiválasztásánál az emulált hardvereket kell beállítani, és nem a host PC alkatrészeit – már amennyiben nem ismer fel mindent automatikusan a rendszer.

A hálózat beállítása jelenthet még nehézséget, mivel nem szokványos dolog, hogy egy számítógépen több különböző operációs rendszer fut, ahol mindegyik akár saját IP címmel, és alhálózatokkal is rendelkezhet egyidejűleg. Négyféleképpen állítható be a guest PC hálózatban mutatott viselkedése:

  • Local: a guest PC-k csak egymással képesek hálózatban kommunikálni, nem látják a host PC-n kívüli hálózatot, és magát a host PC-t sem.
  • Shared Networking: Ezzel az opcióval az elsőnek kiválasztott hálózati kártyára NAT-ot építhetünk ki, ami DHCP-n keresztül szolgálja ki a saját belső hálózatát.
  • Kiválasztott hálózati kártya: Ha kiválasztjuk a hálózati kommunikációhoz a számítógép egyik hálózati csatolóját, akkor a guest PC a beállított IP-címmel (illetve ha a domainben van DHCP szerver, akkor az IP-cím automatikusan is kiosztásra kerülhet) jelenik meg a host PC által is elérhető hálózat részeként.
  • Microsoft Loopback Adapter: Ez a Microsoft operációs rendszerekben megtalálható driver, ami az adott számítógépen használandó lokális hálózatok kialakítására alkalmas. Ezzel szinte tetszőleges komplexitású hálózati infrastruktúrát lehet létrehozni egyetlen PC-n, akár hálózati kártya nélkül is.

A Virtual PC-kre épülő hálózatok megtervezése egy érdekes feladat, amit nem érdemes alábecsülni. Minél hamarabb, lehetőleg még az első guest PC létrehozása előtt el kell gondolkodni azon, hogy pontosan mire, és hogyan szeretnénk használni a virtuális PC-ket, és a velük építendő hálózatot.

Mindenképpen oda kell figyelni az operációs rendszer számára biztosított memória méretére is, mivel elégtelen memória esetén akár össze is omlaszthatjuk a guest PC-t, például, ha 160MB mellett akarunk egy Windows 2003-on Active Directoryt, és SharePoint Portal Servert kialakítani. Ilyen esetekben előfordulhat, hogy csak a guest PC újrainstallálása jelent kielégítő megoldást. A szoftverek által igényelt minimális memóriaigénynek érdemes megfelelni, mert a guest PC csak a host PC fizikai memóriájából fixen lefoglalt területet használhatja. A guest PC ugyan használhat swap fájlt, de ez a megoldás sebesség szempontjából nem nevezhető hatékonynak, mivel ez a legtöbb esetben egy virtuális merevlemezen található. Ha már a swap fájl használatára kerül sor, akkor el is felejthetjük a guest PC zökkenőmentes használatát.


A Windows 2003 használatban a guest PC-n

A tesztelés során sokféle operációs rendszert és hálózatot építettünk fel a Virtual PC segítségével, és ezek egyikével sem tapasztaltunk instabilitást, vagy adatvesztést, csak a memória jelentős hiánya esetén. A Windows 98 hozta a szokásos stabilitást, a megszokott napi egy-két elhalálozással, és ugyanúgy nem szeretett az S3-as kártya felbontást váltani DOS-os játékok után, mint ahogy azt valódi gépeken is tapasztalhatjuk. A Windows 2003 Server zökkenőmentesen fut ebben a pillanatban is, és bármit is próbáltunk ki vele, azzal megbírkózott: volt már elsődleges domain controller, POP3 és SMTP szerver, SharePoint Team Services, MS SQL szerver is futott rajta, és tűrte a távoli adminisztrációt és a remote debuggolást is. TCP/IP-n keresztül transzparens módon része lett a hálózatnak, és nem is igazán látszott nyoma annak, hogy ez nem egy különálló gép a hálózatban, hanem csak egy virtuális, valójában nem is létező számítógép.

[oldal:DOS használata Virtual PC-vel; zárszó]

Ha esetleg játszani szeretnénk régebbi játékainkkal, és kompatibilitási problémák merülnek fel, akkor most már menekülhetünk a régi, megszokott DOS-os környezethez is, anélkül, hogy erre külön számítógépet, partíciót, vagy floppy lemezeket használnánk fel.

A DOS felinstallálása után (legyen az akár 6.22, vagy például 7.0) érdemes azonnal feltelepíteni a Virtual PC kiegészítéseit DOS-hoz, mivel ezáltal lesz elérhető az egérkezelés, és CD-Rom támogatás is. A Virtual PC a CD-Rom drivereinek konfigurációját csak a config.sys-be írja be automatikusan, ezért kézzel módosítani kell az autoexec.bat-ot is, hogy az MSCDEX.EXE inicializálja a CD meghajtót, és kiossza neki a kért betűjelet. Ezt az MSCDEX.EXE /D:IDECD001 sor beírásával tehetjük meg, ekkor az első szabad betűt rendeli hozzá a meghajtóhoz. A hangkártya használatához nincs szükség semmilyen driverre, elég, ha beírjuk a SET BLASTER=A220 I5 D1 H5 P330 T6 sort az autoexec.bat-ba.

Ezek után egy teljes értékű MS-DOS-t kapunk, ami minden tekintetben megfelel a 10 évvel ezelőtti igényeknek, és a nosztalgikus hangulatú játékosoknak. A Virtual PC bővítményeinek segítségével még a host PC könyvtárainak megosztására is lehetőség nyílik, azonban ez csak akkor használható, ha nincs EMS memória inicializálva az operációs rendszerben. A driverek alacsony száma, és kicsi memóriafoglalásuknak hála rengeteg konvencionális memóriát lehet szabaddá tenni, így szinte minden program egyetlen konfigurációval elindul, még akkor is, ha EMS memóriát is használunk, ami jelentősen lefoglal a konvencionális memória területéből.

A Virtual PC sok informatikával foglalkozó ember életét könnyíti meg, legyen szó akár otthoni felhasználókról (akik talán csak játszani szeretnének), vagy akár rendszermérnökökről, programozókról.

A rendszermérnököknek, adminisztrátoroknak akár egyetlen számítógépen is lehetőségük van bármilyen komplex hálózati infrastruktúra létrehozására, tesztelésére. A hálózatok változásának tervezésekor, vagy új szoftverekre, operációs rendszerekre történő átálláskor is hasznos segítség a Virtual PC, amivel akár a régi operációs rendszerünket is behívhatjuk az új operációs rendszeren, egy külön ablakban.

Akkor sem rossz megoldás, ha szeretnénk, hogy a családtagok ne a mi operációs rendszerünkön dolgozzanak, játszanak, hanem inkább egy teljesen különálló rendszeren, amit kedvükre módosíthatnak, anélkül, hogy a komolyabb következményektől tartani kellene.

A programozók és programtesztelők kipróbálhatják szoftvereiket az összes létező platformon, egyetlen gépen, anélkül, hogy minden operációs rendszernek külön partíciót szánnának, sőt, a virtuális PC nincs is közvetlenül géphez kötve, így bármely számítógépen életre lehet kelteni a guest PC egy-egy példányát. Ezzel a módszerrel könnyen létrehozható tetszőleges számú másolat egy adott operációs rendszerről, az összes aktuális beállításával együtt, és nem kell félnünk attól, hogy az új gépen a hardver különbözősége miatt problémák történnének.


Mozilla a RedHat 8-at futtató guest PC-n

A felsorolt példákon kívül valószínűleg még számtalan lehetőség kínálkozik mindazoknak, akik látnak egy virtuális PC-ben fantáziát.

Akik találkoztak a szoftver előző, Connectix által kiadott verzióival, azok is kellemesen fognak csalódni, mivel a hálózat beállítása sokkal rugalmasabbá, egyszerűbbé vált, és a rendszer sebessége is javult.

A Microsoft a következő év elejére ígéri a Virtual Server nevű termékét, amely kifejezetten szerverként használt operációs rendszerek számára készül. Ezt várhatóan a konkurens VMware szerveralapú virtuális technológiáinak ellenfelének szánják. Kíváncsian várjuk.

Szólj hozzá a fórumban!

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról