Víno (software) - Wine (software)

Víno
WINE-logo.png
Winecfg v 32bitovém režimu (v 5.5) .png
winecfg (Konfigurace vína) v 32bitovém režimu , oficiální konfigurační program pro Wine (verze 5.5)
Původní autoři Bob Amstadt, Eric Youngdale
Vývojáři Autoři vína
(1755)
První vydání 4. července 1993 ; Před 28 lety ( 1993-07-04 )
Stabilní uvolnění
6.0.1  Upravte to na Wikidata / 7. června 2021 ; Před 4 měsíci ( 7. června 2021 )
Náhled vydání
6,19  Upravte to na Wikidata / 8. Října 2021 ; před 2 dny ( 8. října 2021 )
Úložiště zdroj .winehq .org /git /wine .git
Napsáno C
Operační systém
Plošina x86-32 , x86-64 , ARM
K dispozici v Vícejazyčný
Typ Kompatibilní vrstva
Licence LGPLv2.1+
webová stránka winehq .org

Wine ( rekurzivní backronym pro Wine Is Not an Emulator ) je bezplatná a open-source vrstva kompatibility, která si klade za cíl umožnit aplikačnímu softwaru a počítačovým hrám vyvinutým pro Microsoft Windows běžet na operačních systémech podobných Unixu . Víno také poskytuje softwarové knihovny s názvem Winelib , proti kterému mohou vývojáři sestavit Windows aplikací na pomoc portu nich na Unix-jako systémy.

Víno poskytuje svým vrstva kompatibility pro Windows runtime systém (nazývaný také runtime prostředí), která překládá Windows systémová volání do POSIX -kompatibilní systémových volání , obnovovat adresářovou strukturu systému Windows a poskytují alternativní implementace systému Windows knihovny systému , systémové služby prostřednictvím wineservera různé další komponenty (například Internet Explorer , Editor registru Windows a msiexec ). Víno je převážně psáno pomocí testování reverzního inženýrství v černé skříňce , aby se předešlo problémům s autorskými právy .

Volba „Víno není emulátor“ jako názvu projektu vína byla výsledkem diskuse o pojmenování v srpnu 1993 a připsána Davidu Niemimu. Došlo k určitému zmatku způsobenému časnými nejčastějšími dotazy pomocí Windows Emulatoru a dalších neplatných zdrojů, které se objevují za nastavovaným názvem Wine Project. Žádný kód emulace nebo virtualizace dochází při spuštění systému Windows aplikace pod Wine. „Emulace“ obvykle odkazuje na provedení z zkompilovaný kód určený pro jeden procesor (jako je například x86 ) podle výkladu / rekompilace software běžící na jiný procesor (jako je například PowerPC ). Zatímco se název někdy vyskytuje ve formulářích VÍNO a víno , vývojáři projektu souhlasili se standardizací na formuláři Víno .

Wine je primárně vyvinut pro Linux a macOS a od července 2020 jsou pro obě platformy k dispozici dobře udržované balíčky.

V průzkumu desktoplinux.com z roku 2007, který provedlo 38 500 uživatelů stolních počítačů Linux, uvedlo 31,5% respondentů, že ke spouštění aplikací pro Windows používá Wine. Tato pluralita byla větší než všechny virtualizační programy x86 dohromady a také větší než 27,9%, kteří uvedli, že nepoužívají aplikace Windows.

Dějiny

VÍNO project.png

Bob Amstadt, vedoucí původního projektu, a Eric Youngdale zahájili projekt Wine v roce 1993 jako způsob spouštění aplikací Windows na Linuxu . Byl inspirován dvěma produkty Sun Microsystems , Wabi pro operační systém Solaris a Public Windows Initiative , což byl pokus o úplné opětovné implementaci Windows API ve veřejné doméně jako standard ISO, ale odmítnuto kvůli tlaku ze strany Microsoftu. v roce 1996. Wine původně cílil na 16bitové aplikace pro Windows 3.x , ale od roku 2010 se zaměřuje na 32bitové a 64bitové verze, které se staly standardem v novějších operačních systémech. Projekt vznikl v diskusích na Usenetu v comp.os.linux v červnu 1993. Alexandre Julliard projekt vedl od roku 1994.

Projekt se ukázal být časově náročný a obtížný pro vývojáře, většinou kvůli neúplné a nesprávné dokumentaci Windows API. Zatímco Microsoft rozsáhle dokumentuje většinu funkcí Win32 , některé oblasti, jako jsou formáty souborů a protokoly, nemají žádnou veřejně dostupnou specifikaci od Microsoftu a Windows také obsahují nezdokumentované funkce na nízké úrovni, nezdokumentované chování a nejasné chyby, které Wine musí přesně duplikovat, aby umožnil některé aplikace pracovat správně. V důsledku toho tým Wine přepracoval mnoho volání funkcí a formátů souborů v takových oblastech, jako je thunking .

