Русская Википедия:Wine

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Карточка программы

Файл:Gallium3D example matrix.svg
Gallium3D State Tracker for Direct3D 9 improves performance when playing D3D games on Wine

Wine (МФА: Шаблон:МФА2 — «уа́йн»; с Шаблон:Lang-en — «вино») — свободное программное обеспечение, позволяющее пользователям 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.рекурсивный акроним и расшифровывается «Шаблон:Lang-en2» — «W.I.N.E. — это не эмулятор». Имеется в виду, что Wine — это не эмулятор компьютера или виртуальная машина, как, например, qemu, VirtualBox и другие подобные им. Вместо этого Wine — это альтернативная, свободная реализация Windows API (WIndows Native Environment).

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

История

Проект был основан Бобом Амштадтом (Bob Amstadt) в 1993 году как средство запуска 16-битных приложений Windows 3.1 в системе Linux. С 1994 года лидером проекта стал en (Alexandre Julliard). Изначально Wine был выпущен под лицензией MIT, но в марте 2002 года она была сменена на Шаблон:S.

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

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

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

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

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

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

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

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

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

18 января 2018 года — Wine 3.0.

22 января 2019 года вышел релиз — версия Wine под номером 4.0.

21 января 2020 года новой версии — Wine под номером 5.0

08 октября 2021 года. вышел релиз — Wine 6.19 Released

Текущая версия (на момент 20.01.2022)Wine 7.0

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

Файл:Wine Configuration-ru.png
Настройка Wine

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

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

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

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

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

Поддержка Direct3D

Для обработки вызовов API Direct3D имеются несколько разных трансляционных слоев:

  • wined3d — способен транслировать вызовы различных версий Direct3D (до версии 11 включительно) в вызовы OpenGL. Не поддерживает Direct3D версии 12.
  • DXVK — транслирует вызовы API Direct3D 9/10/11 в вызовы API Vulkan.
  • vkd3d — транслирует вызовы API Direct3D 12 в вызовы API Vulkan.

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

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

Продукты, основанные на 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[11].
  • WINE-LXP — ещё одна коммерческая реализация Wine, часть Trustverse Desktop (ранее выпускавшегося как Linux XP). Об этой реализации известно, что отдельно она не продаётся, поддерживает запуск 1С:Предприятие и ещё несколько приложений[12].
  • 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-й версии[13].
  • WineWizard — графический интерфейс для настройки и упрощения установки программ в Wine. Очень похож на PlayOnLinux, но в отличие от этого инструмента позволяет пользователю самому создавать решения для установки программ, а также выбирать нужные компоненты.
  • Odin — проект для запуска программ Windows в OS/2 или их конвертирования в «родной» OS/2 формат.
  • DXVK — проект по ретрансляции вызовов Direct3D 9-11[14], использующий в качестве выхода не стандартный OpenGL, а Vulkan API.
  • vkd3d — проект по ретрансляции вызовов Direct3D 12[15] в вызовы Vulkan API. В отличие от DXVK, выступает частью проекта Wine.
  • Steam Play (Valve Proton) — проект для запуска игр Windows, поставляющийся с платформой цифровой дистрибуции Steam. Для работы использует Wine в связке с DXVK (реализация DirectX 11) и vkd3d (реализация DirectX 12)[16] и массой собственных доработок.

Microsoft и Wine

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

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

Недостатки Wine

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

См. также

Примечания

Шаблон:Примечания

Ссылки

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

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

Шаблон:Программные эмуляторы