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