Emulátor je speciální software, který umožní běh programů na operačním systému/platformě/architektuře, jež je jiná, než pro kterou byl původně určen. Jednoduše řečeno – můžete na počítači s Linuxem spustit hry, které byly napsány např. pro již zmiňovaného GameBoye. Právě herní konzole (GameBoy, Sega, Playstation), osmibity (Atari 800/130, ZX Spectrum, Commodore) a šestnáctibity (Atari 520/1040, Amiga) jsou pro mnoho lidí tahákem a lákadlem, proč se o tyto programy zajímat. Je zde však velká skupina lidí, která používá emulátory hlavně proto, aby mohla spouštět Windows programy v Linuxu.
Pozor si při používání emulátorů dejte na software, který budete na emulátoru používat. Jedna věc je mít emulátor např. již zmiňovaného GameBoye, druhou věci je mít tzv. ROM obrazy her. Řada z nich je samozřejmě chráněna autorskými právy výrobců. Jejich použití pak je nelegální. Existují jisté aspekty, které vám umožní zkopírovat si obsah vámi vlastněných cartridgí, já to však nechám právníkům. I tak ovšem seženete spoustu výtvorů šířených pod svobodnou nebo volnou licencí.
Každý „přeběhlík“ od Windows k Linuxu, který o věci skoro nic neví, je ze začátku velmi zaskočen tím, že v Linuxu nelze spouštět Windows programy. Typicky – hry. A proto se mnoho lidí dívá na Linux skrz prsty. Ihned však zjistí, že svět svobodného softwaru nabízí mnoho plnohodnotných náhrad, ale zároveň je zde také určitá skupina programů, která nemá svou linuxovou verzi a nic jiného vám nezbývá. Třeba účetní programy.
Vy, kteří čtete tento časopis, asi nějaký názor na celou záležitost máte. Tímto článkem bych chtěl upozornit na to, že všechno není ještě úplně ztraceno. Právě emulace může být v mnoha případech tím správným řešením. Existuje ještě jedna metoda, která se nazývá virtualizace, ale ta má oproti emulaci jednu podstatnější nevýhodu – potřebujete mít licenci na daný operační systém (pokud není svobodný). A to něco stojí. O virtualizaci se dočtete v jiných článcích tohoto čísla.
Pomocí emulátoru spustíte v Linuxu mnohé programy z Windows.
Emulace spočívá v tom, že emulátor se snaží vytvářet takové běhové prostředí, které by zachytávalo požadavky daného programu a zároveň je „překládalo“ pro cílový systém. Podíváme-li se na výhody, je zde jedna velmi zřejmá. S emulátorem si nemusíte kupovat licenci operačního systému (typicky Windows), stačí jen vlastní program. Obrovskou nevýhodou je to, že emulovaný program běží vždy pomaleji, než jak by běžel na stejném počítači v původním systému. S tímto faktem však nic nezmůžete.
Další velkou nevýhodou je to, že emulátory nejsou a nikdy nemohou být úspěšné ve sto procentech případů. Je třeba se totiž pozastavit nad tím, jak je takový emulátor naprogramován. Jste-li totiž nezávislý programátor a emulujete nějaký nesvobodný systém, nemáte k dispozici zdrojové kódy a váš emulátor umí emulovat daný systém jen pomocí metod tzv. zpětného inženýrství. Prostě a jednoduše se snažíte zjistit, jak na požadavky programů odpovídá daný emulovaný systém. Je to velmi zdlouhavé a nikdy nemůžete přesně zjistit co a jak, většinou jen hádáte. To je velmi důležitý fakt. Pro koncového uživatele z toho vyplývá jediné – některé programy prostě nemusí fungovat, jiné se mohou chovat nepředvídatelně, ale pokud se vám jej podaří spustit, obvykle již funguje dobře.
Asi nejpoužívanějším emulátorem Windows běhového prostředí je program nazvaný Wine. Ze svých zkušeností vím, že existují balíčky pro všechny nejpoužívanější linuxové distribuce. Ten pak dle obvyklých postupů pro danou distribuci nainstalujete a pak už můžete spouštět programy. Mně se velmi osvědčil postup, kdy daný Windows program, který jsem si někam uložil, spustím nejlépe tak, že před název spustitelného programu napíšu v příkazové řádce slovo wine. Pak to vypadá např. wine start.exe . Emulátor to pochopí tak, že chci spustit program start.exe a vytvoří takové běhové prostředí, které se pokusí program spustit.
Ačkoliv se pro uživatele Wine chová jako emulátor prostředí Windows, technicky vzato jím není. Už samotný název se vysvětluje jako „Wine Is Not an Emulator“. Na jeho schopnostech mu to ovšem nijak neubírá. Pozn. šéfredaktora.
Pokročilejší variantou zaměřenou přímo na emulaci Windows pro hry je emulátor Cedega. Je odvozen od Wine, ale obsahuje část kódu, která není svobodná. Zdrojové kódy jsou k dispozici, je však zakázáno šířit zkompilovanou verzi. Každý uživatel má možnost si Cedegu zkompilovat sám, ovšem je to velmi náročné. Kolem celého tohoto programu se táhne několik nejasností a sporů. Když totiž vývojáři Wine zjistili, že Cedega používá jejich kód, ihned změnili licenci na LGPL, aby donutili udělat Cedegu to stejné (tj. dle licence musí mít odvozený program stejnou licenci). Firma Transgaming stojící za Cedegou tento fakt akceptovala, ale stále jsou zde nějaké spory týkající se kódu, který je neveřejný a licencovaný. Koncového uživatele tak bude asi nejvíce zajímat fakt, že k programu Cedega se lze dostat skrz některé komerční linuxové distribuce (třeba Mandriva 2007 CZ ji obsahuje) nebo nákupem předplatného na stránkách výrobce (5 USD na měsíc).
Pokud se však pro Cedegu rozhodnete, dostanete prostředí, které podporuje stovky her včetně nejnovějších titulů a určitě svého kroku nebudete litovat. Toto prostředí by nebylo nic neobvyklého, je nutno ovšem zdůraznit, že si umí poradit i s ochranami CD/DVD her. Jejich podpora je přidávána ve spolupráci s výrobci, nejde o žádný „hacking“.
Existuje projekt nazvaný ReactOS, který se snaží kompletně emulovat Windows. Momentálně je ve stadiu vývojářských verzí, ale je možno jej vyzkoušet (www.reactos.org). Snaží se být kompletním emulátorem Windows a dá se říci, že se mu to daří. Jenže to není klasický emulátor, ale samostatný systém, který lze na počítač nainstalovat a provozovat jej. (Psali jsme o něm v lednovém čísle 1/2007, pozn. šéfred.) Podobného ražení je i projekt FreeDOS, kompletně zajišťující běhové prostředí podobné MS DOS. Jeho použitelnost je však velmi dobrá.
Práce s Cedegou je pak podobná, jako byste pracovali s Windows. Dáte CD/DVD s hrou do mechaniky a pomocí Cedegy zavoláte instalační program (File-Install-tlačítko Browse v sekci Installer). Hra se nainstaluje a hned poté je již možno ji hrát (Mount-Play). Velmi jednoduché, podobně jako ve Windows. Takto se dají spouštět nejenom podporované hry, v mnoha případech fungují dobře i nevyjmenované hry. Chce to jen vyzkoušet. Samozřejmě, že nejste omezeni jen na hry, fungují dobře i programy, i když se Cedega zaměřuje spíše na emulaci DirectX rozhraní.
Oficiální vyjádření Microsoftu k projektu Wine neexistuje. Je ale asi jasné, že z něj radost určitě nemá, neboť mu ukrajuje z krajíce platících uživatelů. Projekt Wine se snaží mnoho uživatelů používat ve chvíli, kdy potřebují používat specifický Windows program, který buď Linuxu neexistuje (Internet Explorer) nebo jeho alternativy nedosahují jeho kvalit (Adobe Photoshop) a zároveň nechtějí utrácet peníze za licenci operačního systému.
Velmi oblíbené jsou mezi programátory i emulátory jistých hardwarových platforem, jako jsou mobilní telefony nebo PDA. Pro vývoj programů na tato zařízení jej pak ani nemusíte vlastnit. Emulátory jsou v mnoha případech vydávány přímo výrobci daného hardwaru.
Jistý názor na celé Wine nám Microsoft vyjadřuje u např. Internet Exploreru 7.0. Při jeho instalaci je nutné, aby daná verze systému prošla Ověřením pravosti Windows (anglicky značeno jako WGA). Právě mechanismus WGA však dokáže běžící Wine detekovat pomocí klíčů v registrech a uživatel je odmítnut s tím, že nevlastní legální Windows. Internet Explorer 7.0 si tak do Wine nenainstalujete.
Svět emulace je však mnohem širší a rozmanitější, než je emulace Windows. Na své si přijdou hlavně fanoušci starších a zapomenutých zařízení. Nemusíte totiž nikde složitě shánět po bazarech svůj oblíbený osmibit. Můžete si jej emulovat. Pamatujete si např. na herní automaty z osmdesátých let, do kterých se házely dvoukoruny, a chtěli byste si je připomenout? Pak ve vyhledávačích hledejte heslo MAME...