Wine [a] — это бесплатный уровень совместимости с открытым исходным кодом , позволяющий прикладному программному обеспечению и компьютерным играм , разработанным для Microsoft Windows , работать в Unix-подобных операционных системах . Разработчики могут скомпилировать приложения Windows с использованием WineLib, чтобы перенести их на Unix-подобные системы. Wine преимущественно пишется с использованием обратного проектирования тестирования «черного ящика» , чтобы избежать проблем с авторскими правами . Никакой эмуляции кода или виртуализации не происходит. Wine в первую очередь разрабатывается для Linux и macOS .
В опросе 38 500 пользователей настольных компьютеров Linux, проведенном Desktoplinux.com в 2007 году, 31,5% респондентов сообщили, что используют Wine для запуска приложений Windows. [8] Это число было больше, чем все программы виртуализации x86 вместе взятые, и больше, чем 27,9%, которые сообщили, что не запускают приложения Windows. [9]
Боб Амштадт, первоначальный руководитель проекта, и Эрик Янгдейл запустили проект Wine в 1993 году как способ запуска приложений Windows в Linux . Он был вдохновлен двумя продуктами Sun Microsystems : Wabi для операционной системы Solaris и Public Windows Initiative [10] , которая представляла собой попытку полностью переопределить Windows API в общественном достоянии в качестве стандарта ISO , но была отклонена из-за давления со стороны Microsoft в 1996 году. [11] Изначально Wine ориентировался на 16-битные приложения для Windows 3.x , но с 2010 года [обновлять]основное внимание уделяется 32-битным и 64-битным версиям, которые стали стандартом для новых операционных систем. Проект зародился в результате обсуждений Usenet в comp.os.linux в июне 1993 года. [12] Александр Жульяр возглавляет проект с 1994 года.
Проект оказался трудоемким и сложным для разработчиков, в основном из-за неполной и неправильной документации Windows API. Хотя Microsoft подробно документирует большинство функций Win32 , некоторые области, такие как форматы файлов и протоколы, не имеют общедоступных или неполных доступных спецификаций от Microsoft, а Windows также включает в себя недокументированные низкоуровневые функции, недокументированное поведение и скрытые ошибки , которые Wine должен точно дублировать, чтобы разрешить некоторые приложения работают корректно. [13] В результате команда Wine провела реверс-инжиниринг многих вызовов функций и форматов файлов в таких областях, как thunking . [ нужна цитата ]
Проект Wine первоначально выпускал Wine под той же лицензией MIT , что и X Window System, но из-за опасений по поводу того, что проприетарные версии Wine не вносят свои изменения обратно в основной проект, [14] по состоянию на март 2002 года для своих целей использовалась лицензия LGPL. лицензирование. [15]
Wine официально вступил в бета-версию с версией 0.9 25 октября 2005 года. [16] Версия 1.0 была выпущена 17 июня 2008 года, [17] после 15 лет разработки. Версия 1.2 была выпущена 16 июля 2010 г., [18] версия 1.4 7 марта 2012 г., [19] версия 1.6 18 июля 2013 г., [20] версия 1.8 19 декабря 2015 г. [21] и версия 9.0 16 января 2024 г. [ 22] Версии для разработки выпускаются примерно каждые две недели.
Wine-staging — это независимо поддерживаемый набор агрессивных патчей , которые разработчики WineHQ не считают готовыми для слияния с репозиторием Wine, но которые все же считаются полезными для форка Wine-Compholio . В основном он охватывает экспериментальные функции и исправления ошибок. С января 2017 года патчи в вин-стажинге начинают активно сливаться с апстримом WineHQ, поскольку вин-комфолио передал проект Алистеру Лесли-Хьюзу, ключевому разработчику WineHQ. С 2019 года [обновлять]WineHQ также предоставляет готовые версии Wine-Staging. [23]
Главным корпоративным спонсором Wine является компания CodeWeavers , которая нанимает Джуллиарда и многих других разработчиков Wine для работы над Wine и CrossOver , версией Wine, поддерживаемой CodeWeavers. CrossOver включает в себя некоторые настройки для конкретных приложений, которые не считаются подходящими для основной версии, а также некоторые дополнительные запатентованные компоненты. [24]
Участие Corel какое-то время помогало проекту, в основном за счет привлечения Джульярда и других к работе над ним. Corel была заинтересована в портировании своего офисного пакета WordPerfect Office на Linux (особенно Corel Linux ). Позже Corel отменила все проекты, связанные с Linux, после того как Microsoft сделала крупные инвестиции в Corel, остановив работу над Wine. [25]
В число других корпоративных спонсоров входят Google , которая наняла CodeWeavers для исправления Wine, чтобы Picasa работала достаточно хорошо, чтобы ее можно было портировать непосредственно в Linux, используя тот же двоичный файл, что и в Windows; Позже Google заплатил за улучшения поддержки Wine для Adobe Photoshop CS2 . [26] Wine также регулярно участвует в программе Google Summer of Code . [27]
Valve работает с CodeWeavers над разработкой Proton — уровня совместимости на основе Wine для игр Microsoft Windows , запускаемых в операционных системах на базе Linux . Proton включает в себя несколько патчей, которые исходная версия Wine не принимает по разным причинам, например, специфичные для Linux реализации функций Win32. Участие Valve в разработке Proton (и, таким образом, в улучшении игр для Linux ) помогло улучшить совместимость Wine с играми для Windows. [ нужна цитата ]
Цель Wine — полностью или частично реализовать API-интерфейсы Windows , необходимые программам, которые пользователи Wine хотят запускать поверх Unix-подобной системы.
Программный интерфейс Microsoft Windows состоит в основном из библиотек динамической компоновки (DLL). Они содержат огромное количество подпрограмм-оболочек для системных вызовов ядра, программы режима ядра NTOS (ntoskrnl.exe). Типичная программа Windows вызывает некоторые библиотеки DLL Windows, которые, в свою очередь, вызывают библиотеки пользовательского режима gdi/user32, которые, в свою очередь, используют kernel32.dll (подсистема win32), отвечающую за работу с ядром посредством системных вызовов. Уровень системных вызовов считается частным для программистов Microsoft, поскольку документация не является общедоступной, а все опубликованные интерфейсы основаны на подсистемах, работающих поверх ядра. Помимо этого, существует ряд программных интерфейсов, реализованных в виде сервисов, которые выполняются как отдельные процессы. Приложения взаимодействуют со службами пользовательского режима через RPC. [28]
Wine реализует двоичный интерфейс приложений Windows (ABI) полностью в пространстве пользователя , а не в виде модуля ядра . Wine в основном отражает иерархию: службы обычно предоставляются ядром Windows [29], а не демоном , известным как Wineserver, задачей которого является реализация основных функций Windows, а также интеграция с системой X Window и перевод сигналы в собственные исключения Windows. Хотя Wineserver реализует некоторые аспекты ядра Windows , с ним невозможно использовать собственные драйверы Windows из-за базовой архитектуры Wine. [28]
Wine позволяет загружать как библиотеки DLL Windows, так и общие объекты Unix для своих программ Windows. Его встроенная реализация самых основных библиотек Windows DLL , а именно NTDLL , KERNEL32 , GDI32 и USER32 , использует метод общего объекта, поскольку они также должны использовать функции в операционной системе хоста. Библиотеки более высокого уровня, такие как WineD3D, могут свободно использовать формат DLL. Во многих случаях пользователи могут загрузить DLL из Windows вместо библиотеки Wine. Это может предоставить функциональные возможности, еще не реализованные в Wine, но также может вызвать сбои, если они основаны на чем-то еще, чего нет в Wine. [28]
Wine отслеживает состояние реализации посредством автоматического модульного тестирования, выполняемого при каждом коммите git. [30]
Хотя большинство офисных программ не используют сложные графические API с графическим ускорением, компьютерные игры используют их. Чтобы правильно запустить эти игры, Wine придется пересылать инструкции по рисованию в ОС хоста и даже переводить их в то, что хост может понять.
DirectX — это набор API-интерфейсов Microsoft для рендеринга, аудио и ввода. По состоянию на 2019 год Wine 4.0 содержит реализацию DirectX 12 для Vulkan API и DirectX 11.2 для OpenGL. [31] Wine 4.0 также позволяет Wine запускать приложения Vulkan, передавая команды отрисовки хостовой ОС или, в случае macOS, переводя их в Metal API с помощью MoltenVK . [31]
Большая часть усилий Wine по созданию DirectX направлена на создание WineD3D, уровня перевода вызовов API Direct3D и DirectDraw в OpenGL . По состоянию на 2019 год этот компонент поддерживает DirectX 11. [31] По состоянию на 12 декабря 2016 года Wine достаточно хорош для запуска Overwatch с D3D11. [34] Помимо использования в Wine, библиотеки WineD3D DLL также использовались в самой Windows, позволяя старым графическим процессорам запускать игры с использованием новых версий DirectX, а старым играм на основе DDraw — корректно отображать их. [35]
Продолжается работа по переносу серверной части Direct3D на Vulkan API. Поддержка Direct3D 12 в версии 4.0 обеспечивается подпроектом vkd3d [31] , а WineD3D в 2019 году был экспериментально портирован для использования Vulkan API. [36] Другая реализация, DXVK, также транслирует вызовы Direct3D 9, 10 и 11 с использованием Vulkan и представляет собой отдельный проект. [37]
Wine после исправления может альтернативно запускать команды API Direct3D 9 напрямую через бесплатный трекер состояния Gallium3D с открытым исходным кодом (также известный как драйвер графического процессора Gallium3D) без перевода в вызовы API OpenGL. В этом случае слой Gallium3D обеспечивает прямую передачу команд рисования DX9, что приводит к повышению производительности почти в 2 раза. [38] С 2020 года проект называется Gallium.Nine. Теперь он доступен как отдельный автономный пакет и больше не требует исправленной версии Wine. [39]
Wine обычно вызывается из интерпретатора командной строки: wine program.exe
. [40]
Существует утилита winecfg
, запускающая графический интерфейс пользователя с элементами управления для настройки основных параметров. [41] Это утилита настройки графического интерфейса, входящая в состав Wine. Winecfg упрощает настройку Wine, устраняя необходимость непосредственного редактирования реестра, хотя, при необходимости, это можно сделать с помощью включенного в комплект редактора реестра (аналогично Windows regedit ).
Для правильной работы некоторых приложений требуется больше настроек, чем просто установка приложения, например, ручная настройка Wine для использования определенных DLL Windows . Проект Wine не интегрирует такие обходные пути в кодовую базу Wine, вместо этого предпочитая сосредоточиться исключительно на улучшении реализации Wine Windows API . Хотя этот подход фокусирует разработку Wine на долгосрочной совместимости, пользователям становится сложнее запускать приложения, требующие обходных путей. Следовательно, было создано множество сторонних приложений, чтобы облегчить использование тех приложений, которые не работают « из коробки» внутри самого Wine. Вики Wine поддерживает страницу текущих и устаревших сторонних приложений. [42]
Разработчики частей Wine, поддерживающих Direct3D , продолжили внедрять новые функции, такие как пиксельные шейдеры, для расширения поддержки игр. [54] Wine также может напрямую использовать собственные библиотеки DLL, тем самым увеличивая функциональность, но тогда необходима лицензия для Windows, если только библиотеки DLL не распространялись вместе с самим приложением.
Wine также включает собственные реализации с открытым исходным кодом нескольких программ Windows, таких как Notepad , WordPad , Control Panel , Internet Explorer и Windows Explorer . [55]
База данных приложений Wine (AppDB) — это поддерживаемая сообществом онлайн-база данных о том, какие программы Windows работают с Wine и насколько хорошо они работают.
Wine обеспечивает хорошую обратную совместимость с устаревшими приложениями Windows, в том числе написанными для Windows 3.1x . [56] Wine может имитировать различные версии Windows, необходимые для некоторых программ, начиная с Windows 2.0 . [57] Однако поддержка Windows 1.x и Windows 2.x была удалена из разрабатываемой версии Wine 1.3.12. Если в системе установлен DOSBox [ необходима ссылка ] (см. ниже о MS-DOS), Wine версии разработки 1.3.12 и более поздних, тем не менее, отображает опцию «Windows 2.0» для имитации версии Windows, но Wine все равно не будет работать в большинстве случаев. Программы Windows 2.0, поскольку функции MS-DOS и Windows в настоящее время не интегрированы.
Обратная совместимость в Wine, как правило, превосходит совместимость с Windows, поскольку новые версии Windows могут заставить пользователей обновлять устаревшие приложения Windows и могут навсегда вывести из строя неподдерживаемое программное обеспечение, поскольку никто не настраивает программу под изменения в операционной системе. Во многих случаях Wine может предложить лучшую поддержку устаревших версий, чем более новые версии Windows с «режимом совместимости». Wine может запускать 16-разрядные программы Windows ( Win16 ) в 64-разрядной операционной системе, которая использует процессор x86-64 (64-разрядный), [58] функциональность, отсутствующая в 64-разрядных версиях Microsoft Windows. [59] [60] WineVDM позволяет 16-битным приложениям Windows работать в 64-битных версиях Windows. [61]
Wine частично поддерживает консольные приложения Windows , и пользователь может выбрать, какой сервер использовать для управления консолью (выбор включает в себя необработанные потоки, проклятия и user32 ). [62] При использовании необработанных потоков или серверов Curses приложения Windows будут запускаться на терминале Unix.
Предварительная поддержка 64-битных приложений Windows была добавлена в Wine 1.1.10 в декабре 2008 года . [63] По состоянию на апрель 2019 года [обновлять]поддержка считается стабильной. Две версии Wine собираются отдельно, и в результате только сборка Wine64 создает среду, способную запускать только приложения x86-64. [64]
По состоянию на апрель 2019 года [обновлять]Wine имеет стабильную поддержку сборки WoW64 , которая позволяет запускать как 32-битные, так и 64-битные приложения Windows внутри одного экземпляра Wine. Чтобы выполнить такую сборку, необходимо сначала собрать 64-разрядную версию, а затем собрать 32-разрядную версию, ссылающуюся на 64-разрядную версию. Как и в случае с WoW64 от Microsoft, процесс 32-битной сборки добавит части, необходимые для работы с 32-битными программами, к 64-битной сборке. [64] Эта функциональность наблюдается по крайней мере с 2010 года. [65]
Ранние версии Microsoft Windows работают поверх MS-DOS , и возможность использования программ Windows может зависеть от программ MS-DOS. Wine не имеет хорошей поддержки MS-DOS, но, начиная с разрабатываемой версии 1.3.12, Wine пытается запускать программы MS-DOS в DOSBox , если DOSBox доступен в системе. [66] Однако из-за ошибки текущие версии [ требуют обновления ] Wine неправильно идентифицируют программы Windows 1.x и Windows 2.x как программы MS-DOS, пытаясь запустить их в DOSBox (что не работает). [67]
Wine предоставляет Winelib, который позволяет использовать реализации Windows API с общими объектами в качестве реальных библиотек для программ Unix. Это позволяет встраивать код Windows в собственные исполняемые файлы Unix. С октября 2010 года Winelib также работает на платформе ARM . [68]
Поддержка Solaris SPARC была прекращена в версии 1.5.26.
Wine обеспечивает некоторую поддержку процессоров ARM (а также ARM64/AArch64) и версий Windows, которые на них работают. По состоянию на апрель 2019 года [обновлять]Wine может запускать приложения ARM/Win32, предназначенные для разблокированных устройств Windows RT (но не программы Windows RT). Поддержка Windows CE (либо x86, либо ARM) отсутствует, [69] но неофициальная предварительная альфа -версия под названием WineCE допускает некоторую поддержку. [70]
3 февраля 2013 года на конференции FOSDEM в Брюсселе Александр Жульяр продемонстрировал раннюю демо-версию Wine, работающую на операционной системе Google Android . [71]
Экспериментальные сборки WINE для Android (x86 и ARM) были выпущены в конце 2017 года. С тех пор официальные разработчики регулярно обновляют их. [4] Сборки по умолчанию не реализуют межархитектурную эмуляцию через QEMU , и в результате версии ARM будут запускать только ARM-приложения, использующие Win32 API. [72]
Wine по умолчанию использует специализированные сборки Windows Gecko и Mono для замены Microsoft Internet Explorer и .NET Framework . Wine имеет встроенные реализации JScript и VBScript . Для этих программ можно загрузить и запустить установщики Microsoft через Winetricks или вручную.
Известно, что Wine не имеет хорошей поддержки большинства версий Internet Explorer (IE). Из всех сравнительно последних версий Internet Explorer 8 для Windows XP — единственная версия, которая сразу же после установки сообщает о пригодном для использования рейтинге в Wine AppDB. [73] Однако Google Chrome получает золотой рейтинг (по состоянию на версию Wine 5.5), [74] и веб-браузер Edge, заменяющий Microsoft IE, как известно, основан на этом браузере (после перехода с собственного механизма рендеринга Microsoft [75] ). . Winetricks предлагает автоматическую установку для Internet Explorer 6–8, поэтому можно разумно ожидать, что эти версии будут работать со встроенными обходными путями.
Альтернативой прямой установке Internet Explorer является использование ныне несуществующего IEs4Linux . Он несовместим с последними версиями Wine, [76] и разработка IEs4Linux неактивна.
Основная разработка Wine направлена на правильную реализацию Windows API в целом и иногда отстает в некоторых областях совместимости с определенными приложениями. Direct3D, например, оставался нереализованным до 1998 года [77] , хотя в новых версиях реализация была все более полной. [78]
CodeWeavers продает CrossOver специально для запуска Microsoft Office и других основных приложений Windows, включая некоторые игры. CodeWeavers нанимает Александра Джульяра для работы над Wine и вносит большую часть своего кода в проект Wine под лицензией LGPL. CodeWeavers также выпустила новую версию под названием CrossOver Mac для компьютеров Apple Macintosh на базе Intel 10 января 2007 года . как «вине32он64». [81]
По состоянию на 2012 год CrossOver включает в себя функциональность линий CrossOver Games и CrossOver Pro, поэтому CrossOver Games и CrossOver Pro больше не доступны как отдельные продукты. [82]
CrossOver Games оптимизирован для запуска видеоигр для Windows . В отличие от CrossOver, он не стремился предоставить наиболее стабильную версию Wine. Вместо этого предоставляются экспериментальные функции для поддержки новых игр. [83]
21 августа 2018 года Valve анонсировала новую версию Wine под названием Proton, предназначенную для интеграции с Linux-версией программного обеспечения Steam компании (включая установки Steam, встроенные в их операционную систему SteamOS на базе Linux и компьютеры Steam Machine ). [84] Цель Valve в отношении Proton — дать пользователям Steam в Linux возможность играть в игры, в которых отсутствует собственный порт для Linux (особенно игры из бэк-каталога), и, в конечном итоге, за счет интеграции со Steam, а также улучшений поддержки игр по сравнению с основной версией Wine, чтобы предоставить пользователям «такой же простой опыт Plug-and-Play», который они получили бы, если бы играли в игру на Linux. [84] Proton вошел в публичное бета-тестирование сразу после объявления. [84]
Valve уже сотрудничала с CodeWeavers с 2016 года для разработки улучшений игровой производительности Wine, некоторые из которых были объединены с исходным проектом Wine. [84] Некоторые из конкретных улучшений, включенных в Proton, включают реализации Direct3D 9, 10, 11 и 12 на базе Vulkan через vkd3d , [85] DXVK , [86] и D9VK [87] улучшения многопоточной производительности через esync, [ 88] улучшена обработка полноэкранных игр и улучшена поддержка аппаратного обеспечения автоматического игрового контроллера. [84]
Proton имеет полностью открытый исходный код и доступен через GitHub. [89]
Российская компания Etersoft занимается разработкой собственной версии Wine с 2006 года. WINE@Etersoft поддерживает популярные российские приложения (например, 1С :Предприятие фирмы «1С» ). [90]
Другие проекты, использующие исходный код Wine, включают:
За прошедшие годы проект Wine получил ряд жалоб и опасений технического и философского характера.
Из-за способности Wine запускать двоичный код Windows возникли опасения по поводу собственных вирусов Windows и вредоносных программ, влияющих на Unix-подобные операционные системы [110] , поскольку Wine может запускать ограниченное количество вредоносных программ, созданных для Windows. Анализ безопасности, проведенный в 2018 году, показал, что 5 из 30 образцов вредоносного ПО смогли успешно работать через Wine — относительно низкий показатель, который, тем не менее, представлял угрозу безопасности. [111] По этой причине разработчики Wine рекомендуют никогда не запускать его от имени суперпользователя . [112] Программное обеспечение для исследования вредоносного ПО, такое как ZeroWine [113], запускает Wine на Linux на виртуальной машине , чтобы обеспечить полную изоляцию вредоносного ПО от хост-системы. Альтернативой повышению безопасности без снижения производительности использования виртуальной машины является запуск Wine в контейнере LXC , как это делает программное обеспечение Anbox по умолчанию с Android .
Другая проблема безопасности возникает, когда реализованные спецификации плохо разработаны и допускают компромисс с безопасностью. Поскольку Wine реализует эти спецификации, он, скорее всего, также реализует любые содержащиеся в них уязвимости безопасности. Одним из примеров этой проблемы была уязвимость метафайла Windows 2006 года , из-за которой Wine реализовывал уязвимый escape-побег SETABORTPROC. [114] [115]
Распространенная озабоченность по поводу Wine заключается в том, что его существование означает, что поставщики с меньшей вероятностью будут писать собственные приложения для Linux, macOS и BSD. В качестве примера стоит рассмотреть операционную систему IBM 1994 года — OS/2 Warp . [ оригинальное исследование? ] В статье описываются недостатки OS/2, которые ее убили, первая из которых:
OS/2 обеспечивала превосходную совместимость с приложениями DOS и Windows 3.1. Нет, это не ошибка. Многие поставщики приложений утверждали, что, разработав приложение для DOS или Windows, они смогут выйти на рынок OS/2 в дополнение к рынкам DOS/Windows, и они не разрабатывали собственные приложения для OS/2. [116]
Однако у OS/2 было много проблем с принятием конечными пользователями. Возможно, самым серьезным было то, что большинство продаваемых компьютеров уже поставлялись с DOS и Windows, и многие люди не удосужились оценить достоинства OS/2 из-за того, что у них уже была операционная система. «Объединение» DOS и Windows и сдерживающий эффект, который это оказало на рынок операционных систем, часто упоминались в деле « Соединенные Штаты против Microsoft Corporation» .
Сам проект Wine отвечает на конкретную жалобу о «поощрении» продолжения разработки Windows API на одной из своих вики- страниц:
Для большинства людей остается несколько программ, привязывающих их к Windows. Очевидно, что Microsoft Office никогда не будет перенесен на Linux, однако и более старые версии программ, таких как TurboTax, также не будут перенесены. Точно так же существуют десятки тысяч игр и внутренних корпоративных приложений, которые никогда не будут портированы. Если вы хотите использовать Linux и полагаться на какое-либо устаревшее приложение Windows, вам необходимо что-то вроде Wine... Wine делает Linux более полезным и позволяет миллионам пользователей перейти на него, которые не могли бы иначе. Это значительно увеличивает долю рынка Linux, привлекая к Linux больше коммерческих и общественных разработчиков. [117]
Кроме того, на странице Wine Wiki утверждается, что Wine может помочь решить проблему курицы и яйца для Linux на настольных компьютерах : [118]
Это подводит нас к проблеме курицы и яйца в Linux на рабочем столе. Пока Linux не сможет предоставить эквиваленты вышеупомянутым приложениям, ее доля на рынке настольных компьютеров будет стагнировать. Но до тех пор, пока доля рынка Linux для настольных компьютеров не увеличится, ни один поставщик не будет разрабатывать приложения для Linux. Как разорвать этот порочный круг?
Опять же, Wine может дать ответ. Позволяя пользователям повторно использовать приложения Windows, в которые они вложили время и деньги, Wine значительно снижает барьер, препятствующий переходу пользователей на Linux. Это позволит Linux быстро распространиться на настольные компьютеры, что увеличит его долю рынка в этом сегменте. В свою очередь, это позволяет компаниям выпускать версии своих приложений для Linux, а новые продукты — выходить только для рынка Linux. Это рассуждение можно было бы легко отвергнуть, если бы Wine была способна только запускать пасьянс. Однако теперь он может запускать Microsoft Office, мультимедийные приложения, такие как QuickTime и Windows Media Player, и даже такие игры, как Max Payne или Unreal Tournament 3. Практически любое другое сложное приложение можно заставить работать хорошо, если потратить немного времени. И каждый раз, когда выполняется работа по добавлению одного приложения в этот список, многие другие приложения получают пользу от этой работы и тоже становятся пригодными для использования.
Загляните в нашу базу данных приложений, чтобы получить представление о том, что можно запускать под Wine.
Использование Wine для игр вызвало особые споры в сообществе Linux, поскольку некоторые считают, что это предотвращает или, по крайней мере, препятствует дальнейшему росту нативных игр для Linux на этой платформе. [119] [120] Однако есть одна странность: Wine теперь может запускать 16-битные и даже некоторые 32-битные приложения и игры, которые не запускаются в текущих 64-битных версиях Windows. [121] Этот вариант использования привел к запуску Wine в самой Windows через подсистему Windows для Linux или сторонние виртуальные машины , [ нужна ссылка ] , а также инкапсулированному с помощью таких средств, как BoxedWine [122] и Otvdm. [123]
До 2020 года Microsoft не делала никаких публичных заявлений о Wine. Однако онлайн-служба Центра обновления Windows будет блокировать обновления приложений Microsoft, работающих в Wine. 16 февраля 2005 года Иван Лео Пуоти обнаружил, что Microsoft начала проверять реестр Windows на наличие конфигурационного ключа Wine и заблокировала Центр обновления Windows для любого компонента. [124] Как отметил Пуоти: «Майкрософт впервые признает существование Wine».
В январе 2020 года Microsoft назвала Wine положительным следствием возможности повторной реализации API в своем заключении amicus curiae по делу Google LLC против Oracle America, Inc. [125]
Обычно мы начинаем с любой доступной документации, реализуем первую версию функции, а затем, когда обнаруживаем проблемы с приложениями, вызывающими эту функцию, исправляем поведение до тех пор, пока оно не станет тем, чего ожидает приложение, что обычно довольно далеко от того, что указано в документации. состояния.
есть несколько отличий от d3d1x:
[...]
он написан на C вместо C++ и не полагается на ужасное множественное наследование с
[...]
До сих пор я пробовал Skyrim, Civilization 5, Anno 1404 и StarCraft 2. на драйверах nvc0 и r600g, которые работают довольно хорошо, при увеличении fps до x2 я получаю с Wined3d (Примечание: тщательного тестирования еще не проводилось).