Projekt Wine původně vydal víno pod stejnou licencí MIT jako X Window System, ale kvůli obavám z proprietárních verzí Wine, které nepřispívají svými změnami zpět k jádru projektu, práce od března 2002 používaly pro licencování LGPL.

Víno oficiálně vstoupilo do beta verze s verzí 0.9 dne 25. října 2005. Verze 1.0 byla vydána 17. června 2008, po 15 letech vývoje. Verze 1.2 byla vydána 16. července 2010, verze 1.4 7. března 2012, verze 1.6 18. července 2013. a verze 1.8 19. prosince 2015. Vývojové verze jsou vydávány zhruba každé dva týdny.

Wine-staging je nezávisle udržovaná sada agresivních záplat , které vývojáři WineHQ nepovažují za připravené ke sloučení do úložiště Wine, ale přesto je vidlice pro víno-compholio považují za užitečné. Pokrývá hlavně experimentální funkce a opravy chyb. Od ledna 2017 se záplaty ve stagingu vína začnou aktivně sloučit do WineHQ upstream, protože wine-compholio převedlo projekt na Alistair Leslie-Hughes, klíčového vývojáře WineHQ.

Firemní sponzorství

Hlavním firemním sponzorem Wine je CodeWeavers , který zaměstnává Julliard a mnoho dalších vývojářů Wine k práci na Wine a na CrossOveru , verzi Wine podporované CodeWeavers. CrossOver obsahuje některé vylepšení specifické pro aplikaci, které nejsou považovány za vhodné pro upstream verzi, a také některé další proprietární komponenty.

Projektu na nějakou dobu pomohlo zapojení společnosti Corel , a to především zaměstnáním Julliarda a dalších, kteří na něm pracovali. Společnost Corel měla zájem na přenesení jejího kancelářského balíku WordPerfect Office do Linuxu (zejména Corel Linux ). Společnost Corel později zrušila všechny projekty související s Linuxem poté, co společnost Microsoft významně investovala do společnosti Corel, čímž zastavila své úsilí o víno.

Mezi další firemní sponzory patří Google , který najal CodeWeavers na opravu Wine, takže Picasa běžela dostatečně dobře na to, aby byla přenesena přímo do Linuxu pomocí stejného binárního souboru jako ve Windows; Google později zaplatil za vylepšení podpory Wine pro Adobe Photoshop CS2 . Víno je také pravidelným příjemcem programu Google Summer of Code .

Design

Cílem Wine je plně nebo částečně implementovat Windows API, které vyžadují programy, které si uživatelé Wine přejí provozovat nad unixovým systémem.

Základní architektura

Programovací rozhraní systému Microsoft Windows se skládá převážně z dynamických knihoven (DLL). Ty obsahují velké množství podprogramů wrapperu pro systémová volání jádra, program režimu jádra NTOS (ntoskrnl.exe). Typický program Windows volá některé knihovny DLL systému Windows, což zase volá knihovny gdi/user32 v uživatelském režimu, což zase využívá kernel32.dll (subsystém win32) zodpovědný za práci s jádrem prostřednictvím systémových volání. Vrstva systémového volání je pro programátory Microsoftu považována za soukromou, protože dokumentace není veřejně dostupná a všechna publikovaná rozhraní se spoléhají na podsystémy běžící nad jádrem. Kromě nich existuje řada programovacích rozhraní implementovaných jako služby, které běží jako samostatné procesy. Aplikace komunikují se službami v uživatelském režimu prostřednictvím RPC.

Wine implementuje binární rozhraní aplikace Windows (ABI) zcela v uživatelském prostoru , nikoli jako modul jádra . Wine většinou odráží hierarchii, přičemž služby běžně poskytuje jádro ve Windows místo toho poskytuje démon známý jako vineerver, jehož úkolem je implementovat základní funkce Windows, stejně jako integraci se systémem X Window System a překlad signálů do nativního Výjimky Windows. Ačkoli Wineserver implementuje některé aspekty jádra Windows , není možné s ním používat nativní ovladače Windows, kvůli základní architektuře Wine. To zabraňuje fungování některých aplikací a her, například těch, které používají ochranu proti kopírování StarForce, která vyžaduje instalaci ovladačů virtuálních zařízení .

Knihovny a aplikace

