Wine

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Wine
Логотип программы Wine
Скриншот программы Wine
Тип слой совместимости
Разработчики Александр Джуллиард[вд], Яцек Цабан[вд], Николай Сивов[вд], Пётр Цабан[вд], Реми Бернон[вд], Франсуа Гуже[вд], Хью Дэвис[вд] и Зебедия Фигура[вд]
Написана на Си[4]
Операционные системы GNU/Linux[5], macOS[5], FreeBSD[6], Android[7] и Unix-подобная операционная система
Первый выпуск июнь 1993[1]
Последняя версия
Тестовая версия
Репозиторий gitlab.winehq.org/wine/w…
Лицензия GNU LGPL
Сайт winehq.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе
Gallium3D State Tracker for Direct3D 9 improves performance when playing D3D games on Wine

Wine (МФА: [waɪn] — «уа́йн»; с англ. wine — «вино») — свободное программное обеспечение, позволяющее пользователям UNIX-подобных операционных систем, например GNU/Linux, Apple macOS и других UNIX-подобных с поддержкой архитектур CPU x86, AMD64 (и других архитектур CPU при наличии совместимости с ними запускаемых приложений) исполнять 16-, 32- и 64-битные приложения, в том числе игры, созданные исключительно для Microsoft Windows, без наличия при этом установленной Microsoft Windows. Wine также предоставляет программистам библиотеку программ Winelib, при помощи которой они могут компилировать Windows-приложения для портирования их в UNIX-подобные операционные системы. Название W.I.N.E.рекурсивный акроним и расшифровывается «Wine Is Not Emulator» — «W.I.N.E. — это не эмулятор». Имеется в виду, что Wine — это не эмулятор компьютера или виртуальная машина, как, например, qemu, VirtualBox и другие подобные им. Вместо этого Wine — это альтернативная, свободная реализация Windows API (WIndows Native Environment).

Wine распространяется на условиях свободной лицензии GNU LGPL.

Проект был основан Бобом Амштадтом (англ. Bob Amstadt) и Эриком Юнгдалом (Eric Youngdale) в 1993 году как средство запуска 16-битных приложений Windows 3.1 в системе Linux[8]. С 1994 года лидером проекта стал Александр Джуллиард[англ.] (Alexandre Julliard). Первоначально Wine был выпущен под лицензией MIT, но в марте 2002 года она была сменена на GNU LGPL.[источник не указан 294 дня]

Со временем Wine был портирован на другие UNIX-подобные системы, такие как FreeBSD, Solaris и другие, а также на Windows (там WINE обычно используется для запуска старых приложений на новых версиях ОС). Была добавлена поддержка 32-битных приложений Windows, а в 2005 году — и 64-битных. До октября 2005 года проект находился в стадии альфа-версии, хотя с его помощью безупречно работали многие программы. 25 октября 2005 г. была выпущена первая бета-версия Wine 0.9. С этого момента новые версии стали выпускаться обычно раз в две недели.[источник не указан 294 дня]

Летом 2007 года произошёл небольшой скандал, поскольку выяснилось, что несколько свободных библиотек Wine были использованы компанией Parallels, Inc. в проприетарном продукте Parallels Desktop for Mac без предоставления исходных кодов, что является нарушением лицензии LGPL[9]. Установить факт нарушения смогли из-за скриншотов, опубликованных Parallels, на которых у персонажей игры Half-Life 2 были видны квадратные тени, что на тот момент было одной из известных ошибок Wine[10]. В компании Parallels подтвердили, что используют модифицированные исходные коды Wine, и обещали предоставить их по запросу в течение трёх дней[11]. Тем не менее, разработчики Wine получили модифицированные исходные коды только через месяц. Кроме того, на сайте Parallels появились информация о Wine как компоненте и его лицензии[12], на чём конфликт фактически исчерпал себя[10].

17 июня 2008 года, после 15 лет разработки, вышла версия Wine 1.0, первая, которую разработчики называют стабильной[13].

