Пасля года распрацоўкі і 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.
- Графічныя драйверы (winex11.drv, winemac.drv, wineandroid.drv) пераўтвораны для выканання на Unix-узроўні сістэмных выклікаў і звароты да драйвераў праз бібліятэку Win32u.
- Рэалізавана архітэктура апрацоўшчыкаў вываду на друк (Print Processor), якая ўжываецца для выключэння ў драйверы друкаркі прамых выклікаў паміж узроўнямі PE і Unix.
- У API Direct2D рэалізавана падтрымка эфектаў.
- У API Direct2D дададзена магчымасць запісу і прайграванні спісаў каманд.
- У драйверы для графічнага API Vulkan дададзена падтрымка спецыфікацыі Vulkan 1.3.237 (у Wine 7 падтрымліваўся Vulkan 1.2).
- У канфігурацыі па змаўчанні прыменена светлая тэма афармлення ("Light"). Змяніць тэму можна пры дапамозе ўтыліты WineCfg.
- 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