Wine umožňuje načítání knihoven DLL systému Windows i sdílených objektů Unixu pro své programy systému Windows. Jeho vestavěná implementace nejzákladnějších knihoven DLL systému Windows , konkrétně NTDLL , KERNEL32 , GDI32 a USER32 , používá metodu sdílených objektů, protože musí používat funkce i v hostitelském operačním systému. Knihovny vyšší úrovně, například WineD3D, mohou zdarma používat formát DLL. V mnoha případech se uživatelé mohou rozhodnout načíst knihovnu DLL z Windows namísto té, kterou implementuje Wine. Pokud tak učiníte, může to poskytnout funkce, které zatím nebyly implementovány Wine, ale může to také způsobit poruchy, pokud se spoléhá na něco jiného, ​​co ve Wine není.

Wine sleduje svůj stav implementace prostřednictvím automatizovaného testování jednotek prováděného při každém git potvrzení.

Grafika a hraní her

Zatímco většina kancelářského softwaru nevyužívá komplexní grafická rozhraní API akcelerovaná pomocí GPU, počítačové hry ano. Aby tyto hry fungovaly správně, musel by Wine předat pokyny k kreslení hostitelskému operačnímu systému a dokonce je přeložit do něčeho, čemu může hostitel rozumět.

DirectX je sbírka rozhraní Microsoft API pro vykreslování, zvuk a vstup. Od roku 2019 obsahuje Wine 4.0 implementaci DirectX 12 pro Vulkan API a DirectX 11.2 pro OpenGL. Wine 4.0 také umožňuje Wine spouštět aplikace Vulkan předáním příkazů draw hostitelskému OS, nebo v případě macOS jejich překladem do Metal API od MoltenVK .

XAudio
Od února 2019 používá Wine 4.3 k implementaci zvukového rozhraní API XAudio2 (a dalších) knihovnu FAudio (a Wine 4.13 pro ni obsahuje opravu ).
Vstup X a hrubý vstup
Wine, od verze 4.0 (2019), podporuje herní řadiče prostřednictvím integrovaných implementací těchto knihoven. Jsou postaveny jako sdílené objekty Unixu, protože potřebují přístup k rozhraním řadiče základního operačního systému, konkrétně prostřednictvím SDL .
Direct2D
Wine 4.0 podporuje Direct2D 1.2.

Direct3D

Velká část úsilí DirectX společnosti Wine směřuje do budování WineD3D, překladové vrstvy z volání rozhraní Direct3D a DirectDraw API do OpenGL . Od roku 2019 tato komponenta podporuje až DirectX 11. Od 12. prosince 2016 je Wine dost dobrý na to, aby běžel Overwatch s D3D11. Kromě toho, že se knihovny DLL WineD3D používají ve Wine, byly použity také v samotném systému Windows, což umožňuje starším grafickým procesorům spouštět hry pomocí novějších verzí DirectX a staré hry založené na DDraw vykreslovat správně.

Probíhá práce na přesunu backendu Direct3D do Vulkan API. Podporu Direct3D 12 ve verzi 4.0 poskytuje podprojekt „vkd3d“ a WineD3D byl v roce 2019 experimentálně přenesen, aby používal Vulkan API. Další implementace, DXVK, překládá volání Direct3D 9, 10 a 11 také pomocí Vulkan a je to samostatný projekt.

Když je víno patchováno, může alternativně spouštět příkazy API Direct3D 9 přímo prostřednictvím bezplatného a open-source Gallium3D State Tracker (aka ovladače GPU Gallium3D) bez překladu do volání API OpenGL. V tomto případě vrstva Gallium3D umožňuje přímý průchod kreslících příkazů DX9, což má za následek zlepšení výkonu až na faktor 2. Od roku 2020 se projekt jmenuje Gallium.Nine. Nyní je k dispozici jako samostatný samostatný balíček a již nepotřebuje opravenou verzi Wine.

Uživatelské rozhraní

Víno je obvykle vyvolán z příkazového řádku interpretu: wine program.exe.

winecfg

Snímek obrazovky ukazující, jak lze Wine nakonfigurovat tak, aby napodoboval různé verze systému Windows, a to již v 32bitové verzi jako Windows 2.0 (64bitová verze Wine podporuje pouze 64bitové verze systému Windows)

Existuje nástroj, winecfgkterý spouští grafické uživatelské rozhraní s ovládacími prvky pro úpravu základních možností. Je to konfigurační nástroj GUI, který je součástí Wine. Winecfg usnadňuje konfiguraci Wine tím, že není nutné přímo upravovat registr, i když v případě potřeby to lze provést pomocí přiloženého editoru registru (podobně jako Windows regedit ).

Aplikace třetích stran

