Wine je softvér, ktorý umožňuje operačným systémom podobným Unixu na architektúrach x86 a x86-64 spúšťať programy napísané pre systém Microsoft Windows. Wine poskytuje aj softvérovú knižnicu známu ako Winelib, na základe ktorej môžu vývojári kompilovať aplikácie pre systém Windows, aby ich mohli preniesť na systémy podobné Unixu. Časť kódu Wine sa používa v ReactOS, slobodnom operačnom systéme, ktorý je kompatibilný so systémom Windows a nie je založený na Unixe.

Vývojári Wine vydali verziu 1.0 Wine po 15 rokoch vývoja 17. júna 2008. Wine je slobodný softvér vydaný pod podmienkami licencie GNU Lesser General Public License (LGPL).

Ako Wine funguje

Wine nie je emulátor v tradičnom zmysle—je to skôr implementácia rozhraní (API) Windows nad systémovými volaniami Unixu. Namiesto emulácie hardvéru Wine prekladá volania Windows API na volania POSIX a používa natívne linuxové knižnice, grafický subsystém X11 alebo Wayland a zvukové rozhrania ako ALSA alebo PulseAudio. Wine obsahuje implementácie mnohých knižníc (DLL) používaných aplikáciami pre Windows a vlastný PE (Portable Executable) loader, aby mohol spúšťať .exe a .dll súbory priamo.

Používanie a základné nástroje

  • Najbežnejší spôsob spustenia Windows programu je príkaz wine program.exe.
  • Konfigurácia a správa prostredia Wine sa vykonáva cez winecfg, ktoré umožňuje nastaviť verziu Windows, ovládače, zvuk a ďalšie.
  • Wine používa tzv. wineprefix (predvolene ~/.wine), čo je adresár obsahujúci virtuálny „Windows“ systém s registrovými nastaveniami, nainštalovanými programami a virtuálnymi diskami. Je možné vytvárať izolované prefixy pomocou premenných prostredia, napr. WINEPREFIX=~/mojprefix winecfg.
  • Užitočné doplnky: winetricks (skript na rýchlu inštaláciu knižníc a komponentov), grafické správce ako PlayOnLinux, Lutris alebo Bottles.

Winelib a prenos aplikácií

Winelib umožňuje vývojárom skompilovať zdrojový kód napísaný pre Windows (používajúci WinAPI) do natívnych bináriek pre Unixové systémy so zachovaním veľkej časti pôvodnej logiky aplikácie. To uľahčuje portovanie aplikácií bez nutnosti úplného prepísania kódu.

Kompatibilita, výkonnosť a obmedzenia

Kompatibilita sa líši program od programu. Niektoré aplikácie, najmä jednoduché utilitky alebo staršie hry, bežia bez problémov, zatiaľ čo iné, ktoré silno využívajú nízkoúrovňové ovládače, špecifické softvérové kopírovanie alebo antitamper technológie, môžu fungovať len čiastočne alebo vôbec. Wine často poskytuje lepší výkon než plná virtualizácia, pretože beží priamo nad jadrom hostiteľa bez emulácie CPU. Napriek tomu môžu byť problémy s kompatibilitou grafických rozšírení, DirectX implementáciou alebo proprietárnymi ovládačmi.

Projekty a ekosystém

  • Valve vyvinula Proton—vrstvu pre spúšťanie Windows hier v službe Steam—ktorá je založená na Wine a pridáva množstvo opráv a integrácií pre hry (mesačné aktualizácie, podpora Vulkan, DXVK ap.).
  • CodeWeavers ponúka komerčnú verziu Wine s názvom CrossOver, ktorá prináša platenú podporu a ďalšie vylepšenia.
  • Komunitné databázy kompatibility (AppDB) a fóra poskytujú informácie o tom, ktoré aplikácie a hry fungujú a aké nastavenia sú potrebné.

Krátka história

Projekt Wine začal v polovici 1990-tych rokov (iniciátor Alexandre Julliard) s cieľom urobiť možné spustenie Windows aplikácií na Unixových systémoch bez potreby emulácie. Po dlhom vývoji bola vydaná verzia 1.0 v roku 2008. Odvtedy projekt pokračuje aktívnym vývojom, so stabilnými, vývojárskymi a „staging“ vetvami, ktoré obsahujú experimentálne patche.

Tipy pre používateľov

  • Pred inštaláciou skontrolujte AppDB alebo komunitné fóra, či je aplikácia podporovaná a či sú potrebné špeciálne nastavenia.
  • Pre hry využite Proton, DXVK (DirectX over Vulkan) alebo pripravené profily v Lutris/PlayOnLinux.
  • Používajte oddelené wineprefix pre rôzne aplikácie, aby sa predišlo konfliktom knižníc a nastavení.
  • Pri problémoch zapnite logovanie spustením Wine s premennou prostredia WINEDEBUG alebo hľadajte riešenia v chybových hláseniach.

Wine zostáva dôležitým nástrojom pre používateľov Linuxu a ďalších Unixových systémov, ktorí potrebujú spúšťať aplikácie vyvinuté pre Windows bez plnej virtualizácie alebo duplikácie systému.