Wine 3.0 и много плюшек

    На Хабре незамеченным прошел выход 3-й версии Wine — открытой реализации Win32 API. Трудно найти другой проект с открытыми исходниками, за исключением ядра, который бы так много значил для пользователей Linux, MacOS, FreeBSD и других POSIX-совместимых ОС. Каждый успех разработчиков Wine приводит к тому, что множество новых игр и приложений становятся доступны для пользователей Linux.


    Wine


    В этом плане Wine 3.0 явно не разочаровал: поддержка Direct3D 10 и 11, графический драйвер Android, поток команд Direct3D, реализован криптографический стандарт AES, новый уровень поддержки Direct Write и Direct2D — вот основные результаты. По итогам более 6000 внесенных правок произошло много интересного, включая переход дефолтной версии с Windows XP на Windows 7.


    • 4586 приложений с высшим, платиновым статусом. Работают без нареканий.
    • 3918 приложений с золотым статусом. При минимальных настройках и внешних DLL работают без нареканий.

    Еще до выхода предыдущей значительной версии разработчики Wine объявили о переходе на новый график релизов. Вместо 1.x.y / 2.x.y. раз в год выходят сразу версии 2.0, 3.0, 4,0 и т. д.


    Direct3D


    В новой версии реализованы значительная часть свойств Direct3D 10 и 11.


    • Вычислительные и мозаичные или тесселяционные шейдеры.
    • Потоковый вывод.
    • Запрос возможностей форматов.
    • Счетчики неупорядоченного просмотра.
    • Буфера со структурной определенностью и побайтовой адресацией.
    • Производство уровней mip-map.
    • Инструкции и модификаторы интерполяций шейдеров 4-й и 5-й модели.
    • Кубическая текстура.
    • Бестиповые ресурсы.
    • Многоуровневая обработка 3-х мерных текстур и текстурных массивов.
    • Консервативный вывод и перекос в пользу глубину.
    • AppendStructuredBuffer, ConsumeStructuredBuffer.

    Поддержка основных контекстов OpenGLв Direct3D получила дальнейшее развитие и теперь уже используются в системах с видео-картами Intel и AMD. Пополнилась база данных распознаваемых графических карт.


    Графика


    • В Direct2D теперь поддерживается отрисовка контуров и вычисление границ геометрических объектов, поддержка кистей с линейными и радиальными градиентами. Появилась совместимость с GDI.
    • Список расширений OpenGL обновился до версии 4.6.
    • Системная библиотека GLU (OpenGL Utility Library) требуется лишь при использовании обработчика Nurbs, а остальные функции GLU теперь реализованы внутри Wine.
    • Новые возможности GdiPlus: обработка графических операций и воспроизведение большинства типов WMF (Windows metafile), специфичных для GdiPus.
    • WindowsCodecs поддерживает кодирование форматов изображения, в том числе и палитру.

    На Реддите зафиксирован случай установки Photoshop CC 2018 64bit на Linux, с помощью Wine.

    Linux Photoshop


    Ядро


    • По умолчания программа использует Windows 7.
    • Релизована полноценная семантика именованных каналов, включая каналы с режимом обмена сообщениями.
    • Добавлена поддержка PIE (Position Independent Executables) для исполняемых файлов Wine и запуска внешних бинарников.
    • Автоматически создаются устройства с последовательным и параллельным портом. Порты могут быть переопределены через HKLM\Software\Wine\Ports.
    • Режим безопасного поиска DLL, включен по умолчанию. Его можно отключить через ключ HKLM\System\CurrentControlSet\Control\Session Manager, выставив переменную SafeDllSearchMode равной 0.
    • Режим безопасного поиска процессов, выключен по умолчанию. Его можно включить через ключ HKLM\System\CurrentControlSet\Control\Session Manager, выставив переменную SafeProcessSearchMode равной 1.
    • Повышена производительность асинхронных операций I/O.
    • 64-разрядные платформы получили возможность выделять области виртуальной памяти сколь угодно большого размера.
    • Операции с записью в память, одновременно использующие те же самые буферы файловых I/O, работают корректно.

    Пользовательский интерфейс


    • Для новых мониторов с высоким DPI имеются: новые и лучшие курсоры мыши, Shell Explorer, RichEdit и все основные диалоги.
    • DPI экрана можно пере-определить через значение параметра LogPixels в ветке HKEY_CURRENT_USER\Control Panel\Desktop.
    • Режим рабочего стола умеет поддерживать более высокие разрешения с различными аспектами соотношения сторон.
    • Библиотека TWAIN обрела поддержку диалога выбора источника сканирования.
    • Устройство-независимые битовые массивы и WMF структуры могут храниться в OLE Data Cache.
    • TaskDialog, Internal User Interface в MSI, отрисовка тем оформления посредством двойной буферизации.
    • Шрифты совместимы с нововведениями FreeType версии 2.8.1.
    • Таблицы символы перевели на стандарт Unicode 10.0.0
    • Контекстная замена глифов в Uniscribe, раскладки клавиатуры Nepali и Bangla (India).

    Android


    • Wine можно теперь собрать как регулярный APK пакет для мобильной платформы Android.
    • Написан полноценный графический драйвер. Вследствие ограничений оконного интерфейса Android API поддерживается лишь полно-экранный режим работы.
    • Полноценный аудио драйвер.
    • Реализована поддержка OpenGL ES API.

    Интеграция с рабочим столом


    • В .desktop файлах определен параметр StartupWMClass для привязки к исполняемому файлу Windows.
    • Библиотека Xfixes следит за изменениями в буфере обмена, вносимыми приложениями X11.
    • Компонент RichEdit может осуществлять вставки WMF.
    • Добавлен протокол Program Manager DDE.
    • Служба HID обнаружения PnP устройств включена по умолчанию.
    • 4 версия протокола уведомлений системного трея поддерживается на macOS.

    Сети и интернет


    • В Web Services добавлена поддержка TCP/UDP приемников, а также поддержка протокола .NET Message Format Protocol и формата .NET Binary Format. Реализована поддержка приема сообщений в асинхронном режиме.
    • HTML: переработан код обработчика событий, добавлено поддержка множества новых стандартных API, браузер научился понимать MHTML.
    • .NET лучше поддерживает встроенные HTML документы.
    • WinHTTP корректно интерпретирует атрибуты файлов cookie.

    Криптография


    • Добавлена поддержка Rijndael, a. k. a. AES — симметричного алгоритма блочного шифрования.
    • Функции криптографического хеширования реализованы собственными силами, вместо использования GNU TLS.
    • Дополнительные программы Gecko и Mono проверяются с помощью алгоритма хеширования SHA56.
    • Корневой сертификат Microsoft от 2011 г. включен в список известных сертификатов Microsoft.

    D3DX 9


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

    DirectWrite


    • Поддерживаются знаки усечения замыкающей линии как в символьных, так и в текстовых режимах.
    • Улучшен режим переноса строки.
    • Поддержка методов равномерного и пропорционального междустрочного интервала.
    • Наклонное и полужирное воспроизведение в режиме изображения битовых массивов.
    • В приложениях доступна поддержка загрузки файлов шрифтов в оперативную память.
    • Кэш безопасен для множественных потоков.
    • Реализована оценка метрик свисания для маркировки.

    Платформа ARM


    • ABI с плавающей запятой по умолчанию принимает значение softfp для совместимости с исполняемыми файлами Windows.
    • Добавлена поддержка предварительной загрузки, а также использование режима отладки ретрансляции.

    И другие товарищи


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


    • Утилита wineinstall устарела и была удалена.
    • RegEdit всегда показывает 64-разрядные представления реестра на 64-разрядных префиксах.
    • Появилась папка ProgramData.
    • ODBC обзавелся поддержкой установки SQL драйвера.
    • Kerberos Authentication Package использует библиотеку krb5.

    Третий Wine в числах


    Релиз состоит из 5,170,395 строк кода в 7,373 файлах. За все время было сделано 121,944 обновлений со стороны 1,480 программистов.


    Статистика разработки


    Со второй версии произошло 6,026 обновлений, в которых было добавлено 448,982 и удалено 216,298 строк кода.


    Статистика разработки


    Wine 3.1


    Пока я писал про Wine 3.0 оперативно выкатили более свежую версию 3.1. Вот основные возможности последней стабильной версии.


    • Поддержка аутентификации с помощью Kerberos.
    • Возможность перенаправления класса Window для Common Controls 6.
    • Для X11 реализована поддержка визуализации ARGB.
    • Для запуска DOS приложений теперь требуется DOSBox.

    Использованные материалы


    Поделиться публикацией

    Похожие публикации

    Комментарии 71
      +24
      Еще до выхода предыдущей значительной версии разработчики Wine объявили о переходе на новый график релизов. Вместо 1.x.y / 2.x.y. раз в год выходят сразу версии 2.0, 3.0, 4,0 и т. д.

      И эти туда же...

        +13
        > Трудно найти другой проект с открытыми исходниками, пожалуй кроме самого ядра, который настолько много значит для пользователей Linux, MacOS, FreeBSD и других POSIX-совместимых ОС. Каждый успех разработчиков Wine знаменует множество новых игр и приложений, которые будут теперь доступны для пользователей Linux.

        Как много сказано в этих строках
          –1
          Тонко подмечено
            +1
            Если говорить об играх, то большую роль играет в этом плане Steam. Wine конечно хорошо, когда нет альтернатив, но лучше родные приложения.
              +1
              В Steam внушительный процент «родных приложений» — версии, полученные путём прикручивания конкретной версии Wine к Windows-приложению.

              Это, кстати говоря, один из самых «правильных» способов использования в Wine: никакие косяки эмуляции не будут проблемой, если сам разработчик запускает программу под Wine и может «проблемные» места просто переписать…
            +4
            Удивительно, что проект до сих пор так быстро развивается. Игры, редакторы и CAD почти все работают через Win API. Интересно как проекты обмениваются патчами с ReactOS…
              0
              Мечты о Reactos разбились о печальные факты:
              1. FAT32 в 2018 году?
              2. Не подхватился стандартный realtek-овский драйвер старенькой сетевой карты, увы.
                –7
                1. А что такого в FAT в 2018 году? Разве ее запретили каким-то новым законом, и теперь каждому юзеру нужно посылать SMS для оплаты штрафа за ее использование?

                ReactOS пока что можно установить только на FAT32, но читать и записывать можно на разделах с NTFS (только чтение), BTRFS, EXT2\3\4, UFS, UDFS, ReiserFS, NFS 4.1

                2. Список протестированных сетевых адаптеров. Мне кажется, что ReactOS тут не виноват. Вы читали мануал перед установкой?
                  +1
                  1. Как насчет того, что FAT32 — это архаичная ФС с кучей ограничений, которую сегодня никто не использует? Ладно еще флешки всякие, но в 2018 году ставить ОС на ФАТ32-раздел — сюр, как по мне.
                  2. Хм. Поправьте, если я ошибаюсь, но разве РеактОС не декларирует работу с самыми обычными виндовыми дровами? Если так, то невозможность это делать — вино РеактОС.
              0
              Сколько обновлений выходит, а поддержку MS HTML Application так и не реализуют. «Mshta.exe is a stub!»
                0
                Имхо этот рудимент пора уже вырезАть из самих виндов, он ЕМНИП с 95х там сидит. Вот только на нем оказалось столько всего завязано… может, поэтому и у вайновцев с ним косяк, подступиться не могут.
                  0
                  Вот только на нем оказалось столько всего завязано

                  Заблочил его у себя на XP, вроде всё нормально.
                    0
                    У меня на десятке оутлук-2016 перестал отображать «главную страницу», если нажать на корень ящика, там в норме пишется краткая инфа о входящих, задачах итп. Точнее, стал просто вешаться. Пока в свойствах не отключил «Показывать по умолчанию домашнюю страницу», так и вешался. Возможно даже, что полетело автообновление Windows из-за его удаления (я его во всех каталогах переименовал в *.ex_). Мне правда некогда особо копаться в поисках точных последствий, но сам факт того, что отвалилось что-то в прикладном софте, всерьез настораживает.
                      +3
                      Заблочил его у себя на XP, вроде всё нормально.

                      Не думали выйти из леса? на дворе 2k18 )
                        +1
                        Где такой лес, где водятся компьютеры с 24ГБ оперативы и 64 битными ОС, последним нормальным Firefox и прочим нужным софтом? Хороший у меня лес в общем, ещё лет 5 там посижу, а дальше жизни нет, ибо ни одна новая ОС не радует глаз.
                          0
                          Предвижу дорогу из леса: Linux + Xfce4
                            0
                            Посмотрим, что будет через 5 лет. Мне иногда кажется, что проще будет запилить свою ОС, чем перепиливать существующие под мой вкус.
                    0
                    Может просто сообществу пользователей это не нужно? Насколько большая кодовая база на VBS/WSH у Вас?
                      0
                      Не настолько большая, чтобы оправдать его поддержку. В Windows mshta.exe — это просто тоненькая прослойка, вызывающая Internet Explorer. Если Internet Explorer у вас есть, то создать её — несколько дней работы… а вот если его нет — то вам нужно его замену создать. Это — задачка примерно такой же сложности как всё остальное, что сделано в рамках WINE.

                      Для того, чтобы оправдать такие трудозатраты — достаточного количества приложений нету…
                        0
                        Может, в вайновом mshta имеет смысл вызывать файрфокс вместо IE?
                          +1
                          Так он там не просто вызывается! Оттуда через COM можно кучу интерфейсов вытащить! Я, правда, не знаю, какая часть из них нужна для MS HTML Application, может быть что-то совсем небольшое нужно.

                          Файрфокс вызвать не получится (когда-то давно он предоставлял интерфейсы для встраивания, но потом их «отпилили»), можно с CEF попробовать…
                            0
                            Может просто webkit взять?
                              +2
                              Можно и webkit. Но в любом случае потребуется потом напильник нечеловеческих размеров: приложения-то рассчитаны чёртно на Internet Explorer! И активно используют все его фишки!

                              Добиться совместимости настолько сложно, что даже Microsoft забил: при наличии в Windows 10 Edge… Internet Explorer — тоже есть… в частности для mshta…
                      0
                      По итогам ветки, выходит, «Просто» добавить mshta. Угу.
                        0
                        оох, и хорошо, как же оно в винде раздражает
                        +2

                        Выделение областей памяти "сколь угодно больного размера" порадовало :). Опечатка очевидная, но весьма улыбающая (я бы из-за этого даже не стал бы исправлять!)

                          0
                          Про относительную значимость, IMHO, сильное преувеличение
                            +1
                            А как дела с поддержкой USB?
                              +2

                              А каким боком тут wine? Это ОС должна его поддерживать а wine и так пробрасывает все что примонтировано

                                0

                                USB — это не только флешки. Например какой-нить проприетарный программатор, который фигачит vendor-specific запросы через winusb или rawhid.

                                  0
                                  так программаторы обычно через виртуальный COM работают, который wineом точно также пробрасывается. WinUSB в wine нет.(есть только стабы)
                                    0

                                    Не всегда. Я недаром написал про RAW HID.

                              +2
                              Функции криптографического хеширования реализованы собственными силами, вместо использования GNU TLS.

                              И тут моя вера в человечность полностью пропала
                                +1

                                Там это только в legacy cryptoapi в rsaenh самописный AES. В cryptoapi ng там через gnutls и хэши и aes

                                +2
                                может снова попробовать собрать свою глупую мечту, (полноценный) Windows у которого под капотом ядро линукс
                                  +5
                                  Windows 10. Правда, ядро Linux у нее под капотом это скорее бачок для омывайки, чем двигатель.
                                    0
                                    Это скорее наоборот. Полноценный (пока что не очень) Linux, у которого под капотом ядро Windows.

                                    И да, Linux ядра в WSL нет — только слой эмуляции системных вызовов (типа Wine в обратную сторону).
                                  0

                                  А visual studio там уже работает?

                                    +1

                                    До vs2010 включительно

                                      +1

                                      И как, нормально работает? Отладчик тоже? Имеет смысл ставить или нет?

                                        0
                                        Для чего-то кроме открытия старых проектов для дотнет-based языков нет. vc++ более менее в рамках открой собери и не трогай сложные визарды работает в vs2008/vs 2010 express. Расширения практически не работают.
                                      0
                                      А можно узнать, если проблема только в отладчике, чем вам visual studio code не угодил?
                                        +1

                                        Тем что это совершенно другая программа, да еще и написанная на js.
                                        Под linux я пользуюсь qt creator, в принципе всем устраивает, очень быстрая нааигация по коду, и вообще быстро работает. Но отладчик по сравнению с VS все же неудобен. Ну и в целом интерфейс местами нестандартный и ненастраиваемый (нет докинга и табов), что порой раздражает.

                                      +1
                                      может кто пробовал, современный Adobe Lightroom (5.6+) там работает?
                                        0
                                        Ч баальшим бубном и не весь.
                                          0
                                          Не софтосрача ради, а просто совет. Есть офигенный и ультра-мощный Rawtherapee с нативной поддержкой линупса.
                                            0
                                            я уже перешёл на связку digikam+rawtherapee,
                                            но есть семилетний фотоархив с винды и мака, я затрахался через VirtualBox «экспортировать» это)
                                            молодой был, глупый, всё в коллекциях Лайтрума организовывал, а не в папках :(
                                              +1
                                              Тоже не срача ради, а почему именно Rawtherapee, а не darktable?
                                              Просто по советам занакомых сразу взял darktable, а Rawtherapee даже не смотрел.
                                                0
                                                Честно, просто раньше попробовал и она все потребности закрыла настолько что даже не изучал конкурентов. Вот просмотрщика толкового нет, XNview если допилить напильником то можно пользоваться, но интерфейс у него устарел безнадёжно.
                                                0
                                                Меня чуть опередили с Darktable. Еще пару лет назад он был жутко не стабильным, но сейчас падения встречаются крайне редко. А еще задействовали GPU.
                                                  0
                                                  Лайтрум это же не только raw конвертр, это полноценное workflow-решение по обработке фотографий. Что Darktable, что Rawtherapee — совершенно никудышные в вопросах каталогизиции… к моему большому сожалению.
                                                    0
                                                    для организации фото есть digiKam
                                                      0
                                                      Я в курсе. Но в результате получается лоскутное одеяло, вместо полноценного решения.
                                                      0
                                                      А Lightroom не загибается от терабайта фоток?
                                                        0
                                                        Не знаю. Пишут что, вроде как, нет. У меня всего 350Гб, но и железо довольно древнее. Так что я склонен верить тому, что и с терабайтом лайтрум должен справиться на нормальном железе.
                                                  0
                                                  интересно, загрузчик близарда будет теперь работать из-под новой версии…
                                                    0
                                                    Он и в старой версии стартовал и корректно отрабатывал. По крайней мере WoW я запускал. Был только косяк с раскладкой клавиатуры (если бег персонажа был на W, то при переключении раскладки при нажатии на Ц ничего не происходило).
                                                      0

                                                      Такой же баг и на маке с родным клиентом Вова.

                                                      0
                                                      Он и раньше чудесно работал. Только на встроенном видео Intel были проблемы, но решаемо тоже.
                                                      0
                                                      А старкрафт ремастеред?
                                                      0
                                                      Жаль что иногда всякие защиты считают Wine виртуальной машинкой и типа до свидания :(
                                                        +1
                                                        Класс. Как раз собирался на линукс перейти, а тут такой подгон)
                                                          0
                                                          А меня как раз win10 одолела)
                                                          +1
                                                          как же мне эти пол года не хватало репозеториев, няшного интерфейса kde и отсутствыя страха при скачивании торрентов, пойду ставить арч, надеюсь новые фотошопы и иллютраторы работают стабильно
                                                            0
                                                            Dota2 запустилась вообще без проблем.
                                                              0
                                                              Так она нативно работает на линуксе, вайн ей не нужен.
                                                                0
                                                                Только 64 битная версия
                                                              0
                                                              У меня на Ubuntu 17.10 установщик потребовал удалить LibreoFfice, Firefox, VirtualBox и ещё много софта, winehq поюзать не удалось(
                                                                +1
                                                                прямо даже интересно из-за каких библиотек у wine в ubuntu такие конфликты?
                                                                  –2
                                                                  Так удалили бы! И поставили уже под wine…

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

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