Některé aplikace vyžadují více vyladění než jen instalaci aplikace, aby fungovaly správně, jako je například ruční konfigurace Wine pro používání určitých knihoven DLL systému Windows . Projekt Wine neintegruje tato zástupná řešení do kódové základny Wine, místo toho se raději soustředí pouze na vylepšení implementace Wine API Windows . Tento přístup sice zaměřuje vývoj vína na dlouhodobou kompatibilitu, ale uživatelům ztěžuje spouštění aplikací, které vyžadují řešení. V důsledku toho bylo vytvořeno mnoho aplikací třetích stran, které usnadňují používání těch aplikací, které nefungují po vybalení v samotném Wine. Wiki Wiki spravuje stránku aktuálních a zastaralých aplikací třetích stran.

  • Winetricks je skript k instalaci některých základních komponent (obvykle Microsoft DLL a písem) a nastavení vyladění, které je nutné pro správné spuštění některých aplikací pod Wine. Může plně automatizovat instalaci řady aplikací a her, včetně použití všech potřebných řešení. Winetricks má GUI . Projekt Wine bude na rozdíl od většiny aplikací třetích stran přijímat hlášení o chybách pro uživatele Winetricks. Spravuje ji vývojář Wine Austin English.
  • Q4Wine je otevřené GUI pro pokročilé nastavení Wine.
  • Wine-Doors je nástroj pro správu aplikací pro desktop GNOME, který do Wine přidává funkce. Wine-Doors je alternativou k WineTools, která si klade za cíl zlepšit funkce WineTools a rozšířit původní myšlenku s modernějším designovým přístupem.
  • IEs4Linux je nástroj k instalaci všech verzí aplikace Internet Explorer, včetně verzí 4 až 6 a verze 7 (v beta verzi).
  • Wineskin je nástroj pro správu verzí modulu Wine a vytváření obalů pro macOS .
  • PlayOnLinux je aplikace usnadňující instalaci aplikací systému Windows (především her). Existuje také odpovídající verze pro Macintosh s názvem PlayOnMac .
  • Lutris je open-source aplikace pro snadnou instalaci her Windows na Linux.
  • Bordeaux je proprietární správce konfigurace GUI Wine, který spouští aplikace winelib. Podporuje také instalaci nástrojů třetích stran, instalaci aplikací a her a možnost používat vlastní konfigurace. Bordeaux aktuálně běží na počítačích Linux, FreeBSD, PC-BSD, Solaris, OpenSolaris, OpenIndiana a macOS.
  • Bottles je grafický prefix vína s otevřeným zdrojovým kódem a správce běžců pro Wine založený na GTK. Poskytuje instalační systém závislostí na úložišti a správu verzí lahví pro obnovení předchozího stavu.

Funkčnost

Průběh kompatibility aplikací ve verzi 0.9, podle výsledků testů Wine AppDB.
  Software funguje bezchybně
  Software po konfiguraci funguje bezchybně
  Drobné problémy se softwarem
  Zásadní problémy se softwarem
  Zcela nefunkční software

Vývojáři částí Direct3D Wine pokračovali v implementaci nových funkcí, jako jsou pixelové shadery, aby zvýšili podporu her. Wine může také přímo používat nativní knihovny DLL, čímž se zvyšuje funkčnost, ale pak je potřeba licence pro Windows, pokud nebyly knihovny DLL distribuovány se samotnou aplikací.

Wine také obsahuje vlastní open-source implementace několika programů pro Windows, jako je například Poznámkový blok , Wordpad , Control , iexplore a Explorer .

Wine Application Database (AppDB) je komunitní online databáze o tom, které programy Windows fungují s Wine a jak dobře fungují.

Zpětná kompatibilita

Wine zajišťuje dobrou zpětnou kompatibilitu se staršími aplikacemi Windows, včetně těch napsaných pro Windows 3.1x . Wine může napodobovat různé verze Windows požadované pro některé programy, sahající až do Windows verze 2.0. Podpora pro Windows 1.xa Windows 2.x však byla z Wine development verze 1.3.12 odebrána. Pokud je v systému nainstalován DOSBox (viz níže v systému MS-DOS ), verze pro vývoj vína 1.3.12 a novější přesto zobrazují možnost „Windows 2.0“, kterou má verze Windows napodobovat, ale Wine stále nespustí většinu programů Windows 2.0, protože Funkce MS-DOS a Windows nejsou aktuálně integrovány.

Zpětná kompatibilita ve Wine je obecně lepší než ve Windows, protože novější verze systému Windows mohou přinutit uživatele upgradovat starší aplikace systému Windows a mohou navždy poškodit opuštěný software, protože program nikdo upravuje podle změn v operačním systému. V mnoha případech může Wine nabídnout lepší starší podporu než novější verze systému Windows s „režimem kompatibility“. Wine může spouštět 16bitové programy Windows ( Win16 ) na 64bitovém operačním systému, který využívá procesor x86-64 (64bitový), což je funkce, která se v 64bitových verzích systému Microsoft Windows nenachází. WineVDM umožňuje běh 16bitových aplikací Windows v 64bitových verzích Windows.