16 июля 2010 года вышла следующая стабильная версия Wine под номером 1.2[14].

7 марта 2012 года вышел стабильный релиз — версия Wine под номером 1.4[15].

16 марта 2012 года вышел тестовый релиз — версия Wine под номером 1.5.0, который обновляется раз в 15–20 дней.[источник не указан 294 дня]

3 февраля 2013 года Александр Джуллиард на конференции FOSDEM сообщил, что Wine портировали под ОС Android. Но конкретные сроки выхода названы не были.[источник не указан 294 дня]

18 июля 2013 года вышел тестовый релиз — версия Wine под номером 1.6.0.[источник не указан 294 дня]

20 апреля 2017 года вышел стабильный релиз — версия Wine под номером 2.0.1.[источник не указан 294 дня]

18 января 2018 года — Wine 3.0.[источник не указан 294 дня]

22 января 2019 года вышел релиз — версия Wine под номером 4.0.[источник не указан 294 дня]

21 января 2020 года новой версии — Wine под номером 5.0[источник не указан 294 дня]

08 октября 2021 года вышел релиз Wine 6.19 [источник не указан 294 дня]

27 марта 2023 года вышел релиз Wine 7.0.[источник не указан 294 дня]

19 июля 2023 года вышел релиз Wine 8.0.[источник не указан 294 дня]

22 декабря 2023 года вышел релиз Wine 9.0.[источник не указан 294 дня]

Текущая версия (на момент 22.01.2024)Wine 9.3[источник не указан 294 дня]

Технические особенности

[править | править код]
Настройка Wine

Проект сталкивается с большими трудностями вследствие неполноты или отсутствия документации по многим элементам Win32 API. В то время как функции Win32 в основном документированы, существует масса областей (таких как файловые форматы или протоколы Microsoft), спецификации на которые никогда не публиковались. Таким образом, команде разработчиков Wine приходится заниматься обратной разработкой этих компонентов.[источник не указан 294 дня]

Wine воспринимает системные вызовы приложений Windows к библиотекам операционной системы и подменяет их своими. Таким образом, эмуляции процессора, аналогично другим эмуляторам типа VMware и QEMU, не происходит, и приложения могут выполняться в Wine почти так же быстро, как и в «родной» операционной системе (а в некоторых случаях и быстрее[16]). Для своей работы Wine не требует наличия установленной ОС Windows, хотя и может использовать её библиотеки.[источник не указан 294 дня]

Также Wine предоставляет инструментарий разработки программ Winelib для переноса унаследованных исходных кодов из среды Windows в среду UNIX путём простой перекомпиляции.[источник не указан 294 дня]

Wine, безусловно, не стабильный продукт, и нельзя сказать, что с его помощью удастся запустить любую программу для Windows. Некоторые подсистемы Windows вообще практически не реализованы. Тем не менее уже сейчас многие из повсеместно используемых приложений Windows полноценно запускаются и работают в UNIX-подобных ОС при помощи Wine. Особенно это касается приложений, которые не используют недокументированные возможности Windows. Также под Wine полноценно запускаются приложения, разработанные для Windows 95/98/ME/2000/XP, которые не работают на Windows 8/10 даже в режиме "совместимости".[источник не указан 294 дня]

Wine (до версии 1.6.2) не мог переводить экран в 256-цветный режим (8 бит/цвет) без установки дополнительного ПО и сильных ухищрений, если такой уже не установлен в запущенном X-сервере. Это могло вызвать проблемы с некоторыми старыми играми и другими программами для Windows 3.1/9x, требующими именно 256-цветный режим.[источник не указан 294 дня]

Поддержка Direct3D

[править | править код]

