Нашри устувори Wine 7.0

Пас аз як соли таҳия ва 30 версияи таҷрибавӣ, версияи устувори татбиқи кушодаи Win32 API пешниҳод карда шуд - Wine 7.0, ки беш аз 9100 тағиротро дар бар мегирад. Дастовардҳои асосии версияи нав тарҷумаи аксари модулҳои Wine ба формати PE, дастгирии мавзӯъҳо, васеъ кардани стек барои джойстикҳо ва дастгоҳҳои вуруд бо интерфейси HID ва татбиқи меъмории WoW64 барои иҷро кардани барномаҳои 32-бит дар Муҳити 64-бит.

Вайн кори пурраи 5156 (як сол пеш 5049) барномаро барои Windows тасдиқ кард, 4312 (як сол пеш 4227) барномаҳои дигар бо танзимоти иловагӣ ва DLL-ҳои беруна комилан кор мекунанд. 3813 барнома (3703 сол пеш) мушкилоти хурди амалиётӣ доранд, ки ба истифодаи вазифаҳои асосии барномаҳо халал намерасонанд.

Навовариҳои асосӣ дар Wine 7.0:

  • Модулҳо дар формати PE
    • Қариб ҳамаи DLL-ҳо ба ҷои формати файли иҷрошавандаи PE (Portable Executable, истифодашаванда дар Windows) ба ҷои ELF табдил дода шудаанд. Истифодаи PE мушкилотро бо дастгирии схемаҳои гуногуни муҳофизати нусхабардорӣ, ки шахсияти модулҳои системаро дар диск ва хотира тафтиш мекунанд, ҳал мекунад.
    • Имконияти мутақобилаи модулҳои PE бо китобхонаҳои Unix бо истифода аз занги стандартии системаи ядрои NT амалӣ карда шудааст, ки ба шумо имкон медиҳад, ки дастрасӣ ба коди Unix аз дебаггерҳои Windows пинҳон карда, сабти риштаро назорат кунед.
    • DLL-ҳои дарунсохт ҳоло танҳо дар сурате бор карда мешаванд, ки дар диск файли мувофиқи PE мавҷуд бошад, новобаста аз он ки он китобхонаи воқеӣ ё ноустувор аст. Ин тағирот ба барнома имкон медиҳад, ки пайвастагии дурустро ба файлҳои PE ҳамеша бубинад. Барои хомӯш кардани ин рафтор, шумо метавонед тағирёбандаи муҳити WINEBOOTSTRAPMODE-ро истифода баред.
  • Вой 64
    • Меъмории WoW64 (64-бит Windows-on-Windows) амалӣ карда шудааст, ки ба шумо имкон медиҳад барномаҳои 32-битии Windows-ро дар равандҳои 64-битии Unix иҷро кунед. Дастгирӣ тавассути пайвасти қабате амалӣ карда мешавад, ки зангҳои 32-битии системаи NT-ро ба зангҳои 64-битӣ ба NTDLL тарҷума мекунад.
    • Қабатҳои WoW64 барои аксари китобхонаҳои Unix омода карда шудаанд ва ба модулҳои 32-битаи PE имкон медиҳанд, ки ба китобхонаҳои 64-битаи Unix дастрасӣ пайдо кунанд. Вақте ки ҳамаи модулҳо ба формати PE табдил дода мешаванд, имкон пайдо мешавад, ки барномаҳои 32-битии Windows бе насб кардани китобхонаҳои 32-битаи Unix кор кунанд.
  • Мавзӯъҳо
    • Дастгирии мавзӯъ амалӣ карда шуд. Мавзӯъҳои тарроҳии "Нур", "Кабуд" ва "Классик Кабуд" дохил карда шудаанд, ки онҳоро тавассути конфигуратори WineCfg интихоб кардан мумкин аст.
    • Имконияти танзими намуди ҳама идоракунии интерфейс тавассути мавзӯъҳо илова карда шуд. Намуди зоҳирии элементҳо пас аз тағир додани мавзӯи тарроҳӣ ба таври худкор нав карда мешавад.
    • Дастгирии мавзӯъ ба ҳама замимаҳои дарунсохташудаи Wine илова карда шудааст. Барномаҳо ба экранҳои зичии пиксели баланд (High DPI) мутобиқ карда шудаанд.
  • Зерсистемаи графикӣ
    • Китобхонаи нави Win32u илова карда шуд, ки қисматҳои китобхонаҳои GDI32 ва USER32-ро дар бар мегирад, ки ба коркарди графикӣ ва идоракунии равзана дар сатҳи ядро ​​алоқаманданд. Дар оянда кор оид ба интиқоли ҷузъҳои драйвер ба монанди winex32.drv ва winemac.drv ба Win11u оғоз мешавад.
    • Драйвери Vulkan мушаххасоти API графикии Vulkan 1.2.201 -ро дастгирӣ мекунад.
    • Дастгирии баровардани объектҳои геометрии кандашуда тавассути API Direct2D бо қобилияти санҷидани он, ки клик зада мешавад (хит-тест).
    • Direct2D API дастгирии ибтидоиро барои эффектҳои визуалӣ бо истифода аз интерфейси ID2D1Effect таъмин мекунад.
    • Direct2D API барои интерфейси 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 амалӣ карда мешаванд, аз ҷумла Контекстҳои таъхирёфта, объектҳои ҳолати дар контексти дастгоҳ коркунанда, ҷубронҳои доимӣ дар буферҳо, тоза кардани намуди матни аз кор баромада, нусхабардории маълумот байни захираҳо дар форматҳои бенамуд (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_32TYPE32A32) ва ғ. .
    • Дастгирии иловашуда барои конфигуратсияҳои бисёр-монитор, ки ба шумо имкон медиҳад монитореро интихоб кунед, то барномаи 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) истифода мешаванд.
    • Ҳангоми истифодаи пуштибонии shader GLSL, тағирдиҳандаи "дақиқ" барои дастурҳои shader таъмин карда мешавад.
    • DirectDraw API дастгирии 3D-ро ба хотираи система бо истифода аз дастгоҳҳои нармафзор ба монанди "RGB", "MMX" ва "Ramp" илова мекунад.
    • Кортҳои AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 ва NVIDIA GT 630 ба махзани корти графикии Direct1030D илова карда шуданд.
    • Калиди "UseGLSL" аз феҳристи HKEY_CURRENT_USER\Software\Wine\Direct3D хориҷ карда шудааст, ки ба ҷои он аз Wine 5.0 сар карда, шумо бояд "shader_backend"-ро истифода баред.
    • Барои дастгирии Direct3D 12, ба шумо ҳоло ҳадди аққал версияи 3 китобхонаи vkd1.2d лозим аст.
  • D3DX
    • Амалисозии D3DX 10 дастгирии чаҳорчӯбаи эффектҳои визуалӣ ва дастгирии формати тасвири Windows Media Photo (JPEG XR) -ро такмил дод.
    • Функсияҳои эҷоди матн иловашуда дар D3DX10, ба монанди D3DX10CreateTextureFromMemory().
    • Интерфейси нармафзори ID3DX10Sprite ва ID3DX10Font қисман амалӣ карда шуданд.
  • Садо ва видео
    • Иловаҳои GStreamer барои DirectShow ва чаҳорчӯбаи Media Foundation дар як пуштибонии умумии WineGStreamer муттаҳид карда шудаанд, ки бояд таҳияи API-ҳои нави рамзкушоии мундариҷаро содда кунанд.
    • Дар асоси пуштибонии WineGStreamer, объектҳои Windows Media барои хониши синхронӣ ва асинхронӣ амалӣ карда мешаванд.
    • Татбиқи чаҳорчӯбаи Бунёди Медиа боз ҳам такмил дода шуд, дастгирии функсияҳои IMFPMediaPlayer ва тақсимкунандаи намуна илова карда шуд ва дастгирии буферҳои рендеринги EVR ва SAR беҳтар карда шуд.
    • Китобхонаи wineqtdecoder, ки декодерро барои формати QuickTime таъмин мекунад, нест карда шуд (ҳама кодекҳо ҳоло GStreamer-ро истифода мебаранд).
  • Дастгоҳҳои дохилӣ
    • Стек барои дастгоҳҳои воридотӣ, ки протоколи HID (Дастгоҳҳои Интерфейси инсонӣ) -ро дастгирӣ мекунанд, ба таври назаррас такмил дода шудааст, ки қобилиятҳоро ба монанди таҳлили дескрипторҳои HID, коркарди паёмҳои HID ва таъмини драйверҳои хурди HID таъмин мекунад.
    • Дар қафои драйвери winebus.sys тарҷумаи тавсифи дастгоҳ ба паёмҳои HID такмил дода шудааст.
    • Иловаи нави DirectInput барои джойстикҳо, ки протоколи HID-ро дастгирӣ мекунанд. Имконияти истифодаи эффектҳои бозгашт дар джойстикҳо амалӣ карда шудааст. Панели идоракунии джойстик такмилёфта. Муносибати оптимизатсияшуда бо дастгоҳҳои мувофиқи XInput. Дар WinMM, ба ҷои истифодаи пуштибонии evdev дар Linux ва IOHID дар macOS IOHID, дастгирии джойстик ба DInput интиқол дода шудааст. Ронандаи ҷойстики кӯҳнаи winejoystick.drv хориҷ карда шудааст.
    • Санҷишҳои нав ба модули DInput дар асоси истифодаи дастгоҳҳои виртуалии HID ва ба дастгоҳи ҷисмонӣ ниёз надоранд, илова карда шуданд.
  • Матн ва шрифтҳо
    • Объекти Set Font ба DirectWrite илова карда шуд.
    • RichEdit интерфейси TextHost-ро дуруст иҷро мекунад.
  • Ядро (интерфейсҳои ядрои Windows)
    • Ҳангоми иҷро кардани файли иҷрошавандаи номаълум (ба мисли 'wine foo.msi') дар Wine, ҳоло start.exe даъват мешавад, ки коркардкунандагони бо навъи файл алоқамандро даъват мекунад.
    • Дастгирии иловашуда барои механизмҳои ҳамоҳангсозии NtAlertThreadByThreadId ва NtWaitForAlertByThreadId, ки ба футексҳо дар Linux монанданд.
    • Дастгирии иловашуда барои объектҳои debug NT, ки барои ислоҳи функсияҳои ядро ​​истифода мешаванд.
    • Дастгирии иловашуда барои калидҳои феҳристи динамикӣ барои захира кардани маълумоти иҷроиш.
  • C Вақти иҷро
    • Вақти корӣ C маҷмӯи пурраи функсияҳои математикиро амалӣ мекунад, ки асосан аз китобхонаи Мусл интиқол дода мешаванд.
    • Ҳама платформаҳои CPU барои функсияҳои нуқтаи шинокунанда дастгирии дурустро таъмин мекунанд.
  • Имкониятҳои шабакавӣ
    • Ҳолати мукаммали мутобиқат барои Internet Explorer 11 (IE11), ки ҳоло бо нобаёнӣ барои коркарди ҳуҷҷатҳои HTML истифода мешавад.
    • Китобхонаи mshtml реҷаи ES6 JavaScript-ро (ECMAScript 2015) амалӣ мекунад, ки хусусиятҳоро ба монанди ифодаи литсензия ва объекти Map дастгирӣ мекунад.
    • Насб кардани бастаҳои MSI бо иловаҳо ба муҳаррики Gecko ба директорияи кории Wine ҳоло дар ҳолати зарурӣ анҷом дода мешавад, на ҳангоми навсозии Wine.
    • Дастгирии иловашуда барои протоколи DTLS.
    • Хизматрасонии NSI (Network Store Interface) амалӣ карда шудааст, ки маълумотро дар бораи масир ва интерфейсҳои шабакавӣ дар компютер ба хидматҳои дигар ҳифз ва интиқол медиҳад.
    • Дастгоҳҳои WinSock API ба монанди setsockopt ва getsockopt ба NTDLL ва драйвери afd.sys барои мувофиқат ба меъмории Windows интиқол дода шуданд.
    • Файлҳои махзани шабакавии худи Wine, ба монанди /etc/protocols ва /etc/networks, ҳоло дар директорияи кории Wine ба ҷои дастрасӣ ба пойгоҳи додаҳои шабеҳи Unix насб карда шудаанд.
  • Платформаҳои алтернативӣ
    • Дастгирии иловагӣ барои таҷҳизоти Apple дар асоси микросхемаҳои M1 ARM (Apple Silicon).
    • Дастгирии хусусиятҳои BCrypt ва Secur32 дар macOS ҳоло насби китобхонаи GnuTLS-ро талаб мекунад.
    • Барномаҳои иҷрошавандаи 32-бит барои платформаҳои ARM ҳоло дар ҳолати Thumb-2, ба монанди Windows сохта шудаанд. Барои бор кардани чунин файлҳо як боркунаки пешакӣ истифода мешавад.
    • Барои платформаҳои 32-битии ARM, дастгирии истисноҳои истисноӣ амалӣ карда шудааст.
    • Барои FreeBSD, шумораи дархостҳои дастгирӣшаванда барои маълумоти сатҳи пасти система, ба монанди ҳолати хотира ва сатҳи пуркунии батарея, васеъ карда шудааст.
  • Барномаҳои дарунсохт ва абзорҳои таҳия
    • Утилитаи reg.exe барои намоишҳои феҳристи 32 ва 64-бит дастгирӣ илова кардааст. Дастгирии иловашуда барои нусхабардории калидҳои сабти ном.
    • Утилити WineDump барои партофтани метамаълумоти Windows ва намоиши маълумоти муфассал дар бораи вурудоти CodeView дастгирии илова кардааст.
    • Debugger Wine (winedbg) қобилияти ислоҳи равандҳои 32-битро аз ислоҳкунандаи 64-битро таъмин мекунад.
    • Имконияти бор кардани китобхонаҳои дар файлҳои PE сохташуда ба компилятори IDL (widl) илова карда шуд, дастгирии атрибутҳо ва конструксияҳои WinRT хос таъмин карда шуд ва ҷустуҷӯи китобхонаи платформаи мушаххас амалӣ карда шуд.
  • Системаи маҷлис
    • Дар феҳристҳои мушаххаси меъморӣ, китобхонаҳо ҳоло бо номҳое захира карда мешаванд, ки меъморӣ ва намуди иҷрошавандаро инъикос мекунанд, ба монанди 'i386-windows' барои формати PE ва 'x86_64-unix' барои китобхонаҳои unix, ки барои дастгирии меъмории гуногун дар як Шароб имкон медиҳад насб ва таъмин намудани салиб-маҷмӯаи Winelib.
    • Барои гузоштани хосият дар сарлавҳаҳои файлҳои PE, ки гузаришро ба истифодаи DLL-ҳои маҳаллӣ назорат мекунад, парчами '--prefer-native option' ба winebuild илова карда шуд (коркарди DLL_WINE_PREATTACH дар DllMain қатъ карда шуд).
    • Дастгирии версияи 4-и формати додаҳои debug Dwarf, ки ҳоло ба таври нобаёнӣ ҳангоми сохтани китобхонаҳои Wine истифода мешавад, илова карда шуд.
    • Опсияи сохтани '—enable-build-id' барои захира кардани идентификаторҳои беназири сохтмон дар файлҳои иҷрошаванда илова карда шудааст.
    • Дастгирии иловашуда барои истифодаи компилятори Clang дар ҳолати мутобиқати MSVC.
  • Разное
    • Номҳои директорияҳои маъмулӣ дар қабати корбар (Windows Shell) ба схемае дода мешаванд, ки аз Windows Vista оғоз мешаванд, яъне. Ба ҷои 'Ҳуҷҷатҳои ман', ҳоло директорияи "Ҳуҷҷатҳо" сохта шудааст ва аксари маълумот дар директорияи "AppData" захира карда мешаванд.
    • Дастгирии мушаххасоти OpenCL 1.2 ба қабати китобхонаи OpenCL илова карда шудааст.
    • Драйвери WinSpool ҳангоми чоп дастгирии андозаҳои гуногуни саҳифаро илова кардааст.
    • Дастгирии ибтидоӣ барои MSDASQL, провайдери Microsoft OLE DB барои драйверҳои ODBC илова карда шуд.
    • Муҳаррики Wine Mono бо татбиқи платформаи .NET барои нашри 7.0.0 навсозӣ шудааст.
    • Маълумоти Юникод ба мушаххасоти Юникод 14 нав карда шуд.
    • Дарахти манбаъ китобхонаҳои Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt ва Zlib иборат аст, ки дар формати PE тартиб дода шудаанд ва версияи формати Unix талаб намекунанд. Ҳамзамон, ин китобхонаҳоро инчунин аз система ворид кардан мумкин аст, то ба ҷои имконоти дарунсохт PE истифода баранд.

Манбаъ: opennet.ru

Илова Эзоҳ