Стабільны рэліз 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

Дадаць каментар