Для обработки вызовов API Direct3D в Wine используется специальный трансляционный слой, в качестве которого могут быть использованы несколько вариантов:

  • wined3d — способен транслировать в вызовы OpenGL вызовы различных версий Direct3D до версии 11 включительно; wined3d не поддерживает Direct3D версии 12;[источник не указан 294 дня]
  • DXVK — транслирует вызовы API Direct3D версий 9, 10 и 11 в вызовы API Vulkan; DXVK создан независимым от Wine разработчиком, написан на С++ и не является частью Wine, он может использоваться в нём как (внешняя) подгружаемая библиотека[17];
  • vkd3d — транслирует вызовы API Direct3D 12 в вызовы API Vulkan[17].

Использование кода Wine в других проектах

[править | править код]
  • Часть кода WINE, позволяющая загружать динамические библиотеки (DLL) для Windows, используется в других свободных проектах, таких как MPlayer, Xine и некоторых других.[источник не указан 294 дня]
  • Компанией Borland была выпущена среда разработки Kylix, использующая код Wine (в настоящий момент разработка и поддержка прекращена).[источник не указан 294 дня]
  • ReactOS — проект свободной операционной системы, ставящий целью полную совместимость с Windows на уровне программ и драйверов. Не будучи основанным на Wine, проект ReactOS активно сотрудничает с ним, берёт из него многие наработки и делится своим кодом.[источник не указан 294 дня]
  • Picasa, Google Earth. При портировании под Linux использовались библиотеки Wine[18][19].

Продукты, основанные на Wine

[править | править код]
  • Cedega, ранее WineX, — продукт, основанный на старом коде Wine (до смены лицензии на LGPL), созданный компанией TransGaming для поддержки игр для Windows в ОС Linux. Имеется улучшенная поддержка DirectX, различных видов защиты от копирования. Продукт проприетарный, но имеется общедоступная CVS-версия с несколько урезанной функциональностью.
  • CrossOver — основанная на Wine среда, специально оптимизируемая для запуска наиболее востребованных офисных и иных приложений для Windows в Linux, таких как Microsoft Office, Apple iTunes, Adobe Photoshop и других. Продукт также платный и несвободный, но его разработчики — компания CodeWeavers — активно сотрудничают с командой Wine, и эти два проекта обмениваются своими наработками.
  • Линейка продуктов компании Etersoft на основе Wine (WINE@Etersoft) — набор сред, ориентированных не только на поддержку популярных в России деловых приложений Windows, таких как 1С:Предприятие, БЭСТ, КонсультантПлюс, Гарант, КОМПАС-3D (WINE@Etersoft CAD), но и на такие, как Microsoft SQL Server (WINE@Etersoft SQL), PostgreSQL (WINE@Etersoft SQL, Postgre@Etersoft). WINE@Etersoft Network предназначен для организации совместной работы с приложениями и общими ресурсами по сети. Это платные продукты, разрабатываемые российской компанией Etersoft, которая поддерживает их для дистрибутивов Linux и FreeBSD[20].
  • WINE-LXP — ещё одна коммерческая реализация Wine, часть Trustverse Desktop (ранее выпускавшегося как Linux XP). Об этой реализации известно, что отдельно она не продаётся, поддерживает запуск 1С:Предприятие и ещё несколько приложений[21].
  • PlayOnLinux — графический интерфейс GTK для настройки Wine. Поддерживает скрипты установки, параллельные разные версии wine для отдельных приложений и позволяет использовать для каждого приложения Wine свой профиль.
  • Vineyard — ещё один интерфейс GTK для настройки Wine.
  • q4wine — графический интерфейс Qt для настройки Wine. Также позволяет использовать для каждого приложения Wine свой профиль.
  • winetricks — скрипт для установки некоторых основных компонентов (как правило, библиотек DLL и шрифтов), необходимых для правильной работы некоторых приложений под Wine. Проект Wine принимает сообщения об ошибках для пользователей Winetricks, в отличие от большинства сторонних приложений.
  • Wine-Doors — приложение для GNOME, которое вносит дополнительную функциональность и стало альтернативой WineTools.
  • IEs4Linux — утилита для установки всех версий Internet Explorer, включая версии от 4-й до 6-й и бета-версии 7. После двух лет молчания, в январе 2011, появилось сообщение о скором начале поддержки 9-й версии[22].
  • WineWizard — графический интерфейс для настройки и упрощения установки программ в Wine. Очень похож на PlayOnLinux, но в отличие от этого инструмента позволяет пользователю самому создавать решения для установки программ, а также выбирать нужные компоненты.
  • Odin — проект для запуска программ Windows в OS/2 или их конвертирования в «родной» OS/2 формат.
  • DXVK — проект по ретрансляции вызовов Direct3D 9-11[23], использующий в качестве выхода не стандартный OpenGL, а Vulkan API.
  • vkd3d — проект по ретрансляции вызовов Direct3D 12[24] в вызовы Vulkan API. В отличие от DXVK, выступает частью проекта Wine.
  • Steam Play (Valve Proton) — проект для запуска игр Windows, поставляющийся с платформой цифровой дистрибуции Steam. Для работы использует Wine в связке с DXVK (реализация DirectX 11) и vkd3d (реализация DirectX 12)[25] и массой собственных доработок.
  • PortProton — проект, использующий форк wine в варианте Valve Proton для автоматизации скачивания и запуска игр через российские сервисы дистрибуции игр.[26]

