fbpx
20.8 C
София

Излезе Wine 7.0: нововъведения и промени

Най-четени

Даниел Десподов
Даниел Десподовhttps://www.kaldata.com/
Ежедневен автор на новини. Увличам се от съвременни технологии, оръжие, информационна безопасност, спорт, наука и концепцията Internet of Things.

След една година разработване и цели 30 експериментални версии бе представена финалната версия на отворената реализация на Win32 API – Wine 7.0, в която са направени над 9100 промени. Сред ключовите особености на новата версия са прехвърлянето на повечето Wine модули в PE формат, поддръжката на теми, разширяване на стека за джойстици и входни устройства с HID интерфейс, внедряване на архитектурата WoW64 за стартиране на 32-битови програми в 64-битова среда и други.

За Wine 7.0 е потвърдена пълноценната работа на 5156 (5049 преди година) програми за Windows, други 4312 (4227 преди година) програми работят добре с допълнителни настройки и външни DLL библиотеки. Още 3813 програми (преди година те бяха 3703) имат дребни проблеми, които не пречат на използването на основните функции на приложенията.

Основни нововъведения и особености на Wine 7.0

Модули с PE формат

  • Почти всички DLL библиотеки са преобразувани да използват изпълнимия файлов формат PE (Portable Executable) вместо ELF. Използването на PE решава проблемите с поддръжката на различни методи за защита от копиране, които проверяват идентичността на системните модули на диска и в паметта.
  • Реализирана е възможността PE модулите да взаимодействат с Unix библиотеките, използвайки стандартното системно извикване на ядрото на NT, което прави възможно скриването на достъпа до Unix кода от страна на Windows дебъгерите и наблюдение на регистрацията на нишките.
  • Вградените DLL файлове вече се зареждат само ако има съответен PE файл на диска, независимо дали е истинска библиотека или малък фрагмент с код. Тази промяна позволява на приложението винаги да осъществява правилното свързване към PE файлове. Може да се  използва променливата на средата WINEBOOTSTRAPMODE, за деактивирането това поведение.
WoW64

  • Реализирана е архитектурата WoW64 (64-битови Windows-on-Windows), която позволява стартиране на 32-битови Windows приложения в 64-битови Unix процеси. Поддръжката се осъществява чрез програмен слой, който транслира 32-битовите NT системни извиквания в 64-битови извиквания към NTDLL.
  • Съответните софтуерни слоевете на WoW64 са подготвени за повечето Unix библиотеки и дават възможност на 32-битовите PE изпълними модули да имат достъп до 64-битовите Unix библиотеки. След като преобразуването на всички модули във формат PE приключи, ще бъде възможно стартирането на 32-битови Windows приложения без да се налага инсталиране и използване на 32-битови Unix библиотеки.
Най-после теми

  • Реализирана е поддръжка за теми. Wine 7 включва скиновете „Light“, „Blue“ и „Classic Blue“, които могат да бъдат избрани чрез конфигуратора WineCfg.
  • Добавена е възможност за персонализиране на външния вид на всички интерфейсни контроли чрез темите. Осигурено е автоматичното актуализиране на изгледа на елементите след смяна на темата.
  • Поддръжката на теми е добавена и работи за всички вградени Wine приложения. Самите приложенията са адаптирани за дисплеите с висока плътност на пикселите (High DPI).
Графичната подсистема

  • Добавена е новата програмна библиотека Win32u, която включва части от библиотеките GDI32 и USER32, които се използват за обработка на графики и управление на програмните прозорци на ниво ядро. В бъдеще ще започне работата по пренасянето на някои компоненти на драйвери като например winex11.drv и winemac.drv към Win32u.
  • В драйвера Vulkan е реализирана поддръжка на спецификацията на API Vulkan graphics 1.2.201.
  • Осигурена е поддръжката на извеждането чрез API Direct2D на защриховани геометрични обекти, с възможност за проверка на попадение при клик (hit-test).
  • В Direct2D API е реализирана първоначалната поддръжка на на визуални ефекти, прилагани с използването на ID2D1Effect интерфейса.
  • В API Direct2D е добавена поддръжката на интерфейса ID2D1MultiThread, който се използва за организиране на ексклузивен достъп до ресурсите в многонишковите приложения.
  • Наборът от библиотеки WindowsCodecs вече поддържа WMP (Windows Media Photo) декодиране на изображенията и DDS (DirectDraw Surface) кодиране на изображения. Прекратена е поддръжка за кодиранете на изображения във ICNS (за macOS) формат, който не се поддържа в ОС Windows.
