Hlavní navigace

Seznamte se s WINE

David Šiška 25. 4. 2001

Pokud nevystačíte s nativními un*xovými aplikacemi, může vám pomoci WINE. V tomto článku se na něj podrobněji podíváme.

Začneme tím, co WINE není. Podle názvu WINE není emulátor (Wine Is Not an Emulator ). WINE je totiž implementace Microsoft Windows API pro UNIXy. Protože se blíží verze 1.0, pravděpodobně o WINE ještě hodně uslyšíme.

Co? Implementace Windows API?

Velmi zjednodušeně rečeno WINE je program, který umožňuje spouštění nezměněných Windowsovských programů na Linuxu, *BSD a Solarisu, ovšem pouze na procesorech i386 kompatibilních (třeba Pentium, AMD K6, AMD K7 atd.). WINE nepotřebuje ke svému běhu nainstalovaná Windows, ale pokud je máte, umí využít nainstalované DLL knihovny a programy. Nyní WINE obsahuje asi 90% API Windows.

A jak WINE funguje?

Teoreticky je to docela jednoduché: WINE načte Windowsovský exe soubor, přelouská hlavičku, která je jiná než u ELF binárních souborů používaných na Linuxu, a začne vykonávat nativní instrukce pro procesor i386. Pokud narazí na volání Windows API, které má implementované, použije svoji implementaci, která zase použije odpovídající API Linuxu, X11, nebo window manageru. Pokud funkci nemá implementovanou nativně, použije tu z volané DLL knihovny. Takže program krásně běží. Může se stát, že se program pokusí šáhnout přímo někam na hardware a to mu WINE nedovolí, v tu chvíli je nejspíš s programem konec. To se mi stalo u několika her, které vypadaly, že poběží jedna radost, ale pokusily se zkontrolovat, že jsou spouštěny z CDčka (ochrana proti pirátům? ), v tu chvíli byl konec, třeba se dožadovaly vložení CD, i když v mechanice bylo. Z tohoto vyplývá, že nejspíš nebudou fungovat programy používající VxD ovladače, což ale dnes až tak nevadí, protože ty by většinou neběhaly ani pod Windows NT.

Výsledky WINE

Programy, co jsem zkoušel a fungovaly mi bez instalace Windows: Microsoft Excel, WinZip, Netscape Navigator, Delphi 3.0, StarCraft, Unreal, MDK a spousta dalších.

Naopak nefungoval mi: Internet Explorer, nepovedlo se mi ho nainstalovat, ale prý pokud máte instalaci Windows, tak funguje. Microsoft Word, ten taky má fungovat. Microsoft Flight Simulator, Commandos a spousta dalších.

Nicméně pokud chcete WINE kvůli jednomu specifickému programu, podívejte se na: http://www.wi­nehq.com/Apps/qu­ery.cgi, kde najdete výsledky pokusů se spoustou různých programů. Pokud Vás zajímají nejvíce hry, pak se podívejte na: http://www.li­nuxgames.com/WI­NE. A také na stránky firmy TransGaming. Firma TransGaming se totiž rozhodla pro své zákazníky zfunkčnit jakoukoliv hru pro Windows tím, že implementuje všechny DirectX API, která hra používá. Kdo dá firmě TransGaming nějaké peníze a stane se tak jejím zákazníkem, může hlasovat o tom, která hra bude další na řadě při zprovozňování.

Díky tomu, že WINE není emulátor, ale používá nativní kód nebo odpovídjící nativní funkce, je běh programů pod WINE až neuvěřitelně rychlý (umí například i využít i 3D akceleraci, pokud ji máte pod X windows zprovozněnou ). Třeba hra StarCraft běží jen o něco málo pomaleji než pod Windows a hra Unreal byla na Celeronu 433 se 128MB RAM bez 3D akcelerace ještě docela použitelná. Ve chvíli, kdy bude vypuštěna verze 1.0, která nebude obsahovat kód pro ladění, by vše mělo fungovat stejně rychle jako pod Windows.

