Wine

Wine
Логотип программы Wine
Скриншот программы Wine
Тип слой совместимости
Разработчики Александр Джуллиард[d], Яцек Цабан[d], Николай Сивов[d], Пётр Цабан[d], Реми Бернон[d], Франсуа Гуже[d], Хью Дэвис[d] и Зебедия Фигура[d]
Написана на Си[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.[источник не указан 93 дня]

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

Летом 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 дней.[источник не указан 93 дня]

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

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

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

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

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

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

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

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

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

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

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

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

Настройка Wine

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

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

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

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

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

Поддержка Direct3D

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

  • wined3d — способен транслировать в вызовы OpenGL вызовы различных версий Direct3D до версии 11 включительно; wined3d не поддерживает Direct3D версии 12;[источник не указан 93 дня]
  • 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 и некоторых других.[источник не указан 93 дня]
  • Компанией Borland была выпущена среда разработки Kylix, использующая код Wine (в настоящий момент разработка и поддержка прекращена).[источник не указан 93 дня]
  • ReactOS — проект свободной операционной системы, ставящий целью полную совместимость с Windows на уровне программ и драйверов. Не будучи основанным на Wine, проект ReactOS активно сотрудничает с ним, берёт из него многие наработки и делится своим кодом.[источник не указан 93 дня]
  • 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 официально не делали никаких публичных заявлений по поводу Wine. Однако Microsoft Update будет блокировать обновления для программного обеспечения от Microsoft, если программы будут запущены в средах, основанных на Wine. 16 февраля 2005 года Айван Лео Пуоти обнаружил, что Microsoft начала проверять системный реестр в поисках конфигурационных ключей, оставленных Wine, и будет блокировать доступ к Windows Update для любого компонента. Пуоти написал[27]:

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

Оригинальный текст (англ.)
…even if this is only an initial attempt, they appear to want to discriminate against Wine users. While this may be acceptable for operating system components/updates, this is probably a violation of anti-trust law for all other downloads. It’s also the first time Microsoft has acknowledged the existence of 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 для установки.[источник не указан 93 дня]

Недостатки Wine

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

См. также

Примечания

  1. https://groups.google.com/group/comp.os.linux.misc/msg/daa52d28ff44919f
  2. Wine 9.0 Released (англ.) — 2024.
  3. Wine 9.7 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". Newsgroup: comp.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 (16 февраля 2005). "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 года.

Ссылки

Wine:
  • Медиафайлы на Викискладе

  • П:Портал «Свободное программное обеспечение»

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

  • winehq.org (англ.) — официальный сайт Wine
  • Wine на SourceForge.net.
  • База приложений, совместимых с Wine в той или иной степени. (англ.)
  • The Official Wine Wiki (англ.) — вики-страница проекта.

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

  • Wine (@FreeSource) (рус.) — проект «Русский Wine»
  • База приложений Wine (рус.) — база приложений, совместимых с Wine в той или иной степени.
  • Wine: Часто задаваемые вопросы (рус.)
  • Руководство пользователя Wine (рус.) — Русский перевод.
  • Эволюция Wine  (рус.)
  • Установка программ для Windows на MacOS  (рус.) — Подробная инструкция
Перейти к шаблону «Программные эмуляторы»
Уровень приложений
Уровень ОС
(Контейнеры)
Аппаратный уровень
Универсальные
Микроядро
Монолитные
Специализированные
Android
DOS
Прочие
Виртуализация сетей