Wine částečně podporuje aplikace konzoly Windows a uživatel si může vybrat, který backend použije ke správě konzoly (možnosti zahrnují nezpracované streamy, kletby a user32 ). Při použití surových streamů nebo curses backendů poběží aplikace Windows na unixovém terminálu.

64bitové aplikace

Předběžná podpora pro 64bitové aplikace pro Windows byla přidána do Wine 1.1.10 v prosinci 2008. Od dubna 2019 je podpora považována za stabilní. Tyto dvě verze vína jsou vytvářeny samostatně a v důsledku toho pouze budova wine64 vytváří prostředí schopné spouštět aplikace x86-64.

Od dubna 2019 má Wine stabilní podporu pro sestavení WoW64 , které umožňuje spouštění 32bitových i 64bitových aplikací Windows ve stejné instanci Wine. K provedení takového sestavení je třeba nejprve vytvořit 64bitovou verzi a poté sestavit 32bitovou verzi odkazující na 64bitovou verzi. Stejně jako Microsoft WoW64, 32bitový proces sestavení přidá do 64bitové verze součásti nezbytné pro zpracování 32bitových programů. Tato funkce je k dispozici minimálně od roku 2010.

MS-DOS

Dřívější verze systému Microsoft Windows běží nad systémem MS-DOS a programy systému Windows mohou záviset na použitelnosti programů MS-DOS. Wine nemá dobrou podporu pro MS-DOS, ale počínaje vývojovou verzí 1.3.12 se Wine pokouší spustit programy MS-DOS v DOSBoxu, pokud je DOSBox v systému k dispozici. Kvůli chybě však aktuální verze aplikace Wine nesprávně identifikují programy Windows 1.xa Windows 2.x jako programy MS-DOS a pokoušejí se je spustit v DOSBoxu (což nefunguje).

Winelib

Wine poskytuje Winelib, který umožňuje, aby jeho implementace sdílených objektů rozhraní Windows API byly použity jako skutečné knihovny pro unixový program. To umožňuje, aby byl kód Windows integrován do nativních unixových spustitelných souborů. Od října 2010 funguje Winelib také na platformě ARM .

Architektury jiné než x86

Podpora pro Solaris SPARC byla zrušena ve verzi 1.5.26.

ARM, Windows CE a Windows RT

Wine poskytuje určitou podporu pro procesory ARM (stejně jako ARM64/AArch64) a příchutě Windows, které na něm běží. Od dubna 2019 může Wine spouštět aplikace ARM/Win32 určené pro odemčená zařízení Windows RT (ale ne programy Windows RT). Podpora systému Windows CE (buď x86 nebo ARM) chybí, ale neoficiální verze konceptu před alfa verzí nazvaná WineCE umožňuje určitou podporu.

Víno pro Android

WINE Solitaire běžící na Androidu

Dne 3. února 2013 na proslovu FOSDEM v Bruselu Alexandre Julliard předvedl ranou ukázku programu Wine běžícího na operačním systému Google Android .

Experimentální verze WINE pro Android (x86 a ARM) byly vydány koncem roku 2017. Oficiální vývojáři ji od té doby pravidelně aktualizují. Výchozí verze neimplementují emulaci mezi architekturami přes QEMU a ve výsledku budou verze ARM spouštět pouze aplikace ARM, které používají Win32 API.

Aplikace Microsoft

Wine ve výchozím nastavení používá specializované Windows verze Gecko a Mono k nahrazení aplikací Microsoft Internet Explorer a .NET Framework . Wine má vestavěné implementace JScript a VBScript . Je možné stáhnout a spustit instalační programy společnosti Microsoft pro tyto programy prostřednictvím winetricks nebo ručně.

Víno nemá dobrou podporu pro většinu verzí aplikace Internet Explorer (IE). Ze všech přiměřeně nejnovějších verzí je Internet Explorer 8 pro Windows XP jedinou verzí, která hlásí použitelné hodnocení na AppDB Wine, a to hned po vybalení. Nicméně Google Chrome dostane rating zlata (jak Wine 5,5-staging) a Microsoft IE náhradní webový prohlížeč hran, je známo, že na základě tohoto prohlížeče (po přepnutí z vlastní renderovací engine Microsoftu). Winetricks nabízejí automatickou instalaci pro Internet Explorer 6 až 8, takže lze u těchto verzí rozumně očekávat, že budou fungovat s integrovanými řešeními.

