"Emulace" počítače - VMware Workstation 4.0

S pomocí VMware Workstation můžete snadno a rychle "emulovat" nový počítač, takže spustit si na linuxu MS Windows (klidně i obráceně) nebo FreeBSD není zase takový problém...

24.2.2004 13:00 | Ondřej Čečák | přečteno 11377×

O co jde

VMware Workstation je komerční software od firmy VMware, Inc., který umožňuje emulaci (spíš simulaci) PC ve virtuálním prostředí na tom stávajícím.

Emulovaný počítač nebude (nemůže) mít identický hardware s hostitelským, procesor sice ano ("emulovaný" kód se totiž spouští ve speciálním prostředí přímo na procesoru; podporována je pouze x86 architektura), velikost operační paměti je ale omezena (těžko emulujete 4 GB operační paměti, pokud se bavíme o 32 bitovém systému), grafická karta je jakási SVGA (už je možné rozumně přehrávat filmy, ale 3D akcelerace stále není dostupná). Síť obstarává virtuální 10Mbit síťová karta (od AMD a podporovaná přímo linuxovým jádrem). Trochu víc možností máte v discích, nabízena je klasická floppy (klidně i více, ať už fyzických zařízení nebo virtuálních imagů), IDE zařízení (pro čtení cdromů a dvdromů, obrazové DVD není podporováno, disky s velikostí až 128GB; to vše může být samozřejmě jako fyzické nebo virtuální zařízení). Další možností je používat SCSI zařízení a to bez nutnosti mít na simulovaném OS nainstalované ovladače, opět je možné použít virtuální image. Zapomínat bych neměl na paralelní, sériové a USB (pouze specifikace 1.1) porty a zvukovou kartu (nově Creative Labs Sound Blaster AudioPCI).

Jeden z modulů umožňuje u VMware Workstation vytvoření virtuální sítě, kterou lze jednoduše zkonfigurovat díky šikovně napsaným skriptům. Možností konfigurace je víc: NAT (hostovaný OS tak má poměrně bezpečný přístup k síti), bridgované spojení (hostovaný OS se bude zdát jako samostatný počítač na zvolené síti), host-only (jediný, kdo může s hostovaným OS komunikovat je hostitel), až po custom (vytváření sofistikovanějších sítí). VMware používá několik zařízení /dev/vmnet*, které fungují jako virtuální ethernetové switche (současně jako drivery pro hostitelovo jádro), takže je možné připojit virtuální počítač k několika virtuálním switchům a simulovat si, co vás napadne.

Jak to funguje

Pokud je třeba emulovat další počítač na tom stávajícím, tak existuje několik možných způsobů, např.:

  1. Softwarově interpretovat jednotlivé instrukce (je to sice dost pomalé, ale daná architektura je opravdu věrně emulována).
  2. Dynamicky překládat strojový kód z hostovaného počítače na hostitelský (to je možná rychlejší, ale nevýhodou je právě složitý překlad).
  3. Vytvořit speciální prostředí na stávajícím procesoru a přímo na něm spustit kód (a problémové instrukce nějak šikovně ošetřit, toto řešení by mělo být poměrně rychlé, pokud není s odchytáváním problémových instrukcí nějaká potíž).
VMware používá hlavně poslední zmíněné řešení, ale snad i případně ostatní (v závislosti na kódu, který má běžet). Rychlost tedy v ideálním případě odpovídá možnostem hostitele, ale třeba při I/O operacích začíná díky použitému řešení pokulhávat, i když se snaží některé operace optimalizovat.

Instalace na hostiteli

Podotýkám, že jako hostitelský OS předpokládám GNU/Linux. Podporována jsou jádra pro jednoprocesorový stroj od 2.0.32 a pro víceprocesorové stroje to jsou jádra 2.2.x a 2.4.x (simulovaný počítač bude vidět pouze jeden z procesorů, firma VMware nicméně také nabízí program, který umožňuje pracovat na SMP strojích). Hardwarová náročnost je úměrná vašim požadavkům, pokud chcete používat více virtuálních strojů najednou, bude potřeba především dost volné paměti.

Vlastní instalace probíhá na hostitelském počítači jednoduše, vybrat si můžete mezi .rpm balíčkem nebo klasickým .tar.gz. Po rozbalení stačí prakticky pouze spustit instalační skript napsaný v perlu a nechat se vést průvodcem. Pokud není průvodce to pravé, je možné spustit trochu strohý editor, kde si nastavíte vše potřebné.

VMware (zkrátím název) používá pár modulů, které je nutné zavést do jádra. Pro několik distribucí (resp. distribučních jader) jsou připraveny hotové binární moduly, ale není problém je nakompilovat pro vlastní jádro (požaduje gcc 2 a výše).

Trošku problém je s jádry 2.6.x, protože v buildu 6030 (který jsem zkoušel) nejsou hotové moduly, ale hlavně není možné zkompilovat vlastní moduly bez úprav kódu. Naštěstí lze použít patche z adresy http://ftp.cvut.cz/vmware/, (vmware-any-any-update) se kterými funguje vše jak má (ale na vlastní nebezpečí :-)).

Po úspěšném nainstalování a zavedení patřičných modulů je možné VMware spustit, jednou z výhod nové verze (4.x) je přepracované grafické prostředí.

graficke prostredi VMwaru nastaveni hardwaru

Instalace "virtuálního" počítače

Nejprve je nutné vytvořit virtuální zařízení pro hosta, to znamená použít povedeného průvodce, který vás nechá vybrat mezi typickým a pokročilejším nastavením a podle zvoleného operačního systému (přes DOS, MS Windows, Linux, *BSD až třeba po NetWare) vytvoří patřičný hardware. Slovo virtuální je v nadpisu v uvozovkách, protože můžete klidně použít fyzická zařízení (datová a USB zařízení apod.)

Instalace hosta

Instalace hosta probíhá úplně stejně jako na jakémkoliv jiném počítači, stačí virtuální počítač zapnout (případně si podle potřeby nastavit virtuální BIOS) a nabootovat instalaci. Někdy je problém s autodetekčními programy u linuxových instalací (třeba Knoppix nebo Mandrake), grafická karta někdy není detekována správně, ale pokud si ručně nastavíte normální VGA nebo SVGA máte po problémech.

Zapomínat bych neměl na důležitou věc u virtuálních disků (emulováno může být několik IDE nebo SCSI zařízení). Image virtuálního disku zabírá na tom skutečném skoro stejně jako filesystémy na virtuálním. I když mu nastavíte maximální velikost třeba 10GB a zabere jenom 5GB, image bude zabírat pouze 5GB (zanedbávám režijní část VMware apod.).

Možnosti VMware Workstation

Po nainstalování virtuálního OS se vyplatí nainstalovat ještě VMware Tools, který obsahuje třeba grafické drivery (pro různé verze Windows a pro XFree86) a pár dalších možností (třeba synchronizace času s hostitelem, ve verzi 4.x nově přetahování souborů jednoduše pomocí "drag & drop", i když tohle zatím funguje pouze, pokud hostitelský systém i host jsou Windows a také sdílené adresáře přístupné pro hosta i hostitele).

Jak už jsem poznamenal nahoře, VMware se snaží některé I/O operace optimalizovat. Pokud si tedy zkusíte jako hosta nějaké starší Windows (určitě 9x) znatelnou optimalizaci pocítíte při "formátování" disku. Tato starší Windows byla schopna "formátovat" disk velice dlouho, nebylo to prosté vytvoření filesystému. Na virtuální disku ale tato operace bude trvat místo desítek minut (v závislosti na velikosti disku) pouze pár vteřin.

Samotný host může běžet v okně (velice zajímavá vlastnost je ta, že kurzor myši plynule přechází mezi hostitelským systémem a hostem a pěkné to je, pokud je kurzor v obou systémech jiný). Samozřejmě je možné spouštět hosta i ve fullscreenu, takže někdo věci neznalý vůbec nemusí odhalit, že systém je simulován.

Knoppix ve VMwaru Windows ve VMwaru

Výhodou je vytvářet si pravidelně inkrementální snapshoty (nebo si to nastavit automaticky). Důležité jsou v případě, kdy se chcete vrátit ke stavu, v jakém byl systém třeba při minulém spuštění).

Přes virtuální USB 1.1 je možné připojovat USB zařízení (bez nutnosti mít pro ně driver, naopak, zařízení musí být volné) a to klidně po připojení nebo po "ručním" připojení. V linuxu je pouze nutné, aby tato zařízení byla pro jádro (a VMware) viditelná.

Další z výhod VMware je funkce suspend, kdy se obsah paměti uloží na disk a hlavně - systém je možné později poměrně bezpečně probudit :o). Zkoušel jsem to na různých systémech a jediný problém, kterého jsem si všimnul byl kurzor u Windows hosta, který nebyl úplně plynulý.

Nasazení VMware Workstation

VMware Workstation na celém světě používá více něž 1,4 miliónů uživatelů a hodí se pro různé činnosti, typicky pro vývoj aplikací na různých operačních systémech a také do určité míry na různém hardware nebo testování nových aplikací. Díky síťování je možné i poměrně pohodlně prověřovat vzdáleně bezpečnost hostovaného systému a při dostatku operační paměti a systémových prostředků si můžete vytvořit i malou virtuální síť, proto se WMware hodí k vývoji a testování aplikací v síťovém prostředí na jednom počítači. Na spouštění aplikací pro Windows na linuxu se mi tento program nezdá moc vhodný, především kvůli ceně. Další z oblastí, kde je nasazení VMware Workstation poměrně vhodné je vytvoření systému "honey pot", kdy je (nezabezpečený) systém návnadou pro hackery, které je možné následně sledovat. Tato problematika je ale mimo rozsah tohoto článku, proto vás odkáži na hodně webových stránek které najde google. VMware se rozhodně nehodí pro aplikace vyžadující grafický akcelerátor, protože i když hostitel má takové zařízení k dispozici, host ho nemůže použít. Takže nelze hrát třeba OpenGL Windows-only hry (k tomu stejně není tento program určen).

Firma WMware mimo to dále nabízí Enterprise řešení (VMware ESX Server a VMware GSX Server), které jsou zase trochu jinde.

Licence a cena VMware Workstation

VMware Workstation je komerční uzavřený software, který vyvíjí především firma VMware Inc. (která byla, pokud vím, nedávno koupena společností EMC za asi 650 miliónů dolarů).

Velkou výhodu je možnost si VMware Workstation vyzkoušet úplně zdarma, po zaregistrování a vyplnění krátkého dotazníku obdržíte aktivační klíč fungující 30 dní. Na email zadaný při registraci vám VMware pošle občas pár novinek, ale pouze po dobu, kdy můžete VMware používat bezplatně. Pak už bude nutné si program koupit. Cena ve VMware Store je $299 za elektronickou verzi a $329 za klasickou krabicovou.

To je samozřejmě cena pouze za VMware, pokud budete chtít provozovat jako hosta třeba Windows, je samozřejmě nutné koupit si licenci (nejlepší bude se poradit s prodejcem, protože konkrétně mi není jasné, jak lze využít třeba licence na stávající počítač nebo na více virtuálních počítačů současně apod.)

Konkurenti

Konkurenty VMware produktů jsou programy Virtuozzo a MS Virtual PC (pouze na Windows).

Zkusit můžete ale i Win4Lin, Bochs a nebo UML, které jsou svým zaměřením vhodné pro jiné, ale podobné účely.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=53