Hlavní navigace

Jak si poradit s nelinuxovým programem v Linuxu?

17. 8. 2008
Doba čtení: 5 minut

Sdílet

Možná se dostanete do nouze, kdy nebudete schopni nalézt náhradu za určitý program, případně nebudete schopni použít nic jiného než konkrétní nelinuxový program, zvláště pokud jste linuxový začátečník a dané problematice prostě nerozumíte. Existuje několik celkem snadných způsobů, jak problém vyřešit.

Častým omylem je tvrzení, že programy z MS Windows není možné v Linuxu přímo spouštět. Není to totiž pravda úplná a spíše platí, že podstatnou část programů v Linuxu spustíte a budete moci použít, jen musíte vědět jak. Panuje také názor, který říká, že pokud nebude Linux umět spouštět MS Windows programy jaksi sám od sebe, nikdy se nerozšíří. Kromě toho, že je to skoro zvrácené (Linux nemá být jen jinými MS Windows, nedej Bože MS Windows zadarmo), objevují se protiútoky v podobě otázky, zda MS Windows umí spouštět linuxové programy. Porovnání uživatelské základny MS Windows a Linuxu vyznívá jasně pro Windows, ale logiku to má. Linux je však v pozici toho, kdo se chce rozšířit na úkor jiného OS, proto si musí uživatele – začátečníky předcházet. Je také pravda, že řada uživatelů používá Linux z úplně jiných důvodů a tato věc je pro ně jen okrajovou záležitostí.

Problematiku spouštění „vetřeleckých“ programů lze řešit několika způsoby. Způsobem prvním jsou tzv. virtuální stroje. Jedná se o speciální program, který softwarově dokáže emulovat procesor a jeho instrukce. Tomuto virtuálnímu počítači pak předhodíte operační systém, nainstalujete jej a provedete jeho spuštění. Operační systém si myslí, že běží na počítači a chová se podle toho. Linux pak může podobný virtuální počítač hostovat, tj. připravovat mu běhové prostředí a program se postará o zbytek.

Toto řešení má dva celkem velké nedostatky. Protože se jedná o emulaci, už z podstaty věci musí být pomalejší, než když vedle sebe postavíte stejný kus hardware na stůl s příslušně nainstalovaným OS. Dané programy pak na vašem počítači s hostovaným systémem poběží pomaleji (někdy i výrazně pomaleji a na hranici provozovatelnosti), než by běžely, pokud by běžely přímo na procesoru vašeho počítače a v daném OS. Zpomalení samozřejmě způsobuje software, který emulaci vytváří.

Druhým nedostatkem je fakt, že i když se jedná o „virtuální“ počítač a chcete na něm takto provozovat operační systém, musíte za licenci pro použití zaplatit (pokud to tak výrobce OS požaduje), úplně stejně, jako by se jednalo o fyzický hardware. Není tak problém na svém počítači rozjet třeba tři virtuální počítače (které poběží uspokojivou rychlostí), jen musíte zaplatit za 3 licence operačního systému. Emulace má naopak velkou výhodu pro starší software, kterému jsme pak schopni vytvořit virtuální počítač dle jeho požadavků (a třeba i příslušně pomalý). Jedná se třeba o 20 let staré hry, které pro svůj běh vyžadovaly počítač třídy XT nebo AT. Vždyť procesor ve vašem mobilu má dnes lepší výkon než tehdejší počítače!

Začněme programem VMWare Player, což je typický zástupce kategorie programů označovaných jako emulátory. Jedná se o freewarový program, který je nabízen zdarma. Je to však nesvobodný software. Jeho velkou výhodou je možno spatřit v tom, že pod ním můžete provozovat prakticky libovolný operační systém, jaký si usmyslíte.Chcete v Mandrivě provozovat Ubuntu? Žádný problém. Chcete na serveru provozovat několik operačních systémů s různými servery? Taktéž vám nic nebrání.

Verze Player má však omezení v tom, že umí virtuální stroj pouze spouštět, ne vytvářet. Musí jej pro vás někdo připravit. Jinak je produkt multiplatformní a lze jej provozovat ve spoustě OS (tj. VMWare Player je možno stáhnout jako spustitelný program pro několik OS jako jsou MS Windows, MacOS či Linux). Existuje oficiální úložiště s různými předpřipravenými obrazy operačních systémů.

Abyste mohli vytvářet virtuální počítače, pořiďte si produkt VMWare Workstation, který vám umožní vytvořit si vlastní virtuální počítač, jinak má stejné vlastnosti jako verze Player. Existují také nástroje třetích stran, které vytváření virtuálních počítačů pro VMWARe Player umí a jsou šířeny zdarma. Postup, jak vytvořit obraz vámi zvoleného OS jen s pomocí pár utilit najdete např. zde. Můžete si však svůj obraz vytvořit na webu pomocí projektu EasyVMX. Řada linuxových distribucí však nabízí i verzi přímo připravenou pro běh ve VMWare.

Mezi linuxáři však má lepší zvuk QEMU. Jedná se vlastně o podobně fungující program jako jsou produkty od VMWare, jen je šířen pod licencí GNU GPL. Svého času mezi sebou oba produkty bojovaly (a stále ještě bojují), ale nakonec přišel QEMU s tzv. akcelerátorem, který dokáže výrazně urychlit běh emulátoru, takže pro spoustu uživatelů se stal vhodnou a jedinou možností. QEMU je také multiplatformní, nicméně akcelerátor je dostupný jen pro Linux. Jinak lze říci, že vlastnostmi jsou si oba produkty velmi podobné. Na základě QEMU vzniklo i několik dalších projektů, sluší se jmenovat komerční VirtualBox nebo Win4Lin Pro Desktop.

Samostatnou kategorii programů však tvoří projekty, které nejsou v pravém slova smyslu emulátory procesoru a jsou zaměřeny jen a pouze na jeden operační systém. Stěžejním produktem je Wine. Je to aplikace, která umožní v unixových operačních systémech spouštět aplikace napsané pro MS Windows. Zdatnější uživatelé Wine jsou velmi citliví na to, když o tomto programu hovoříte jako o emulátoru, neboť Wine jím není. Wine implementuje kompatibilní vrstvu, zajišťující alternativní implementaci programových knihoven, které Windows programy volají a zpracovávají vzhledem k jádru MS Windows. Tvorba tohoto produktu není vůbec jednoduchá, neboť ne všechny specifikace jsou známy, protože Microsoft je nedal k dispozici. Proto některé programy fungují, některé ne. Wine je šířen pod licencí LGPL a dnes je asi bezkonkurenčně nejpoužívanější software svého druhu, který je zdarma. Existují totiž i komerční odnože Wine, konkrétně od firmy Codeweavers, která má k dispozici tzv. CrossOver Linux a pak Cedega od firmy Transgaming. První jmenovaný se zaměřuje spíše na aplikace, zatímco druhý produkt je zaměřen čistě jen na hry.

root_podpora

Pokud zatoužíte provozovat staré hry a programy ještě z éry DOSu, taktéž nemusíte truchlit. Existuje projekt DOSEMU nebo DOSBox, které dokáží spouštět aplikace pro právě tyto systémy určené. Fungují velmi dobře a zajistí i to, že na vašem rychlém počítači půjde spustit hra, která je třeba i 20 let stará a poběží plynule. S příchodem procesorů třídy Pentium se totiž mnoho starších her stalo nehratelnými, protože tento procesor byl příliš rychlý na to, aby hry dokázaly rozumně běžet. Jako alternativní řešení se ještě nabízí spuštění OS FreeDos (klasický DOS) nebo ReactOS (Windows; pozor, je zatím ve fázi vývojářské verze a někdy je nestabilní) ve VMWare či QEMU. A jako hlavní výhodu všech řešení v článku zmíněných, počínaje Wine, bych chtěl zmínit fakt, že můžete ušetřit. Licenci původního systému totiž nepotřebujete, např. pro běh Wine tak nemusíte mít žádnou platnou licenci od Microsoftu.

Z dnešního článku vidíte, že obvykle není nutné skládat ruce do klína před tím, že nějaký program určený pro MS Windows vám v Linuxu nepoběží. Asi se vám povede jej spustit. Systémovější řešení je ovšem zamyslet se, zda v Linuxu neexistuje alternativa, protože jakákoliv emulace se nikdy nevyrovná běhu aplikace přímo napsané pro Linux.

Byl pro vás článek přínosný?

Autor článku

Pracuje na pozici IT architekta pro firmu zabývající se zpracováním ropy a výrobou produktů z ní. Navrhuje rozličná řešení a jejich integraci do firemní infrastruktury na základě firemních standardů bezpečnosti nebo plánů obnovy.