Alternativou pro přímou instalaci aplikace Internet Explorer je použití dnes již zaniklého IEs4Linux . Není kompatibilní s nejnovějšími verzemi Wine a vývoj IEs4Linux je neaktivní.

Jiné verze vína

Základní vývoj Wine se zaměřuje na správnou implementaci Windows API jako celku a v některých oblastech kompatibility s určitými aplikacemi někdy zaostává. Direct3D například zůstal neimplementovaný až do roku 1998, i když novější verze mají stále úplnější implementaci.

CrossOver

CodeWeavers uvádí na trh CrossOver speciálně pro běh Microsoft Office a dalších hlavních aplikací Windows, včetně některých her. CodeWeavers zaměstnává Alexandre Julliard k práci na víně a přispívá většinou ze svého kódu do projektu Wine v rámci LGPL. Společnost CodeWeavers také vydala 10. ledna 2007 novou verzi s názvem CrossOver Mac pro počítače Apple Macintosh se systémem Intel .

Od roku 2012 CrossOver zahrnuje funkce obou řad CrossOver Games a CrossOver Pro, takže CrossOver Games a CrossOver Pro již nejsou k dispozici jako jednotlivé produkty.

CrossOver Games byl optimalizován pro spouštění videoher pro Windows . Na rozdíl od CrossOveru se nezaměřoval na poskytování nejstabilnější verze Wine. Místo toho jsou k podpoře novějších her poskytovány experimentální funkce.

WINE@Etersoft

Ruská firma Etersoft vyvíjí proprietární verze Wine od roku 2006. VÍNA @ Etersoft podporuje populární ruské aplikací (například 1C: Enterprise by 1C Company ).

Proton

Dne 21. srpna 2018, Valve oznámila novou variantu vína s názvem Proton, který byl navržen pro integraci s verzí Linux společnosti Steam software (včetně parní zařízení postavených na svých linuxových steamos operační systém a parní stroje počítačů). Cílem společnosti Valve pro Proton je umožnit uživatelům Steamu na Linuxu hrát hry, které postrádají nativní port Linuxu (zejména hry se zadním katalogem), a v konečném důsledku díky integraci se Steamem a také vylepšením podpory her ve vztahu k mainline Wine poskytnout uživatelům „stejný jednoduchý plug-and-play zážitek“, jaký by získali, kdyby hru hráli nativně na Linuxu. Proton vstoupil do veřejné beta verze hned po oznámení.

Společnost Valve již od roku 2016 spolupracuje se společností CodeWeavers na vývoji vylepšení herního výkonu společnosti Wine, z nichž některá již byla sloučena do upstream projektu Wine. Některá ze specifických vylepšení začleněných do Protonu zahrnují implementace Direct3D 9, 10, 11 a 12 na bázi Vulkan prostřednictvím vkd3d , DXVK a D9VK vícevláknová vylepšení výkonu prostřednictvím esync, lepší zpracování her na celou obrazovku a lepší hardwarová podpora automatického herního ovladače .

Proton je plně open-source a je k dispozici prostřednictvím GitHub.

Jiné projekty využívající zdrojový kód Wine

Mezi další projekty využívající zdrojový kód Wine patří:

  • OTVDM , 16bitová vrstva kompatibility aplikací pro 64bitová Windows.
  • ReactOS , projekt pro zápis operačního systému kompatibilního s Windows NT verze 5.x a vyšší (včetně Windows 2000 a jeho nástupců) až na úroveň ovladače zařízení . ReactOS značně využívá zdrojový kód Wine, ale kvůli architektonickým rozdílům se kód ReactOS (například knihovny DLL napsané speciálně pro něj, jako ntdll, user32, kernel32, gdi32 a advapi) ve Wine obecně nepoužívá. V červenci 2009 zahájil Aleksey Bragin, vedoucí projektu ReactOS, novou pobočku ReactOS s názvem Arwinss , která byla oficiálně oznámena v lednu 2010. Arwinss je alternativní implementací základních komponent Win32 a používá většinou nezměněné verze Wine's user32.dll a gdi32.dll.
  • WineBottler, obal kolem vína ve formě normální aplikace pro Mac. Spravuje více konfigurací vína pro různé programy ve formě „lahví“.
  • Wineskin , open source správce konfigurace GUI Wine pro MacOS . Wineskin vytvoří obal kolem Wine ve formě běžné aplikace pro Mac. Obal lze také použít k vytvoření distribuovatelného „portu“ softwaru.
  • Odin , projekt ke spouštění binárních souborů Win32 na OS/2 nebo jejich převodu do nativního formátu OS/2. Projekt také poskytuje rozhraní Odin32 API pro kompilaci programů Win32 pro OS/2.
  • Virtualizační produkty, jako jsou Parallels Desktop pro Mac a VirtualBox, používají k využití GPU WineD3D.
  • WinOnX, komerční balíček Wine pro macOS, který obsahuje GUI pro přidávání a správu aplikací a virtuálních počítačů.
  • WineD3D pro Windows, obal kompatibility, který emuluje staré verze a funkce Direct3D, které byly odstraněny společností Microsoft v posledních vydáních systému Windows pomocí OpenGL. Někdy se stane, že starší hry opět začnou fungovat.

