Стабільний реліз Wine 10.0

Після року розробки та 29 експериментальних версій представлений стабільний реліз відкритої реалізації Win32 API - Wine 10.0, який увібрав у себе понад 6000 змін. З ключових досягнень у новій версії виділяється повна підтримка архітектури ARM64EC, масштабування на екранах з високою щільністю пікселів, включення за замовчуванням драйвера Wayland, реалізація панелей для налаштування екрана та джойстика, альтернативний мультимедійний бекенд на базі FFmpeg, драйвер Bluetooth, драйвер Bluetooth, драйвер Bluetooth, драйвер Bluetooth, драйвер Bluetooth. перемикання відеорежимів.

У Wine підтверджено повноцінну роботу 5372 програм для Windows (рік тому 5336, два роки тому 5266, три роки тому 5156), ще 4435 програм (рік тому 4397, два роки тому 4370, три роки тому 4312) чудово працюють при додаткових налаштуваннях та зовнішніх DLL. У 4020 програм (рік тому 3943, два роки тому 3888, три роки тому 3813) спостерігаються невеликі проблеми в роботі, які не заважають використанню основних функцій додатків.

Ключові нововведення Wine 10.0:

  • ARM64
    • Забезпечено повну підтримку архітектури ARM64EC (ARM64 Emulation Compatible), рівень підтримки у Wine якої досяг паритету з архітектурою ARM64. Архітектура ARM64EC розроблена для спрощення портування на системи ARM64 додатків, що спочатку були написані для систем x86_64, і дозволяє виконувати в оточенні ARM64 окремі модулі з кодом x86_64 за допомогою емулятора.
    • Реалізована повна підтримка формату PE-файлів ARM64X, який дозволяє поєднувати в одному файлі, що виконується, код для архітектур ARM64EC і ARM64. Для складання Wine у ​​форматі ARM64X необхідно встановити LLVM з Git (необхідна функціональність увійде до складу релізу LLVM 20) і при запуску скрипта «configure» вказати опцію «enable-archs=arm64ec,aarch64».
    • Реалізовано інтерфейс для емуляції 64-розрядних систем x86. При використанні ARM64EC сам Wine виконується так, а емуляція застосовується тільки для коду додатків x86-64. Бібліотека з емулятором поки не включена до основного складу Wine, але для запуску коду x86-64 в оточенні ARM64 можна використовувати зовнішній емулятор FEX, зібраний за допомогою ARM64EC.
    • Для підтримки ARM64 необхідно використання в системі сторінок пам'яті розміром 4КБ, як цього вимагає ABI Windows (запуск в оточеннях з ядрами Linux, що використовують сторінки пам'яті 16K або 64K поки не підтримується).
  • графічна підсистема
    • Реалізовано більш точне масштабування на екранах із високою щільністю пікселів (High-DPI). Забезпечена підтримка режиму DPI Awareness для організації відображення програм на екранах з високою щільністю пікселів, з урахуванням того підтримує програму адаптацію до зміни DPI чи ні (програми, які не враховують DPI, масштабуються автоматично). Додано опції для перевизначення підтримки High-DPI у прив'язці до окремих програм або префіксів Wine.
    • У драйвер для графічного API Vulkan додано підтримку специфікації Vulkan 1.4 (у Wine 9.0 підтримувався Vulkan 1.3.272). Додана підтримка розширень Vulkan для кодування та декодування відео.
    • При використанні бекенда X11 реалізовано можливість малювання дочірніх вікон Vulkan для додатків, що використовують подібні вікна для виведення 3D-контенту (раніше подібна можливість була доступна тільки для OpenGL).
    • До бібліотеки GdiPlus додано підтримку механізму зв'язування шрифтів («Font Linking»), що дозволяє при відображенні тексту задіяти кілька шрифтів, якщо відсутні шрифти окремо, що охоплюють всі символи, що зустрічаються в тексті.
  • Вейленд
    • У стандартній конфігурації активовано драйвер winewayland.drv, що дозволяє використовувати Wine в оточеннях на базі протоколу Wayland без застосування XWayland і компонентів X11. Wine запускає програми за замовчуванням на Wayland безпосередньо лише якщо XWayland недоступний, інакше запуск із використанням XWayland залишається пріоритетним. Для примусового включення Wayland можна використовувати змінну оточення DISPLAY, або додати ключ до реєстру, створивши файл file.reg: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics"="wayland" і застосувавши його командою: $ WINEPREFIX=/шлях/до/префіксу wine regedit /шлях/до/file.reg
    • До драйвера winewayland.drv додано підтримку OpenGL і піксельних буферів (pBuffer).
    • Вирішено проблеми з позиціонуванням спливаючих вікон у оточеннях на базі Wayland.
    • При використанні Wayland реалізовано підтримку автоповтору натискання при утриманні клавіш.
  • Інтеграція з робочим столом
    • Додано експериментальний механізм емуляції «modesetting», що дозволяє емулювати перемикання відеорежимів без фактичної зміни налаштувань екрану. Видимість зміни роздільної здатності екрана без перемикання відеорежиму створюється через розширення та масштабування вікон.
    • Додано новий аплет Desktop Control Panel (desk.cpl) з реалізацією інтерфейсу керування налаштуваннями дисплея (наприклад, можна змінювати віртуальну роздільну здатність десктопу або налаштовувати емульовані параметри дисплея).
    • Додана можливість скидання налаштувань екрана до значень за умовчанням у разі неможливості відновити стан після аварійного завершення процесу.
    • Додано підтримку відключення показу піктограм у системному лотку (в «HKLM\Software\Microsoft\"Windows\CurrentVersion\Policies\Explorer" слід вказати "NoTrayItemsDisplay=1").
    • Додано підтримку відключення оболонок (Shell launcher) в режимі робочого столу (в «HKLM Software Software MicrosoftWindows\CurrentVersion\Policies\Explorer" слід вказати "NoDesktop=1").
  • Direct3D
    • Для малювання з використанням OpenGL тепер потрібна підтримка GLSL 1.20, а також розширень EXT_framebuffer_object та ARB_texture_non_power_of_two. Підтримка старого бекенду ARB shader та налаштування OffscreenRenderingMode припинено.
    • Для Direct3D 9 і більш старих версій доданий графічний конвеєр фіксованих функцій (у старих Direct3D надавалися лише певні графічні операції, які не можна було змінювати), реалізований за допомогою мови шейдерів HLSL і дозволяє емулювати фіксовані функції при малюванні через API Vulkan або OpenGL.
    • При малюванні з використанням Vulkan задіяні Vulkan-розширення для динамічної зміни стану графічного конвеєра, що дозволяє скоротити підвисання в іграх.
    • Доданий альтернативний бекенд glsl-vkd3d для шейдерів GLSL, який використовує vkd3d-shader.
    • Надано початкову підтримку компіляції ефектів Direct3D, використовуючи vkd3d-shader.
    • У бібліотеці D3DX9 реалізовано можливість генерації MIP-текстур (MipMap) при завантаженні об'ємних текстур. Q64W48V8U8.
  • Звук та відео
    • Як альтернатива бекенду на базі GStreamer реалізовано новий мультимедійний бекенд, заснований на використанні FFmpeg і придатний для забезпечення роботи фреймворку Media Foundation. Для включення альтернативного бекенда в секції реєстру «HKCUSoftwareWine MediaFoundation» слід вказати DisableGstByteStreamHandler=1.
    • Поліпшено реалізацію API Media Foundation, яка тепер краще поєднується з додатками, що залежать від компонентів демультиплексування та декодування.
    • В API DirectMusic додано підтримку завантаження файлів MIDI.
  • Пристрої введення
    • Додана початкова версія драйвера Bluetooth.
    • Доданий аплет Joystick Control Panel (joy.cpl) з реалізацією налаштувань для джойстика.
    • Внесено покращення, пов'язані з пристроями керування покажчиком (тачпади, миші), що використовують протокол HID (Human Interface Device). Доданий драйвер mouhid.sys для пристроїв HID. Реалізовано коректний розбір складових пристроїв введення та забезпечено передачу інформації про них у Windows-програми, як про окремі пристрої.
    • Для бекенда X11 додано підтримку сенсорних екранів та реалізовано можливість використання режиму мультитач через обробку повідомлень WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE тощо).
    • Реалізовано розміщення деяких внутрішніх структур бібліотеки user32 в пам'яті, що розділяється, що підвищило продуктивність і знизило навантаження на Wine Server.
    • У winex11 додано підтримку обробки подій XInput2 у прив'язці до окремих вікон.
    • Реалізовано коректну підтримку клавіатур з розкладкою Dvorak.
  • Ядро (інтерфейси ядра Windows)
    • Додано підтримку підвищення привілеїв процесів (процесу, спочатку запущеному під звичайним користувачем, можуть бути надані привілеї адміністратора). При створенні серверних процесів (msi action server), а також процесів, що викликають функції RtlCreateUserProcess() і CreateProcessInternal(), за замовчуванням задіяний обмежений токен адміністратора.
    • При отриманні інформації про мітки дисків по можливості тепер використовується звернення до системних сервісів через DBus замість спроб прямого доступу до пристрою.
    • Односпрямований механізм міжпроцесної взаємодії (IPC) Mailslots тепер реалізований безпосередньо у Wine server, що дозволило досягти повної підтримки семантики Windows.
    • Реалізовано очікування подій послідовного порту асинхронному режимі.
    • Додано повну підтримку процесорних розширень XSTATE в контекстах потоку, що дозволило використовувати нові векторні розширення, такі як AVX-512.
  • Вбудовані програми
    • Переписано двигун обробки вхідних даних, який використовується в командному інтерпретаторі cmd.exe. У cmd.exe додано підтримку операцій «||» та «&&».
    • В утиліту findstr додана підтримка регулярних виразів та пошуку без урахування регістру символів.
    • В утиліти regsvr32 та rundll32 додано можливість реєстрації модулів ARM64EC.
    • Додані утиліти: sort для сортування вхідних даних, fc для порівняння файлів та where для пошуку файлів.
    • У додатку wmic реалізовано інтерактивний режим роботи.
    • У Explorer додано опціональну підтримку стартового меню та панелі інструментів. Забезпечено запуск explorer.exe з урізаними правами доступу.
  • Інструменти для розробки
    • У winebuild додано опцію "-marm64x" для генерації гібридних бібліотек ARM64X.
    • У winegcc додана опція "-marm64x", що забезпечує складання для ARM64X.
    • У файлах, що генеруються з використанням мови опису інтерфейсу IDL (Interface Definition Language), задіяні компоненти, що повністю підтримують виконання в інтерпретації.
    • У компілятор мови опису інтерфейсу IDL (Interface Definition Language) додано підтримку генерації бібліотек типів (TypeLib) у старому форматі (SLTG).
    • В утиліту winedump додана підтримка збереження дампів таблиць minidump, інформації про винятки C++ та ресурсів typelib.
  • Різне
    • Поліпшено підтримку протоколу обміну ключами Діффі-Хеллмана (DH). Додано можливість налаштування та отримання параметрів DH. Реалізовані обробники для створення пар із відкритого та закритого ключів.
    • Забезпечено використання додаткового заповнення OAEP (Optimal Asymmetric Encryption Padding) разом із алгоритмом RSA.
    • В API DirectPlay реалізовано підтримку мережевих сеансів.
    • Налагоджено обробку станів асинхронного введення/виводу при роботі в режимі WoW64 (64-bit Windows-на-Windows), що дозволяє виконувати 32-розрядні Windows-Додатки в 64-розрядних Unix-системах.
    • Додано підтримку завантаження ODBC-драйверів до СУБД, зібраних для Windows.
    • Для платформи ARM реалізовано повну підтримку RPC/COM, C++ RTTI (Run-Time Type Information) та винятків C++.
    • У C runtime в ANSI-функціях реалізовано підтримку кодування UTF-8.
    • Розширено можливості двигуна MSHTML. Додано підтримку прототипів та конструкторів об'єктів. У JavaScript-движок доданий новий інтерфейс зв'язування об'єктів для MSHTML. Вбудовані функції MSHTML перетворені на коректні об'єкти JavaScript. Покращено збирача сміття для JavaScript, який тепер охоплює всі контексти виконання скрипту в потоці. Додано підтримку JavaScript-об'єктів ArrayBuffer і DataView.
    • У систему безперервної інтеграції на базі Gitlab додано підтримку статичного аналізу з використанням Clang та звітів про проходження тестів JUnit.
    • До складу вбудовано бібліотеку Capstone 5.0.3, через яку реалізовано дизасемблювання у відладчику WineDb.
    • Оновлені до нових версій компоненти: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44. LibXml4.7.0 2, LibXslt 2.12.8 та Zlib 1.1.42.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster