Wine 3.0 и много плюшек
На Хабре незамеченным прошел выход 3-й версии Wine — открытой реализацией Win32 API
. Трудно найти другой проект с открытыми исходниками, пожалуй кроме самого ядра, который настолько много значит для пользователей Linux, MacOS, FreeBSD и других POSIX-совместимых ОС. Каждый успех разработчиков Wine знаменует множество новых игр и приложений, которые будут теперь доступны для пользователей Linux.
В этом плане 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.
Ядро
- По умолчания программа использует 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
.
Использованные материалы
- Стабильный релиз Wine 3.0
- WineHQ — Wine Announcement — The Wine team is proud to announce that the stable release Wine 3.0
- Релиз Wine 3.1
- Wine 3.0 Development by numbers