Přerušeno

  • CeCedega / WineX : TransGaming Inc. (nyní Findev Inc. od prodeje svých softwarových podniků) vyrobila proprietární software Cedega. Dříve známý jako WineX, Cedega představoval vidličku z poslední verze Wine s licencí MIT v roce 2002. Podobně jako CrossOver Games, i Cedega od TransGaming byla zaměřena na provozování videoher pro Windows. Dne 7. ledna 2011 společnost TransGaming Inc. oznámila pokračující vývoj technologie Cedega v rámci programu GameTree Developer Program. Společnost TransGaming Inc. umožnila členům používat své ID a heslo Cedega až do 28. února 2011.
  • Cider : TransGaming také produkoval Cider, knihovnu pro Macintoshes architektury Apple – Intel . Místo toho, aby byl produktem pro koncové uživatele, je Cider (jako Winelib) obalem, který umožňuje vývojářům přizpůsobit své hry tak, aby běžely nativně na Intel Mac bez jakýchkoli změn ve zdrojovém kódu.
  • Darwine : zastaralý port knihoven Wine pro Darwin a macOS pro architektury PowerPC a Intel x86. Všechny patche pro verzi x86 byly v roce 2009 sloučeny zpět do hlavní větve Wine. Od vývoje verze PPC bylo upuštěno (a v roce 2020 Wine 5.11 zrušil podporu pro PowerPC.). Mike Kronenberg dříve vytvořil WineHelper pro Darwine, aby přidal aplikaci ve stylu GUI a macOS pro interakci s Wine, která byla později nahrazena WineBottler. Darwine nyní poskytuje balíčky kompatibilní s macOS zkompilované z úložiště Wine.
  • E/OS LX  [ fr ] : projekt pokoušející se spustit jakýkoli program určený pro jakýkoli operační systém, aniž by bylo nutné skutečně instalovat jakýkoli jiný operační systém.
  • Pipelight : vlastní verze Wine (wine-compholio), která funguje jako obálka pro pluginy Windows NPAPI v prohlížečích Linux. Tento nástroj umožňuje uživatelům Linuxu používat Microsoft Silverlight , Microsoft ekvivalent Adobe Flash a webový plugin Unity , spolu s řadou dalších doplňků NPAPI. Projekt poskytuje rozsáhlou sadu záplat proti projektu Wine upstream, z nichž některé byly schváleny a přidány do upstream Wine. Pipelight je do značné míry zastaralý, protože moderní prohlížeče již nepodporují doplňky NPAPI a společnost Silverlight byla zastaralá společností Microsoft.

Recepce

Projekt Víno obdržel během let řadu technických a filozofických stížností a obav.

Bezpečnostní

Kvůli schopnosti Wine spouštět binární kód Windows byly vzneseny obavy ohledně nativních virů Windows a malwaru ovlivňujícího operační systémy podobné Unixu, protože Wine může spouštět omezený malware vytvořený pro Windows. Bezpečnostní analýza z roku 2018 zjistila, že 5 z 30 vzorků malwaru bylo schopno úspěšně projít programem Wine, což je relativně nízká sazba, která nicméně představuje bezpečnostní riziko. Z tohoto důvodu vývojáři Wine doporučují nikdy jej nespouštět jako superuživatele . Software pro výzkum malwaru, jako je ZeroWine, spouští Wine na Linuxu ve virtuálním počítači , aby byl malware zcela izolován od hostitelského systému. Alternativou ke zlepšení zabezpečení bez nákladů na výkon při používání virtuálního počítače je spuštění Wine v kontejneru LXC , jak to standardně dělá software Anbox u Androidu .

Dalším problémem zabezpečení je situace, kdy jsou implementované specifikace špatně navrženy a umožňují kompromisy v zabezpečení. Protože Wine implementuje tyto specifikace, pravděpodobně také implementuje všechny chyby zabezpečení, které obsahují. Jednou instancí tohoto problému byla chyba zabezpečení Windows Metafile 2006 , která způsobila, že Wine implementovala zranitelný únik SETABORTPROC.

Wine vs. nativní unixové aplikace