Direct3D

  • Значително е подобрен новият енджин за рендиране, който прехвърля извикванията на Direct3D към графичния API на Vulkan. В повечето ситуации нивото на поддръжка на Direct3D 10 и 11 в базирания на Vulkan енджин е достигнал паритет със стария базиран на OpenGL енджин. За включването на механизма за изобразяване чрез Vulkan, е необходимо на системната променлива да се зададе значението променливата на  Direct3D регистъра от „renderer“ на „vulkan“.
  • Реализирани са много функции на Direct3D 10 и 11, включително отложени контексти (Deferred Contexts), работещи в контекста на устройствата обекти на състоянието, постоянни отмествания в буферите, почистване на неподредените представяния на текстурите, копиране на данни между ресурси в нетипизирани формати (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32P32B3) и т.н.
  • Добавена е поддръжка на конфигурации с няколко монитора, което дава възможност за избор на монитор за показване на съответното Direct3D приложение в режим на цял екран.
  • В DXGI API е реализирана възможност за  корекция на гамата на екрана, която може да се използва от приложения, базирани на Direct3D 10 и 11, за промяна на яркостта на екрана. Осигурено е извличането и показването на броячи на виртуалните фреймбуфери (SwapChain).
  • В Direct3D 12 е добавена поддръжката на текстурите версия 1.1
  • При рендирането с помощта на API Vulkan е увеличена ефективността на обработка на запитванията при наличие на поддръжката в компютърната система на разширението VK_EXT_host_query_reset.
  • Добавена е възможност за показване на виртуалните фреймбуфери (SwapChain) чрез GDI, ако OpenGL и/или Vulkan не могат да се използват например, за тяхното извеждане в програмен прозорец, базиран на фреймуърка CEF (Chromium Embedded Framework).
  • При използването на GLSL бекенда за извеждане на шейдърни инструкции е осигурено използването на модификатора precise.
  • В API DirectDraw е добавено 3D рендирането в системната памет
  • В Wine 7.0 за Direct3D са добавени и графичните карти MD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 и NVIDIA GT 1030.
  • От системния регистър HKEY_CURRENT_USER\Software\Wine\Direct3D е премахнат ключа UseGLSL, вместо който вече трябва да се използва hader_backend
  • За поддръжката на Direct3D 12 вече необходима програмната библиотека vkd3d версия минимум 1.2
D3DX

  • В реализацията на D3DX 10 е подобрена поддръжката на фреймуърка за визуални ефекти и е добавена поддръжката на графичния формат Windows Media Photo (JPEG XR).
  • Добавени са предоставените в D3DX10 функции за създаване на текстури, включително D3DX10CreateTextureFromMemory().
  • Частично са реализирани програмните интерфейси ID3DX10Sprite и ID3DX10Font.

Звук и видео

  • В единния общ бекенд WineGStreamer са обединени GStreamer-настройките за DirectShow и за фреймуърка Media Foundation, което опростява разработването на нови API за декодиране на съдържание.
  • На базата на бекенда WineGStreamer са реализирани модулите на Windows Media за синхронна и асинхронна работа.
  • Почти е приключена работата върху фреймуърка Media Foundation, добавена е поддръжката на функцията IMFPMediaPlayer, подобрена е поддръжката на EVR и на буферите SAR.
  • Премахната е програмната библиотека wineqtdecoder, която включваше декодера за QuickTime формата. Сега всички кодери използват GStreamer. 
