На Хабре незамеченным прошел выход 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
.
Использованные материалы
Комментарии (63)
mephist
07.02.2018 00:28> Трудно найти другой проект с открытыми исходниками, пожалуй кроме самого ядра, который настолько много значит для пользователей Linux, MacOS, FreeBSD и других POSIX-совместимых ОС. Каждый успех разработчиков Wine знаменует множество новых игр и приложений, которые будут теперь доступны для пользователей Linux.
Как много сказано в этих строкахDisplacer
07.02.2018 20:35Если говорить об играх, то большую роль играет в этом плане Steam. Wine конечно хорошо, когда нет альтернатив, но лучше родные приложения.
khim
07.02.2018 21:22В Steam внушительный процент «родных приложений» — версии, полученные путём прикручивания конкретной версии Wine к Windows-приложению.
Это, кстати говоря, один из самых «правильных» способов использования в Wine: никакие косяки эмуляции не будут проблемой, если сам разработчик запускает программу под Wine и может «проблемные» места просто переписать…
igor_suhorukov
07.02.2018 01:05Удивительно, что проект до сих пор так быстро развивается. Игры, редакторы и CAD почти все работают через Win API. Интересно как проекты обмениваются патчами с ReactOS…
mihmig
07.02.2018 11:06+1Мечты о Reactos разбились о печальные факты:
1. FAT32 в 2018 году?
2. Не подхватился стандартный realtek-овский драйвер старенькой сетевой карты, увы.Jeditobe
07.02.2018 15:26-31. А что такого в FAT в 2018 году? Разве ее запретили каким-то новым законом, и теперь каждому юзеру нужно посылать SMS для оплаты штрафа за ее использование?
ReactOS пока что можно установить только на FAT32, но читать и записывать можно на разделах с NTFS (только чтение), BTRFS, EXT2\3\4, UFS, UDFS, ReiserFS, NFS 4.1
2. Список протестированных сетевых адаптеров. Мне кажется, что ReactOS тут не виноват. Вы читали мануал перед установкой?ZimM
07.02.2018 17:37+11. Как насчет того, что FAT32 — это архаичная ФС с кучей ограничений, которую сегодня никто не использует? Ладно еще флешки всякие, но в 2018 году ставить ОС на ФАТ32-раздел — сюр, как по мне.
2. Хм. Поправьте, если я ошибаюсь, но разве РеактОС не декларирует работу с самыми обычными виндовыми дровами? Если так, то невозможность это делать — вино РеактОС.
id_potassium_chloride
07.02.2018 01:58Сколько обновлений выходит, а поддержку MS HTML Application так и не реализуют. «Mshta.exe is a stub!»
vesper-bot
07.02.2018 10:39Имхо этот рудимент пора уже вырезАть из самих виндов, он ЕМНИП с 95х там сидит. Вот только на нем оказалось столько всего завязано… может, поэтому и у вайновцев с ним косяк, подступиться не могут.
sumanai
07.02.2018 10:44Вот только на нем оказалось столько всего завязано
Заблочил его у себя на XP, вроде всё нормально.vesper-bot
07.02.2018 12:01У меня на десятке оутлук-2016 перестал отображать «главную страницу», если нажать на корень ящика, там в норме пишется краткая инфа о входящих, задачах итп. Точнее, стал просто вешаться. Пока в свойствах не отключил «Показывать по умолчанию домашнюю страницу», так и вешался. Возможно даже, что полетело автообновление Windows из-за его удаления (я его во всех каталогах переименовал в *.ex_). Мне правда некогда особо копаться в поисках точных последствий, но сам факт того, что отвалилось что-то в прикладном софте, всерьез настораживает.
tigrish
07.02.2018 14:07Заблочил его у себя на XP, вроде всё нормально.
Не думали выйти из леса? на дворе 2k18 )sumanai
07.02.2018 14:10Где такой лес, где водятся компьютеры с 24ГБ оперативы и 64 битными ОС, последним нормальным Firefox и прочим нужным софтом? Хороший у меня лес в общем, ещё лет 5 там посижу, а дальше жизни нет, ибо ни одна новая ОС не радует глаз.
mihmig
07.02.2018 11:04Может просто сообществу пользователей это не нужно? Насколько большая кодовая база на VBS/WSH у Вас?
khim
07.02.2018 14:01Не настолько большая, чтобы оправдать его поддержку. В Windows mshta.exe — это просто тоненькая прослойка, вызывающая Internet Explorer. Если Internet Explorer у вас есть, то создать её — несколько дней работы… а вот если его нет — то вам нужно его замену создать. Это — задачка примерно такой же сложности как всё остальное, что сделано в рамках WINE.
Для того, чтобы оправдать такие трудозатраты — достаточного количества приложений нету…vesper-bot
07.02.2018 16:18Может, в вайновом mshta имеет смысл вызывать файрфокс вместо IE?
khim
07.02.2018 16:55+1Так он там не просто вызывается! Оттуда через COM можно кучу интерфейсов вытащить! Я, правда, не знаю, какая часть из них нужна для MS HTML Application, может быть что-то совсем небольшое нужно.
Файрфокс вызвать не получится (когда-то давно он предоставлял интерфейсы для встраивания, но потом их «отпилили»), можно с CEF попробовать…a1ien_n3t
07.02.2018 23:00Может просто webkit взять?
khim
08.02.2018 01:07Можно и webkit. Но в любом случае потребуется потом напильник нечеловеческих размеров: приложения-то рассчитаны чёртно на Internet Explorer! И активно используют все его фишки!
Добиться совместимости настолько сложно, что даже Microsoft забил: при наличии в Windows 10 Edge… Internet Explorer — тоже есть… в частности для mshta…
klirichek
07.02.2018 03:55Выделение областей памяти "сколь угодно больного размера" порадовало :). Опечатка очевидная, но весьма улыбающая (я бы из-за этого даже не стал бы исправлять!)
eugenyh
07.02.2018 05:30А как дела с поддержкой USB?
Kobalt_x
07.02.2018 07:41+1А каким боком тут wine? Это ОС должна его поддерживать а wine и так пробрасывает все что примонтировано
monah_tuk
08.02.2018 07:27USB — это не только флешки. Например какой-нить проприетарный программатор, который фигачит vendor-specific запросы через winusb или rawhid.
Kobalt_x
09.02.2018 13:09так программаторы обычно через виртуальный COM работают, который wineом точно также пробрасывается. WinUSB в wine нет.(есть только стабы)
ntfshard
07.02.2018 07:23Функции криптографического хеширования реализованы собственными силами, вместо использования GNU TLS.
И тут моя вера в человечность полностью пропалаKobalt_x
07.02.2018 08:11Там это только в legacy cryptoapi в rsaenh самописный AES. В cryptoapi ng там через gnutls и хэши и aes
FluD
07.02.2018 07:23может снова попробовать собрать свою глупую мечту, (полноценный) Windows у которого под капотом ядро линукс
gasizdat
07.02.2018 08:51Windows 10. Правда, ядро Linux у нее под капотом это скорее бачок для омывайки, чем двигатель.
F0iL
07.02.2018 11:25Это скорее наоборот. Полноценный (пока что не очень) Linux, у которого под капотом ядро Windows.
И да, Linux ядра в WSL нет — только слой эмуляции системных вызовов (типа Wine в обратную сторону).
NeoCode
07.02.2018 07:52А visual studio там уже работает?
Kobalt_x
07.02.2018 08:16До vs2010 включительно
NeoCode
07.02.2018 12:35И как, нормально работает? Отладчик тоже? Имеет смысл ставить или нет?
Kobalt_x
07.02.2018 22:23Для чего-то кроме открытия старых проектов для дотнет-based языков нет. vc++ более менее в рамках открой собери и не трогай сложные визарды работает в vs2008/vs 2010 express. Расширения практически не работают.
AbstractGaze
07.02.2018 13:23А можно узнать, если проблема только в отладчике, чем вам visual studio code не угодил?
NeoCode
07.02.2018 13:31Тем что это совершенно другая программа, да еще и написанная на js.
Под linux я пользуюсь qt creator, в принципе всем устраивает, очень быстрая нааигация по коду, и вообще быстро работает. Но отладчик по сравнению с VS все же неудобен. Ну и в целом интерфейс местами нестандартный и ненастраиваемый (нет докинга и табов), что порой раздражает.
green_tree
07.02.2018 11:33может кто пробовал, современный Adobe Lightroom (5.6+) там работает?
engine9
07.02.2018 17:39Не софтосрача ради, а просто совет. Есть офигенный и ультра-мощный Rawtherapee с нативной поддержкой линупса.
green_tree
07.02.2018 17:43-1я уже перешёл на связку digikam+rawtherapee,
но есть семилетний фотоархив с винды и мака, я затрахался через VirtualBox «экспортировать» это)
молодой был, глупый, всё в коллекциях Лайтрума организовывал, а не в папках :(
a1ien_n3t
07.02.2018 23:04Тоже не срача ради, а почему именно Rawtherapee, а не darktable?
Просто по советам занакомых сразу взял darktable, а Rawtherapee даже не смотрел.engine9
07.02.2018 23:23Честно, просто раньше попробовал и она все потребности закрыла настолько что даже не изучал конкурентов. Вот просмотрщика толкового нет, XNview если допилить напильником то можно пользоваться, но интерфейс у него устарел безнадёжно.
megahertz
07.02.2018 23:05Меня чуть опередили с Darktable. Еще пару лет назад он был жутко не стабильным, но сейчас падения встречаются крайне редко. А еще задействовали GPU.
Loki3000
08.02.2018 23:05Лайтрум это же не только raw конвертр, это полноценное workflow-решение по обработке фотографий. Что Darktable, что Rawtherapee — совершенно никудышные в вопросах каталогизиции… к моему большому сожалению.
silv_shpak
07.02.2018 11:44интересно, загрузчик близарда будет теперь работать из-под новой версии…
F1RST
07.02.2018 12:32Он и в старой версии стартовал и корректно отрабатывал. По крайней мере WoW я запускал. Был только косяк с раскладкой клавиатуры (если бег персонажа был на W, то при переключении раскладки при нажатии на Ц ничего не происходило).
zlsl
07.02.2018 12:36Он и раньше чудесно работал. Только на встроенном видео Intel были проблемы, но решаемо тоже.
bestxp
07.02.2018 14:15Жаль что иногда всякие защиты считают Wine виртуальной машинкой и типа до свидания :(
minz
07.02.2018 16:29+1как же мне эти пол года не хватало репозеториев, няшного интерфейса kde и отсутствыя страха при скачивании торрентов, пойду ставить арч, надеюсь новые фотошопы и иллютраторы работают стабильно
firk
И эти туда же...