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

Після року розробки та 28 експериментальних версій представлений стабільний реліз відкритої реалізації Win32 API - Wine 8.0, який увібрав у себе понад 8600 змін. Ключовим досягненням у новій версії відзначається завершення роботи з перекладу модулів Wine у ​​формат.

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

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

  • Модулі у форматі PE
    • Після чотирьох років роботи повністю завершено переведення всіх DLL-бібліотек на використання формату виконуваних файлів PE (Portable Executable, застосовується у Windows). Застосування PE дозволяє використовувати доступні для Windows налагоджувачі та вирішує проблеми з підтримкою різних схем захисту від копіювання, що здійснюють звіряння ідентичності системних модулів на диску та в пам'яті. Також вирішено проблеми з роботою 32-розрядних додатків на 64-розрядних хостах та x86-додатків на системах ARM. З завдань, які планують вирішити в наступних експериментальних випусках Wine 8.x, відзначається переклад модулів на інтерфейс системних викликів NT замість здійснення прямих викликів між рівнями PE і Unix.
    • Реалізовано спеціальний диспетчер системних викликів, який використовується для трансляції звернень з PE до Unix-бібліотеки з метою зниження накладних витрат під час повного системного виклику NT. Наприклад, виконана оптимізація дала можливість знизити падіння продуктивності під час використання бібліотек OpenGL і Vulkan.
    • У програмах Winelib збережено можливість використання змішаних збірок Windows/Unix бібліотек у форматі ELF (.dll.so), але подібні програми без 32-розрядних бібліотек не підтримуватимуть функціональність, доступну через інтерфейс системних викликів NT, таку як WoW64.
  • WoW64
    • Для всіх Unix-бібліотек надані прошарки WoW64 (64-bit Windows-on-Windows), що дозволяють 32-розрядним модулям у форматі PE звертатися до 64-розрядних Unix-бібліотеків, що після позбавлення від прямих викликів PE/Unix дасть можливість виконання 32- розрядних Windows-програм без встановлення 32-розрядних Unix-бібліотек.
    • За відсутності 32-розрядного завантажувача Wine забезпечено запуск 32-розрядних програм у новому експериментальному Windows-подібному режимі WoW64, в якому 32-розрядний код запускається всередині 64-розрядного процесу. Режим включається при складанні Wine з опцією '—enable-archs'.
  • графічна підсистема
    • У стандартній конфігурації застосована світла тема оформлення («Light»). Змінити тему можна за допомогою програми WineCfg.
      Стабільний реліз Wine 8.0
    • Графічні драйвери (winex11.drv, winemac.drv, wineandroid.drv) перетворені для виконання на Unix-рівні системних викликів та звернення до драйверів через бібліотеку Win32u.
      Стабільний реліз Wine 8.0
    • Реалізовано архітектуру обробників виведення на друк (Print Processor), що використовується для виключення в драйвері принтера прямих викликів між рівнями PE та Unix.
    • В API Direct2D реалізовано підтримку ефектів.
    • В API Direct2D додано можливість запису та відтворення списків команд.
    • У драйвері для графічного API Vulkan додано підтримку специфікації Vulkan 1.3.237 (у Wine 7 підтримувався Vulkan 1.2).
  • Direct3D
    • Додано новий компілятор шейдерів для мови HLSL (High-Level Shader Language), реалізований на базі бібліотеки vkd3d-shader. Також на базі vkd3d-shader підготовлені дизассемблер HLSL та препроцесор HLSL.
    • Реалізовано інтерфейс Thread Pump, що з'явився у D3DX 10.
    • У ефектах Direct3D 10 додано підтримку багатьох нових виразів.
    • У допоміжній бібліотеці для D3DX 9 реалізовано підтримку проекції текстур Cubemap.
  • Звук та відео
    • На базі фреймворку GStreamer реалізовано підтримку фільтрів для декодування звуку у форматі MPEG-1.
    • Доданий фільтр для читання потокового звуку та відео у форматі ASF (Advanced Systems Format).
    • Видалено проміжну бібліотеку-прошарку OpenAL32.dll, замість якої тепер використовується рідна Windows-бібліотека OpenAL32.dll, що поставляється з додатками.
    • Media Foundation Player покращує визначення типу вмісту.
    • Реалізовано можливість управління швидкістю передачі (Rate control).
    • Покращена підтримка мікшера та відмальовувача (presenter), які пропонуються за умовчанням в Enhanced Video Renderer (EVR).
    • Додано початкову реалізацію API Writer Encoding.
    • Поліпшено підтримку завантажувача топологій.
  • Пристрої введення
    • Значно покращено підтримку гарячого підключення контролерів.
    • Запропоновано покращену реалізацію коду для визначення ігрових кермів, побудовану на базі бібліотеки SDL.
    • Поліпшено підтримку ефекту вібровідгуку (Force feedback) при використанні ігрових кермів.
    • Реалізовано можливість керування лівим та правим вібромоторами, що використовують специфікацію HID Haptic.
    • Змінено оформленням панелі керування джойстиком.
    • Через використання бекенда hidraw забезпечена підтримка контролерів Sony DualShock та DualSense.
    • Запропоновано WinRT-модуль Windows.Gaming.Input з реалізацією програмного інтерфейсу для доступу до геймпадів, джойстиків та ігрових кермів. Для нового API серед іншого реалізована підтримка повідомлення про гаряче підключення пристроїв, тактильних та вібро ефектів.
  • Інтернаціоналізація
    • Забезпечено генерацію коректної БД локалів у форматі locale.nls з репозиторію Unicode CLDR (Unicode Common Locale Data Repository).
    • Функції порівняння рядків Unicode переведені використання БД і алгоритму Windows Sortkey замість алгоритму Unicode Collation, що наблизило поведінка до Windows.
    • У більшості функцій додано підтримку верхніх діапазонів кодів (площин) Unicode.
    • Надано можливість використання UTF-8 як ANSI-кодування.
    • Таблиці символів оновлено до специфікації Unicode 15.0.0.
  • Текст і шрифти
    • Для більшості системних шрифтів включено зв'язування шрифтів, що дозволило вирішити проблему з відсутністю гліфів на системах із китайськими, корейськими та японськими локалями.
    • Перероблений відкат на запасний шрифт у DirectWrite.
  • Ядро (інтерфейси ядра Windows)
    • Реалізована БД ApiSetSchema, яка замінила собою модулі api-ms-* та дозволила скоротити споживання диска та адресного простору.
    • Забезпечено збереження на диску файлових атрибутів DOS у сумісному із Samba форматі, використовуючи для цього розширені атрибути ФС.
  • Мережеві можливості
    • Додано підтримку протоколу OCSP (Online Certificate Status Protocol), який застосовується для перевірки відкликаних сертифікатів.
    • Розширено спектр можливостей EcmaScript, доступних у відповідності стандартам JavaScript.
    • Реалізовано збирач сміття для JavaScript.
    • У пакеті з двигуном Gecko включені кошти для людей з обмеженими можливостями.
    • У MSHTML додано підтримку API Web Storage, об'єкта Performance та додаткових об'єктів для обробки подій.
  • Вбудовані програми
    • Всі вбудовані програми переведені на використання бібліотеки Common Controls 6, з підтримкою тем оформлення та відтворення з урахуванням екранів високої щільністю пікселів.
    • Розширено можливості налагодження потоків у налагоджувачі Wine Debugger (winedbg).
    • В утилітах для роботи з реєстром (REGEDIT та REG) додано підтримку типу QWORD.
    • У Notepad додано рядок стану з інформацією про позицію курсора та функцію Goto Line для переходу на вказаний номер рядка
    • У вбудованій консолі забезпечено виведення даних у кодовій сторінці OEM.
    • В утиліту sc.exe (Service Control) додано команду 'query'.
  • Система складання
    • Надано можливість складання виконуваних файлів у форматі PE для декількох архітектур (наприклад, '—enable-archs=i386,x86_64').
    • На всіх платформах з 32-розрядним типом long типи даних, визначені в Windows як long, Wine тепер перевизначені як 'long' замість 'int'. У Winelib цю поведінку можна вимкнути через визначення WINE_NO_LONG_TYPES.
    • Додано можливість генерації бібліотек без використання dlltool (включається через завдання опції '—without-dlltool' у winebuild).
    • Для підвищення ефективності завантаження та зниження розміру бібліотек, що не містять коду та включають лише ресурси, у winegcc реалізована опція '—data-only'.
  • Різне
    • Оновлено версії вбудованих бібліотек Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXs1.1.37t.
    • Двигун Wine Mono з реалізацією платформи .NET оновлено до випуску 7.4.
    • Реалізовано підтримку шифрування на базі алгоритму RSA та цифрових підписів RSA-PSS.
    • Додана початкова версія API UI Automation.
    • У дерево вихідних текстів включені бібліотеки LDAP і vkd3d, які збираються у форматі PE, що позбавило необхідності поставки Unix-складання даних бібліотек.
    • Припинено використання бібліотеки OpenAL.

Джерело: opennet.ru

Додати коментар або відгук