В Microsoft официально не делали никаких публичных заявлений по поводу Wine. Однако Microsoft Update будет блокировать обновления для программного обеспечения от Microsoft, если программы будут запущены в средах, основанных на Wine. 16 февраля 2005 года Айван Лео Пуоти обнаружил, что Microsoft начала проверять системный реестр в поисках конфигурационных ключей, оставленных Wine, и будет блокировать доступ к Windows Update для любого компонента. Пуоти написал[27]:

…даже если это только первоначальная попытка, похоже, что они хотят дискриминировать пользователей Wine. Это может быть приемлемо для компонентов/обновлений операционной системы, но, вероятно, нарушает антимонопольное законодательство в случае остальных загрузок. Кроме того, это первый раз, когда Microsoft дала понять, что знает о существовании Wine

Windows Genuine Advantage (WGA) также проверяет на наличие ключей реестра от Wine. В WGA FAQ заявлено, что WGA по своему предназначению не будет работать в Wine, поскольку Wine не «подлинная Windows»[28]. Когда проверка WGA определяет, что в системе запущен Wine, пользователю будет выдано сообщение, гласящее, что он запустил не подлинную Windows и «загрузки ПО для подлинной Windows» не будут разрешены для этой системы. Тем не менее было несколько сообщений о работе WGA в Wine[29][30], однако и эта возможность использования была закрыта в следующем обновлении компонента WGA. В случаях с Internet Explorer 7 и Windows Media Player впоследствии Microsoft удалила требования проверки WGA для установки.[источник не указан 294 дня]

Недостатки Wine

[править | править код]

Несмотря на то что Wine представляет собой довольно мощный программный продукт, у него есть определённые недостатки. К примеру, разработчики намеренно не заявляют поддержку USB из-за крайне высокой сложности её реализации. Таким образом, например, если вы запустите Apple iTunes в Wine, то он запустится, но не сможет взаимодействовать с устройствами, подключенными по USB, например Apple iPhone, Apple iPad, Apple iPod. Для обеспечения их работы придётся устанавливать виртуальную машину с Microsoft Windows и «пробрасывать» в неё устройства, подключенные по USB.[источник не указан 294 дня]

Примечания