Společným problémem Wine je, že jeho existence znamená, že prodejci méně pravděpodobně píší nativní aplikace Linux, macOS a BSD. Jako příklad toho stojí za zvážení operační systém IBM z roku 1994, OS/2 Warp . Článek popisuje slabiny OS/2, které jej zabily, přičemž první z nich je:

OS/2 nabídl vynikající kompatibilitu s aplikacemi DOS a Windows 3.1. Ne, nejedná se o chybu. Mnoho prodejců aplikací tvrdilo, že vývojem aplikace pro DOS nebo Windows by se kromě trhů s DOS/Windows dostaly i na trh OS/2 a nevyvinuly nativní aplikace OS/2.

OS/2 však měl mnoho problémů s přijetím koncovým uživatelem. Asi nejzávažnější bylo, že většina prodaných počítačů již byla dodávána s DOS a Windows a mnoho lidí se neobtěžovalo hodnotit OS/2 podle jeho zásluh, protože již měl operační systém. „Balíček“ DOSu a Windows a mrazivý efekt, který to mělo na trhu operačních systémů, se často objevoval ve Spojených státech v. Microsoft Corporation .

Samotný projekt Wine reaguje na konkrétní stížnost na „povzbuzení“ pokračujícího vývoje pro Windows API na jedné z jeho wiki stránek:

Pro většinu lidí zůstává hrstka programů, které je zamykají v systému Windows. Je zřejmé, že nikdy nebude Microsoft Office portován na Linux, ale nebudou přeneseny ani starší verze programů, jako je TurboTax. Podobně existují desítky tisíc her a interních firemních aplikací, které nikdy nebudou přeneseny. Pokud chcete používat Linux a spoléhat se na jakoukoli starší aplikaci pro Windows, je něco jako Wine zásadní ... Wine dělá Linux užitečnějším a umožňuje milionům uživatelů změnit, kteří by jinak nemohli. To výrazně zvyšuje trh Linuxu a přitahuje více komerčních a komunitních vývojářů k Linuxu.

Stránka Wiki Wiki také tvrdí, že Wine může pomoci vyřešit problém s kuřecím masem pro Linux na ploše :

Tím se dostáváme k problému s kuřaty a vejci Linuxu na ploše. Dokud nebude Linux schopen poskytnout ekvivalenty pro výše uvedené aplikace, bude jeho tržní podíl na desktopu stagnovat. Dokud ale tržní podíl Linuxu na desktopu stoupne, žádný dodavatel nebude vyvíjet aplikace pro Linux. Jak člověk prolomí tento začarovaný kruh?

Odpověď může opět poskytnout víno. Tím, že umožňuje uživatelům znovu používat aplikace Windows, do kterých investovali čas a peníze, Wine dramaticky snižuje bariéru, která brání uživatelům v přechodu na Linux. To pak umožňuje Linuxu startovat na ploše, což zvyšuje jeho podíl na trhu v daném segmentu. Na druhé straně to umožňuje životaschopnost společností vyrábět verze svých aplikací pro Linux a nové produkty přicházet jen pro trh Linuxu. Tato úvaha by mohla být snadno odmítnuta, pokud by byl Wine schopen provozovat pouze Solitaire. Nyní však může běžet Microsoft Office, multimediální aplikace, jako je QuickTime a Windows Media Player, a dokonce i hry jako Max Payne nebo Unreal Tournament 3. S trochou času lze dobře spustit téměř jakoukoli jinou složitou aplikaci. A pokaždé, když je dokončena práce na přidání jedné aplikace do tohoto seznamu, mnoho dalších aplikací z této práce těží a jsou také použitelné.

Podívejte se do naší databáze aplikací, abyste získali představu o tom, co lze spustit pod programem Wine.

Využití Wine pro hraní her se ukázalo jako kontroverzní v linuxové komunitě, protože někteří mají pocit, že brání nebo přinejmenším brání dalšímu růstu nativních Linuxových her na platformě.

Microsoft

Do roku 2020 Microsoft neučinil o Wine žádná veřejná prohlášení. Nicméně, Windows Update software bude blokovat aktualizace Microsoft aplikací běžících ve víně. Dne 16. února 2005 Ivan Leo Puoti zjistil, že společnost Microsoft začala kontrolovat registr Windows pro konfigurační klíč Wine a blokuje Windows Update pro jakoukoli součást. Jak poznamenal Puoti: „Je to také poprvé, co Microsoft uznává existenci Wine.“

V lednu 2020 společnost Microsoft ve svém stručném přehledu amicus curiae pro Google LLC v. Oracle America, Inc. citovala Wine jako pozitivní důsledek schopnosti znovu implementovat API .

Viz také

Reference

Další čtení

externí odkazy