Вышел Wine 5.0

    21 января 2020 года состоялся официальный релиз стабильной версии Wine 5.0 — свободного инструмента для запуска нативных Windows-программ в UNIX-среде. Это альтернативная, свободная реализация Windows API. Рекурсивный акроним WINE означает "Wine Is Not an Emulator".

    За этой версией — около года разработки и более 7400 отдельных изменений. Ведущий разработчик Александр Жуйяр (Alexandre Julliard) выделяет четыре:

    • Поддержка модулей в формате PE. Это решает проблемы с разными схемами защиты от копирования, которые проводят сверку системных модулей на диске и в памяти.
    • Поддержка нескольких мониторов и нескольких GPU, включая динамическое изменение настроек.
    • Реимплементация XAudio2 на базе проекта FAudio, открытой реализации звуковых библиотек DirectX. Переход на FAudio позволяет добиться более высокого качества звука в играх, задействовать смешивание громкости, расширенные звуковые эффекты и др.
    • Поддержка Vulkan 1.1.

    Более подробно о ключевых нововведениях.

    Модули PE


    При наличии компилятора MinGW большинство модулей Wine теперь собираются в формате исполняемых файлов PE (Portable Executable, бинарный формат Windows) вместо ELF.

    Исполняемые файлы PE теперь копируются в каталог ~/.wine вместо применения фиктивных DLL-файлов, что делает приложения более похожими на реальные установки Windows.

    Пока в формат PE конвертированы не все модули. Работа продолжается.

    Графическая подсистема


    Как уже было сказано выше, добавлена поддержка работы с несколькими мониторами и графическими адаптерами.

    Драйвер Vulkan обновлён до спецификаций Vulkan 1.1.126.

    Кроме того, библиотека WindowsCodecs теперь поддерживает дополнительные растровые форматы, включая форматы с индексированной палитрой.

    Direct3D


    Полноэкранные приложения Direct3D теперь блокируют вызов скринсейвера.

    Для приложений DXGI реализована возможность переключения между полноэкранным и оконным режимом при помощи стандартной комбинации Alt+Enter.

    Расширены возможности Direct3D 12: поддержка переключения между полноэкранным и оконным режимом, изменения режимов экрана, представления с масштабированием и интервалы замены буферов отрисовки (swap interval). Все эти функции уже были реализованы для предыдущих версий Direct3D API.

    Участники проекта тщательно поработали и устранили буквально сотни багов, так что улучшена обработка Wine различных пограничных ситуаций. Среди них сэмплинг ресурсов 2D в сэмплерах 3D и наоборот, применение выходящих за допустимые диапазоны исходных значений для тестов прозрачности и глубины, отрисовка с отражёнными текстурами и буферами, использование некорректных клиперов (объект DirectDraw) и многое другое.

    Снижен размер необходимого адресного пространства при загрузке 3D-текстур, сжатых методом S3TC (вместо загрузки целиком, текстуры грузятся кусками).

    Для старых приложений DirectDraw внесены различные улучшения и исправления, связанные с расчётом освещения.

    Расширена база графических карт, распознаваемых в Direct3D.

    Сеть и криптография


    Движок Gecko обновлён до версии 2.47.1 для поддержки современных инструментов. Реализован ряд новых HTML API.

    В MSHTML реализована поддержка элементов SVG.

    Добавлено много новых функций VBScript (например, обработчики ошибок и исключений).

    Реализована возможность получения параметров настройки HTTP-прокси чрез DHCP.

    В криптографической части реализована поддержка криптографических ключей на основе эллиптических кривых (ECC) через GnuTLS, добавлена возможность импорта ключей и сертификатов из файлов в формате PFX, добавлена поддержка схемы формирования ключа на основе пароля PBKDF2.


    Adobe Photoshop CS6 под Wine

    Другие существенные нововведения


    • Поддержка спинлоков ядра NT.
    • Благодаря истечению патента на компрессию текстур DXTn и S3 стало возможно включить их в дефолтную реализацию.
    • Поддержка установки драйверов plug-and-play.
    • Различные улучшения DirectWrite.
    • Улучшенная поддержка Windows Media Foundation API.
    • Лучшая синхронизация примитивов благодаря реализации на фьютексах.
    • Совместное использование Wine-Mono для экономии места вместо опенсорсной реализации .NET на каждый ~/.wine.
    • Поддержка Unicode 12.0 и 12.1.
    • Реализация начального HTTP-сервиса (HTTP.sys) в качестве замены Winsock API и IIS, в результате чего производительность стала выше, чем у Windows Sockets API.
    • Лучшая совместимость с отладчиками Windows.
    • Лучшая поддержка LLVM MinGW и улучшения кросс-компиляции WineGCC.

    Можно ещё упомянуть улучшения в пользовательском интерфейсе. Например, свёрнутые окна теперь отображаются с помощью строки заголовка, а не пиктограммами в стиле Windows 3.1. Улучшена поддержка игровых контроллеров, включая hat switch, руль и педали.

    Из Wine удалены встроенные декодеры AVI, MPEG-I и WAVE, вместо которых теперь используются системные GStreamer или QuickTime.

    Добавлена возможность применения отладчика из Visual Studio для удалённой отладки приложений, запущенных в Wine, частично реализована библиотека DBGENG (Debug Engine), из собираемых для Windows файлов удалена зависимость от libwine.

    Для оптимизации производительности различные функции работы со временем переведены на использование высокопроизводительных системных функций работы с таймером, что позволило снизить накладные расходы в цикле отрисовки многих игр. Сделаны и другие оптимизации производительности.

    Полный список изменений см. здесь.

    Исходный код Wine 5.0, зеркало
    Бинарники для различных дистрибутивов
    Документация

    На сайте AppDB ведётся база Windows-приложений, совместимых с Wine. Вот лидеры по количеству голосов:

    1. Final Fantasy XI
    2. Adobe Photoshop CS6 (13.0)
    3. World of Warcraft 8.3.0
    4. EVE Online Current
    5. Magic: The Gathering Online 4.x

    Можно предположить, что эти приложения в Wine запускают чаще всего.

    Примечание. Релиз Wine 5.0 посвящён памяти Юзефа Кучи (Józef Kucia), который трагически скончался в августе 2019 года в возрасте 30 лет, исследуя пещеру на юге Польши. Юзеф был важным участником разработке Direct3D Wine, а также ведущим автором проекта vkd3d. За время работы над Wine он внёс более 2500 патчей.

    Дата-центр «Миран»
    Решения для аренды и размещения ИТ-инфраструктуры

    Комментарии 78

      +1
      Интересно, а MS-DOS игры поддерживаются Wine' ом? Как насчёт 32-битных приложений для Win9x?
        +8
        А зачем MS-DOS Wine'у? Есть же DOSBox.
          0
          Ещё есть DOSEMU для случаев когда DosBox не справляется.
          +1
          Насколько помню, wine умел запускать DOSовские приложения используя dosemu.
          –1

          А работу с Mac OS Catalina починили? Ибо Wine там не работал вообще. А раньше я отлично использовал его для компиляции программ под Windows. А вот после обновления яблока с ужасом обнаружил, что Wine больше не заводится на Маке.


          Ага, судя по "WineHQ binary packages for macOS 10.8 through 10.14" о Wine на Маке можно забыть на неопределенный срок...

            +1
            wine64 вполне себе работает.
              –2

              На Mac OC Catalina? Что-то с трудом верится. Я только что из исходников Wine 5.0 собрал… Ни одного exe-шника он запустить не в состоянии!

                +1
                Ну да, почему бы и нет?
                image
                  +1

                  У меня это тоже вполне себе работает. Вы пробовали запустить установщик exe какой-нибудь?

                    +1
                    Установщики не пробовал, но вот скачал 64bit версию CPU-Z и она прекрасно работает.
                      0

                      У меня ни один инсталлятор Python с офф сайта не завелся через Wine.

                        +1
                        Инсталлятор Питона в Вайне? Реально?
                        Если уж нужно так извратиться, там есть архивы без всяких инсталляторов, прекрасно работает всё.
                        image
                          0

                          Почему "извратиться"? У меня нет Windows, но мне нужно собрать пакет для этой системы с помощью PyInstaller. Виртуалку я не могу использовать, потому что виртуалка на Mac не работает с Kivy, фреймворком, с которым работаю я. Что мне использовать в этом случае?

                            +8
                            Windows
                              +2

                              Боже упаси!

                                +23
                                Маководы должны страдать.
                                  –5

                                  Сказал виндузятник!

                                    0
                                    Я не понял, Apple же специально дает драйвера для windows. Я можно и linux…
                              +7

                              Какие же маководы нищеброды, прости Господи.
                              Не могут себе позволить иметь вторую машину с виндой.

                                –13

                                Могут. Но у меня, например, стойкая неприязнь ко всем поделкам от Windows и я никогда не сяду за эту систему. Мне хватило два дня работы на этой дырявой ОС, чтобы понять, что я никогда в своей жизни не буду с ней работать. Поэтому пользуюсь только Unix-системами.

                                  +8

                                  При таком почти религиозном отвращении мне кажется вам стоит задуматься над сменой работы, чтобы на самом деле не приходилось работать с системой которую вы так сильно ненавидите. Потому что с чисто профессиональной точки зрения самый правильный вариант разработки чего бы то ни было под конкретную систему — это таки иметь машину с этой системой. Хотя бы для отладки, код конечно можно писать где угодно.

                                    –7

                                    Чисто с профессиональной точки зрения нужно задуматься над выбором профессиональной ОС для работы!

                                      +7
                                      Ну судя по тому, какие нелепые, но крайне несекьюрные баги становятся достоянием общественности в макоси, на пару с тем, что Эппл решило по просьбам ФБР не шифровать бэкапы в айклауде, профессиональной осью остаётся только БСД или соляра. Потому что всё остальное жуть и позор (десктопные линуксы остаются лотереей «авось у вас ничего ломаться не будет», макось тоже далеко не во всём замечательная, винды вы без меня покрыли).

                                      Но вообще вы сказали, что вам надо собрать что-то под винды. И надеяться, что это «что-то» будет работать под виндами, не проверяя это, собственно, под виндами — и правда не самый профессиональный подход.
                                        –1

                                        Разве я где-то упомянул, что отдаю продукт без проверки на целевой платформе? То, что я не пользуюсь Windows, еще не говорит о том, что этой ОС не пользуются другие.

                                          +1

                                          То, что вы лично не проверяете то, что собираете говорит о конкретно вашем профессионализме. Никто здесь ваш продукт и не осуждает, только конкретно ваш подход.

                                            0

                                            Да что вы говорите! Вы тут еще кого-то и осуждаете?!

                                              +1

                                              Конечно, я вроде бы прямо написал что осуждаю ваш подход к разработке и считаю его непрофессиональным. И судя по всему я тут не один такой. Что-то не так?

                                                –6

                                                Все так. Плевать я хотел на тебя и твои осуждения!

                                      +1
                                      Для отладки хватает виртуалки, благо под Linux VirtualBox работает замечательно, и даже с PCI passthrough.
                                        –1

                                        Хватает, но, как я писал выше, к сожалению, не для всех инструментов.

                                          0
                                          а для чего не хватает — можно пример?
                                      +3
                                      Я слышал, что wine прекрасно работает в Linux.
                                        0
                                        а почему дырявой — взломали тебя?
                          +2
                          Но нужно понимать, приложения тоже должны быть 64bit.
                            0
                            "Z:\Users\macbookair\Downloads\python-3.7.4-amd64.exe" not supported on this system

                            Пока это все, что мне удалось добиться от Wine на Mac OC Catalina.


                            image

                              +2
                              Значит инсталлятор явно не 64bit.
                              Я скачивал для теста Windows x86-64 embeddable zip file.
                              Обязательно нужно прям next-next покликать?))
                                +1

                                Только что проверил на своей винде — там и правда 32х-разрядный процесс запускается.

                                  0

                                  Это офф сайт. Написано — для 64bit. Ни один инсталятор не работает. Почему так, я не знаю. Я там уже все пакеты перекликал. Но вот embed (пакет с бинарниками) заработал. Поставил pip, вроде жить можно :)

                                    +11

                                    Питон — для 64 бит. А инсталлятор — для 32х.

                              +3
                              Виноват то не Wine! В Catalina полностью выпилили 32bit, будут работать только 64bit экзешники и только в wine64.
                                +2
                                Crossover смогли запилить работу 32битных приложений в последнем релизе, может и Вайн сможет… :(
                                  +1
                                  Кстати да! Работает в нём 32bit приложение!
                                  А ведь, по сути, тот же wine…
                              +1

                              Не работает.
                              Нормально — не работает.
                              Какое-нибудь standalone в виде cpu-z может и работает.
                              А толку?
                              Ни один инсталлер не запускается.

                              +1
                              Крайняя версия CrossOver уже работает.
                              +5
                              Александр Джуллиард (Alexandre Julliard)


                              Жуйяр. Александр Жуйяр.
                              Для тех, кто не владеет хотя бы навыками чтения основных европейских языков давно придуманы
                              практические транскрипции
                                +5
                                К сожалению, не всегда понятна страна (язык) происхождения имени человека. А при переезде между странами европы запись имени латиницей не меняется. С этим много трудностей.
                                  +2
                                  Мне кажется, что начитанный человек страну происхождения в большинстве случаев опознает.
                                  А даже если неясно, то можно заглянуть в Википедию или погуглить, набрав только фамилию, и по однофамильцам понять страну.

                                  Хотя есть исключения. Тот же Ricky Gervais, который имеет чисто французскую фамилию Жерве, но сам произносит её как Джервейс

                                  На закуску: пианист родом из Южной Африки — Christian Bezuidenhout — Кристиан Безёйденхаут
                                    +2

                                    Голландские фамилии в ЮА — не редкость.
                                    Африкаанс он не просто так на базе голландского.

                                      +1
                                      «No one in this country can ever pronounce my name right. It's not that hard: Na-ghee-na-na-jar. Nagheenanajar.»
                                    +7

                                    Если бы все так просто было. Замечательный исторический пример: George Washington vs George III. Первый на русском Джордж, а второй — Георг.

                                      +1
                                      А философ Гексли — дедушка писателя Хаксли
                                        +1
                                        image
                                        «Дамы и господа. Обычно, я с большим удовольствием сыграла бы вам что-нибудь из Чопина. Но в честь моей новой мачехи, которую я просто обожаю, я решила сыграть что-нибудь собственного сочинения.»
                                          +1
                                          А мой сын Георгий, по загран паспорту оказался «GEORGII» — Георг Второй. Кто бы знал.
                                          –2
                                          Дон Хуан де Бурбон (исп. don Juan de Borbón)

                                          Из за созвучия с некоторым татарским диалектом в русском приняли решение заменить «Х» на «Ж»
                                            +1
                                            "Жуан" вместо труЪ-Хуана всего лишь калька с французкого произношения. И какие-то вымышленные «татарские диалекты» здесь не причём.
                                          +2
                                          Реализация начального HTTP-сервиса (HTTP.sys) в качестве замены Winsock API и IIS, в результате чего производительность стала выше, чем у Windows Sockets API

                                          Как HTTP.sys может заменить IIS?
                                          Производительность чего именно ускоряется при замене Winsock API на HTTP.sys?

                                            +2

                                            Сам спросил, сам отвечаю. В оригинале написано только вот это:


                                            The HTTP service and corresponding client-side library (HTTPAPI) are
                                            partially implemented.

                                            Похоже, что как замена IIS, повышение производительности, а также слово "начальный" являются просто отсебятиной переводчика.

                                              +2
                                              Я думаю просто не совсем адекватно перевел partially implemented как «реализация начального сервиса», должно быть или «частично реализован сервис ...» или «начата реализация сервиса ...». Про IIS в оригинальном changelog по ссылке и правда ничего нет.
                                            +1

                                            систему торговли акциями/облигациями на бирже QUIK кто нибудь пробовал под Wine 5.0?

                                              0
                                              Она и на 4-х работает версиях
                                              +1
                                              Решить проблему автобана в некоторых играх из-за использования Wine никак нельзя?
                                                0

                                                Так это не проблема вайна. Это надо к разработчикам системы автобана обращаться.

                                                  0
                                                  Толковый античит неизбежно будет использовать драйвер для своей работы. Wine эмулирует только юзерленд, виндовые драйвера на нём не заработают. Соответственно, античит может расценить невозможность запустить свой драйвер как попытку предотвратить работу античита. Можно дописать код детекта, что игра работает под Wine, но вот что дальше с этим — большой вопрос.
                                                    0

                                                    Если производитель решает проблему читов на клиенте — значит он выдает клиенту больше информации, чем клиенту следует знать, раз такое читерство возможно. Решать, что клиент делает что-то нелегальное должен сервер, а не непонятного назначения дрова, которые майнят коины (black desert), вызывают bsod (archeage) или делают вообще хрен пойми какие вещи, ведь они работают на уровне админа с полным доступом везде. Где гарантия, что они не шлют мои печеньки, фото экрана или базу keepass?

                                                      +2
                                                      Ну на олимпиаду вас же не допустят, если вы откажетесь от прохождения тестов на допинг. Так и тут. Чтобы в сетевой игре честным игрокам не приходилось всё время проигрывать жуликам, с жуликами приходится бороться. Так как читы часто работают на уровне ядра, античит тоже должен работать на уровне ядра, чтобы иметь возможность эффективно находить следы такой деятельности. И если игрок хочет поиграть в какую-то сетевую игру, он должен также согласиться и на запуск кода античита на уровне ядра.

                                                      Увы, но сервер всегда будет отдавать клиенту достаточно информации, чтобы можно было написать чит для получения несправедливого преимущества, если это не шахматы какие-нибудь, конечно же. Допустим, вы пишете шутер. Вы в любом случае будете передавать координаты ближайших к игроку соперников. А это позволяет сделать на клиенте автоприцел, или подсвечивать местонахождение соперников через стены. Разве что клиенту отдавать только уже отрендерённую картинку, но это у вас уже получится Google Stadia, со всеми её недостатками.

                                                      Античит также борется с запуском ботов игроками. Пускай даже сервер отдаёт ровно столько информации, сколько игрок может увидеть на своём экране, и ни крупицей больше. Боту это не помешает заниматься прокачкой персонажа и добычей каких-нибудь ресурсов, например.
                                                  +1
                                                  Глупый вопрос. А если софт под винду с вирусами или с багами, это может как-то необратимо сломать основную ОС через вайн?
                                                    +2
                                                    Ну, вирусы в Windows-программах скорее всего будут заточены именно для «работы» в Windows. Но теоретически, если их разработчики специально учли такой вариант (что их из-под Wine запускать в GNU/Linux будут) — да, это возможно (если конечно у Wine с «песочницей» не всё хорошо — есть лазейки). Если короче, то это очень маловероятно.

                                                    UPD: Похоже, Windows-программы которые запускаются в Wine, имеют доступ в домашней папке пользователя (/home/username).

                                                    UPD2: Can a wine app access files outside of the wine drive_c environment?
                                                      0
                                                      wine запускается с правами запустившего пользователя, чтоб серьёзно накуралесить нужно либо чтоб были рутовые права (что уже странновато), либо чтоб важные данные были доступны под этим пользователем. Каких-то сценариев повышения прав через wine не припоминаю. А видит он файловую систему прекрасно всю. У меня, например, корневая директория монтируется как диск Z в wine, это поведение было задано по умолчанию.
                                                        0
                                                        чтоб серьёзно накуралесить нужно либо чтоб были рутовые права

                                                        Давно уже данные пользователя дороже системы.
                                                          0

                                                          Какой-нибудь криптошифровальщик запросто должен их скушать. Блокировку загрузки устроить, думаю, обломается. Но от этого не легче

                                                            0
                                                            На это и намекаю.
                                                        0
                                                        Windows-программы которые запускаются в Wine,

                                                        можно запретить
                                                        +1

                                                        Необратимо сломать — вряд ли, а вот наделать бед — запросто.
                                                        Классика же: https://bash.im/quote/394204

                                                        0

                                                        И вот ещё приятно удивило:


                                                          0

                                                          Capture One, Lightroom — работают?

                                                            0
                                                            Quik (биржевой терминал) в Mac OS Catalina работает?
                                                            И если не Wine, то что?
                                                              0

                                                              а на различные убунты выше 18.04 теперь без танцев с бубном устанавливается?

                                                                0

                                                                Пока обновлений более старых версий не прилетало

                                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                              Самое читаемое