[править | править код]
  1. https://groups.google.com/group/comp.os.linux.misc/msg/daa52d28ff44919f
  2. Wine 9.0 Released (англ.) — 2024.
  3. Wine 9.22 Released — 2024.
  4. The wine Open Source Project on Open Hub: Languages Page — 2006.
  5. 1 2 https://web.archive.org/web/20201103180839/https://www.winehq.org/
  6. https://web.archive.org/web/20201102165801/https://wiki.winehq.org/Download
  7. https://dl.winehq.org/wine-builds/android/
  8. Amstadt, Bob (1993-09-29). "Wine project status". Newsgroupcomp.windows.x.i386unix. Архивировано 5 января 2011. Дата обращения: 4 февраля 2024.
  9. SWSoft поймали на нарушении LGPL. Linux.org.ru (1 июня 2007). Дата обращения: 14 марта 2009. Архивировано 1 июня 2012 года.
  10. 1 2 Parallels Desktop Watch : [англ.] : [арх. 17 июля 2012] // The Official Wine Wiki.
  11. Parallels using WINE? Possible liscensing issues… : Discussion in 'Parallels Desktop for Mac' started by unused_user_name, Jun 8, 2007 : [англ.] : [арх. 1 июня 2012] // Parallels Phorums.
  12. Licensing information : [англ.] : [арх. 1 июня 2012] // Parallels.
  13. Wine 1.0 Released (англ.). WineHQ (17 июня 2008). Дата обращения: 14 марта 2009. Архивировано 1 июня 2012 года.
  14. Wine 1.2 Released (англ.). WineHQ (16 июля 2010). Дата обращения: 18 июля 2010. Архивировано 1 июня 2012 года.
  15. Wine 1.4 Released (англ.). WineHQ (7 марта 2012). Дата обращения: 12 апреля 2012. Архивировано 1 июня 2012 года.
  16. BenchMark-0.9.5 (англ.). The Official Wine Wiki. Дата обращения: 14 марта 2009. Архивировано 1 июня 2012 года.
  17. 1 2 Verbeet, Henri (2019-01-25). "wined3d/Vulkan". wine-devel (Mailing list) (англ.). Архивировано 4 февраля 2024. Дата обращения: 5 января 2024.
  18. Picasa for Linux, Frequently Asked Questions (англ.). Google. Дата обращения: 14 марта 2009. Архивировано из оригинала 3 января 2011 года.
  19. Open Source Patches: Wine (англ.). Google. Дата обращения: 14 марта 2009. Архивировано 1 июня 2012 года.
  20. WINE@Etersoft: поддерживаемые операционные системы. Дата обращения: 14 марта 2009. Архивировано 1 июня 2012 года.
  21. Trustverse WINE-LXP Архивировано 23 июня 2010 года.
  22. IEs 4 Linux News " Supporting IE9 on Linux. Дата обращения: 12 февраля 2011. Архивировано 24 февраля 2011 года.
  23. Репозиторий DXVK на GitHub. Дата обращения: 10 апреля 2019. Архивировано 26 мая 2020 года.
  24. Репозиторий vkd3d. Дата обращения: 20 апреля 2019. Архивировано 2 апреля 2019 года.
  25. Компания Valve представила проект Proton для запуска Windows-игр в Linux. Дата обращения: 10 апреля 2019. Архивировано 17 февраля 2020 года.
  26. Источник. Дата обращения: 16 января 2024. Архивировано 3 декабря 2023 года.
  27. Puoti, Ivan Leo (2005-02-16). "Microsoft genuine downloads looking for wine" (Mailing list) (англ.). Архивировано 7 апреля 2009. Дата обращения: 14 марта 2009.
  28. Genuine Windows FAQ (англ.). Microsoft Corporation. Дата обращения: 14 марта 2009. Архивировано 1 июня 2012 года.
  29. Ubuntu Linux Validates as Genuine Windows (англ.). Slashdot (17 июня 2007). Дата обращения: 14 марта 2009. Архивировано 1 июня 2012 года.
  30. Linux is a Genuine Windows? turns out it is (англ.). bit-tech.net (6 августа 2005). Дата обращения: 14 марта 2009. Архивировано 1 июня 2012 года.

Англоязычные

[править | править код]

Русскоязычные

[править | править код]