Входните устройства

  • Значително е подобрен стекът на входните устройства поддържащи протокола HID (Human Interface Devices). Сега са реализирани редица нови възможности като например разбор на HD дескрипторите, обработване на HID и предоставянето на мини-HID драйвери.
  • В драйвера winebus.sys е подобрено транслирането на описанието на устройствата в HID съобщенията
  • Добавен е новият бекенд DirectInput за джойстици, поддържащи HID протокола. Реализирана е възможността за използването на обратната връзка при джойстиците. Премахнат е стария драйвер за джойстици winejoystick.drv.
  • В модула DInput са добавени нови тестове, базирани на използването на виртуални HID устройства, при които не се изисква наличието на физическо HID устройства.
Ядрото

  •  
  • При стартирането на непознат файл в средата на Wine 7 (например wine foo.msi) сега се извиква start.exe, който обработва съответния тип файл.
  • Добавена е поддръжката на механизмите за синхронизация NtAlertThreadByThreadId и NtWaitForAlertByThreadId, които са много близки до мютексите в Linux.
  • Добавени са NT дебъгери, които могат да се използват за настройка на ядрото
  • Добавена е поддръжката на динамични ключове в системния регистър.
Мрежови възможности

  • Подобрен е режимът на съвместимост с Internet Explorer 11 (IE11), който вече се използва по подразбиране за обработването на HTML документите.
  • В библиотеката mshtml е реализиран JavaScript режима ES6 (ECMAScript 2015)
  • Добавена е поддръжката на DTLS протокола
  • Реализирана е NSI (Network Store Interface) услугата, подаваща иннформация за маршрутизирането и мрежовите интерфейси на компютъра.
  • В работния каталог на Wine сега са поставени собствени файлове с мрежовите бази данни, като например /etc/protocols и /etc/networks и сега не се налага по-бавното използване на аналогичните Unix бази данни
Алтернативни операционни системи
  • Добавена е поддръжката на устройствата на Apple, базирани на ARM системите върху чипа M1 (Apple Silicon).
  • За поддръжката на функциите BCrypt и Secur32  за macOS ос платформата сега се налага инсталирането на програмната библиотека GnuTLS.
  • 32-битовите файлове за ARM платформите сега се компилират в режима Thumb-2, по аналогия с Windows. За зареждането на тези файлове се използва preloader
  • За FreeBSD е увеличен броят на запитванията на информация за системата от съвсем ниско ниво. Това е информация за състоянието на паметта, за нивото на заряд на акумулаторната батерия и други подобни.
Вградени приложения и софтуерни инструменти за разработчиците
  • В помощната програма reg.exe е добавена поддръжката както на 32, така и на 64-битови значения на системния регистър.
  • В програмата WineDump е добавена поддръжката на метаданните на Windows и сега се показва детайлна информация за CodeView записите.
  • В дебъгера Wine Debugger (winedbg) е реализирана възможността за настройка на 32-битови процеси в 64-битовия дебъгер.
  • В компилатора IDL (widl) е добавена възможността за зареждане на библиотеките, интегрирани в РЕ файловете, осигурена е поддръжката на специфичните за WinRT атрибути и конструкции.
Други
  • Имената на всички типови директории в потребителската среда (Windows Shell) вече използват схемата, която бе въведа в операционната система Windows Vista. Сега всместо директорията My Documents се създава, а данните се съхраняват в директорията AppData
  • В софтуерния слой за OpenCL библиотеката е добавена поддръжката на OpenCL 1.2 спецификацията.
  •  В драйвера WinSpool е добавена поддръжката на различни размери на страниците при тяхното извеждане на печат
  • Добавена е началната поддръжка на MSDASQL, провайдъра на Microsoft OLE DB за ODBC драйверите
  • Енджинът Wine Mono с реализацията на .NET е обновен до версия 7.0.0.
  • Unicode данните са обновени до спецификацията Unicode 14
  • В директорията със сорс кодовете са вградени програмните библиотеки Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt и Zlib, кото се използват в РЕ формата.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook или изтеглете приложението на Kaldata.com за Android, iOS и Huawei!

Абонирай се
Извести ме за
guest
2 Коментара
стари
нови
Отзиви
Всички коментари

Нови ревюта

Подобни новини