Poslední výhodou WINE je, že pád jednoho programu by neměl shodit jiné programy puštěné pod WINE. Může se stát, že nějaká hra zablokuje myš a klávesnici, ale pak je vždy možné zmačknout CTRL+ALT+F1, dostat se ke konzoli příkazem „killall wine“ se problémového programu zbavit, a pak se do X windows vrátit.

Kde WINE najdu?

Wine se dá stáhnout buď z http://www.wi­nehq.com/downlo­ad.shtml, kde mají odkazy jak na zdrojáky, tak na balíčky RPM. Pokud nechcete WINE kompilovat, doporučuji balíček od CodeWeavers, který navíc obsahuje třeba grafického průvodce konfigurací a jiné vychytávky.

Pokud se rozhodnete WINE zkompilovat, stáhněte si soubor Wine-20010305.tar.gz nebo novější. To dlouhe číslo je datum (rok, měsíc, den) vytažení tohoto souboru z CVS.

Potom rozbalte třeba příkazem:

tar -xv –use=gzip -f Wine-20010305.tar.gz

cd wine-20010305

Spusťte konfigurační skript s patřičnýmy parametry (pokud neznáte možnosti, použijte „./configure –help“

./configure

Spusťte kompilaci příkazem:

make

a jděte na kafe. Až bude hotovo, spusťte instalaci:

make install

Nyní Vás čeká konfigurace Windows. Pokud Windows nemáte nainstalované vůbec, vytvořte si někde adresář, co bude pro Windows disk C. Může to být na jakékoliv partition (pokud vím; nicméně ext2 funguje určitě). V tomto adresáři vytvořte adresáře:

windows, windowssystem a temp

Potom si otevřete soubour ~/.wine/config a pozmněňte ho tak, aby odpovídal Vašemu systému. Je to poměrně jednoduché, nicméně zde je HOWTO.

Pokud nyní chcete WINE vyzkoušet, sežeňte si Windowsovský program a spusťte ho příkazem:

wine jmeno.exe

Docela užitečné jsou i příkazy:

ps -Al | grep wine

killall wine

První zkontroluje, jestli wine ještě někde běží, a druhý ho zruší. Někdy totiž WINE při pádu Windowsowského programu někde zapomene některé ze svých vláken (procesů).

Závěr

Už nyní je WINE velmi použitelný zvláště s některými aplikacemi a má několik výhod oproti produktům podobného zaměření: je úplně zadarmo, není sice šířen pod GPL, ale pod licencí podobné licenci X Windows, a nepotřebujete licenci pro Windows. Běh programů je mnohem rychlejší než třeba pod VMware a je podstatně méně náročný na pamět. Pro vývojáře programů pro Windows nabízí WINE navíc tzv. WineLib, což

jsou knihovny a hlavičkové soubory umožňující kompilaci programů pro Windows napsaných v C a C++ pro většinu UNIXů na jakémkoliv procesoru (tj. třeba i pro Apple Mac s Mac OS X nebo SGI IRIX ).

Pokud se podaří ho dovést do verze 1.0, může se snadno stát onou poslední kapkou, která doposud chyběla k masovému rozšíření Linuxu. K tomu mu zatím chybí o něco větší úspěšnost a o něco snazší použití. Nicméně stále sleduji vývoj a těším se na dobu, kdy mi bude fungovat jakýkoliv program, na který si vzpomenu. Nakonec se chci ještě omluvit za to, že všechny odkazy vedou na stránky v angličtině.

Našli jste v článku chybu?

16. 4. 2011 11:28

Karel (neregistrovaný)

Když třeba dám spustit nějakou hru tak mi to spouští přes wine cca 2-4minuty nevíte proč

5. 9. 2006 7:52

uživatel si přál zůstat v anonymitě
Zdravím mám Mandrivu 06 a po instalici RPM balíčku a spuštění wine, případně jeho configurační aplikace mi spadne KDE. Píše to že to vyvolalo signál 11(SIGSEGV). Backtrace je napsáno že "tento backtrace se zdá být nepoužitelný". Prý byly balíčky sestaveny způsobem, který znemožňuje vytvoření plnohodnotného backtrace nebo došlo k poškození zásobníku paměti.

Dále tam je: No debugging symbols - Using host libthread_db library "/lib/tls/lithread_db.so.1

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat