Wine 7.0-ի կայուն թողարկում

Մեկ տարվա մշակումից և 30 փորձնական տարբերակներից հետո ներկայացվեց Win32 API-ի բաց ներդրման կայուն թողարկում՝ Wine 7.0, որն իր մեջ ներառում էր ավելի քան 9100 փոփոխություն: Նոր տարբերակի հիմնական ձեռքբերումները ներառում են Wine մոդուլների մեծամասնության թարգմանությունը PE ձևաչափով, թեմաների աջակցություն, ջոյստիկների և HID ինտերֆեյսով մուտքային սարքերի փաթեթի ընդլայնում և 64-բիթանոց ծրագրեր գործարկելու համար WoW32 ճարտարապետության ներդրում: 64-բիթանոց միջավայր:

Wine-ը հաստատել է Windows-ի համար 5156 (մեկ տարի առաջ 5049) ծրագրերի ամբողջական աշխատանքը, ևս 4312 (մեկ տարի առաջ՝ 4227) ծրագրեր հիանալի աշխատում են լրացուցիչ կարգավորումներով և արտաքին DLL-ներով։ 3813 ծրագրեր (3703 տարի առաջ) ունեն աննշան գործառնական խնդիրներ, որոնք չեն խանգարում հավելվածների հիմնական գործառույթների օգտագործմանը:

Հիմնական նորամուծությունները Wine 7.0-ում.

  • Մոդուլներ PE ձևաչափով
    • Գրեթե բոլոր DLL-ները փոխակերպվել են՝ ELF-ի փոխարեն օգտագործելու PE (Portable Executable, օգտագործվում է Windows-ում) գործարկվող ֆայլի ձևաչափը: 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 գրադարաններ տեղադրելու:
  • Թեմաներ
    • Թեմայի աջակցությունն իրականացվել է: Ներառված են «Light», «Blue» և «Classic Blue» դիզայնի թեմաները, որոնք կարելի է ընտրել WineCfg կոնֆիգուրատորի միջոցով:
    • Ավելացվեց բոլոր ինտերֆեյսի վերահսկման արտաքին տեսքը թեմաների միջոցով հարմարեցնելու հնարավորությունը: Տարրերի տեսքը ավտոմատ կերպով թարմացվում է դիզայնի թեման փոխելուց հետո:
    • Թեմայի աջակցությունն ավելացվել է բոլոր ներկառուցված Wine հավելվածներին: Հավելվածները հարմարեցվել են բարձր պիքսելային խտությամբ (High DPI) էկրաններին:
  • Գրաֆիկական ենթահամակարգ
    • Ավելացվել է նոր Win32u գրադարան, որը ներառում է GDI32 և USER32 գրադարանների մասեր՝ կապված գրաֆիկական մշակման և միջուկի մակարդակով պատուհանների կառավարման հետ։ Ապագայում աշխատանքը կսկսվի վարորդի բաղադրիչները, ինչպիսիք են winex32.drv և winemac.drv-ը Win11u տեղափոխելը:
    • Vulkan-ի դրայվերն աջակցում է Vulkan գրաֆիկական API-ի 1.2.201 ճշգրտմանը:
    • Տրամադրել է աջակցություն Direct2D API-ի միջոցով բացված երկրաչափական օբյեկտների դուրսբերման համար՝ ստուգելու ունակությամբ, թե արդյոք սեղմումը հարվածում է (հիթ-թեստ):
    • Direct2D API-ն նախնական աջակցություն է տրամադրում ID2D1Effect միջերեսի օգտագործմամբ կիրառվող տեսողական էֆեկտներին:
    • Direct2D API-ն ավելացրել է ID2D1MultiThread ինտերֆեյսի աջակցությունը, որն օգտագործվում է ռեսուրսների բացառիկ հասանելիությունը բազմաշերտ հավելվածներում կազմակերպելու համար:
    • WindowsCodecs գրադարանների հավաքածուն ապահովում է WMP (Windows Media Photo) ձևաչափով պատկերների վերծանման և DDS (DirectDraw Surface) ձևաչափով պատկերների կոդավորման աջակցություն: Մենք այլևս չենք աջակցում պատկերների կոդավորումը ICNS ձևաչափով (macOS-ի համար), որը չի աջակցվում Windows-ում:
  • Direct3D- ը
    • Նոր մատուցման շարժիչը զգալիորեն բարելավվել է՝ Direct3D զանգերը թարգմանելով Vulkan գրաֆիկական API-ին: Շատ իրավիճակներում Direct3D 10-ի և 11-ի աջակցության մակարդակը Vulkan-ի վրա հիմնված շարժիչում հավասարվել է հին OpenGL-ի վրա հիմնված շարժիչին: Vulkan-ի մատուցման շարժիչը միացնելու համար Direct3D ռեգիստրի փոփոխական «renderer» դրեք «vulkan»:
    • Direct3D 10-ի և 11-ի բազմաթիվ առանձնահատկություններ ներդրված են, այդ թվում՝ Հետաձգված համատեքստերը, սարքի համատեքստում գործող վիճակի օբյեկտները, բուֆերներում մշտական ​​տեղաշարժերը, անկանոն տեքստուրային դիտումների մաքրումը, տվյալների պատճենումը ռեսուրսների միջև անտիպ ձևաչափերով (DXGI_FORMAT_BC3_TYPELESS, DXGI32_FORMAT) և այլն: .
    • Ավելացվել է բազմամոնիտորի կոնֆիգուրացիաների աջակցություն, որը թույլ է տալիս ընտրել մոնիտոր՝ Direct3D հավելվածն ամբողջ էկրանով ցուցադրելու համար:
    • DXGI API-ն ապահովում է էկրանի գամմայի ուղղում, որը կարող է օգտագործվել Direct3D 10 և 11 հիմնված հավելվածների կողմից՝ էկրանի պայծառությունը փոխելու համար: Միացված է վիրտուալ շրջանակային բուֆերների հաշվիչների որբերումը (SwapChain):
    • Direct3D 12-ն ավելացնում է աջակցություն 1.1 տարբերակի արմատային ստորագրությունների համար:
    • Vulkan API-ի միջոցով մատուցման կոդի մեջ հարցումների մշակման արդյունավետությունը բարելավվել է, երբ համակարգն աջակցում է VK_EXT_host_query_reset ընդլայնումը:
    • Ավելացվել է GDI-ի միջոցով վիրտուալ շրջանակների բուֆերներ (SwapChain) դուրս բերելու հնարավորություն, եթե OpenGL-ը կամ Vulkan-ը չեն կարող օգտագործվել ցուցադրման համար, օրինակ՝ տարբեր գործընթացներից պատուհան դուրս բերելու ժամանակ, օրինակ՝ CEF (Chromium Embedded Framework) շրջանակի վրա հիմնված ծրագրերում:
    • GLSL shader backend-ն օգտագործելիս «ճշգրիտ» մոդիֆիկատորն ապահովված է ստվերային հրահանգների համար:
    • DirectDraw API-ն ավելացնում է համակարգային հիշողության մեջ 3D ցուցադրման աջակցություն՝ օգտագործելով ծրագրային սարքեր, ինչպիսիք են «RGB», «MMX» և «Ramp»:
    • Direct3D գրաֆիկական քարտերի տվյալների բազայում ավելացվել են AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 և NVIDIA GT 1030 քարտերը:
    • «UseGLSL» ստեղնը հեռացվել է HKEY_CURRENT_USER\Software\Wine\Direct3D ռեեստրից, որի փոխարեն, սկսած Wine 5.0-ից, պետք է օգտագործել «shader_backend»:
    • Direct3D 12-ին աջակցելու համար այժմ ձեզ անհրաժեշտ է vkd3d գրադարանի առնվազն 1.2 տարբերակը:
  • D3DX
    • D3DX 10-ի ներդրումը բարելավել է տեսողական էֆեկտների շրջանակի աջակցությունը և ավելացրել է Windows Media Photo պատկերի ձևաչափի (JPEG XR) աջակցությունը:
    • Ավելացվել են D3DX10-ում տրամադրված հյուսվածքների ստեղծման գործառույթներ, ինչպիսիք են D3DX10CreateTextureFromMemory():
    • ID3DX10Sprite և ID3DX10Font ծրագրային ինտերֆեյսները մասամբ ներդրվել են:
  • Ձայն և տեսանյութ
    • GStreamer հավելումները DirectShow-ի և Media Foundation շրջանակի համար համակցված են մեկ ընդհանուր WineGStreamer backend-ի մեջ, որը պետք է պարզեցնի բովանդակության վերծանման նոր API-ների մշակումը:
    • WineGStreamer backend-ի հիման վրա Windows Media օբյեկտները ներդրվում են համաժամանակյա և ասինխրոն ընթերցման համար:
    • Մեդիա հիմնադրամի շրջանակի իրականացումն ավելի է կատարելագործվել, ավելացվել է IMFPMediaPlayer-ի ֆունկցիոնալության և նմուշի բաշխիչի աջակցությունը, ինչպես նաև բարելավվել է EVR և SAR մատուցման բուֆերների աջակցությունը:
    • Wineqtdecoder գրադարանը, որն ապահովում է QuickTime ձևաչափի ապակոդավորիչ, հեռացվել է (բոլոր կոդեկներն այժմ օգտագործում են GStreamer):
  • Մուտքագրեք սարքերը
    • HID (Human Interface Devices) արձանագրությունն աջակցող մուտքային սարքերի կույտը զգալիորեն բարելավվել է՝ ապահովելով հնարավորություններ, ինչպիսիք են HID նկարագրիչների վերլուծությունը, HID հաղորդագրությունների մշակումը և մինի-HID դրայվերների տրամադրումը:
    • Winebus.sys-ի վարորդի հետնամասերում բարելավվել է սարքի նկարագրությունների թարգմանությունը HID հաղորդագրությունների:
    • Ավելացվեց նոր DirectInput հետնամաս՝ HID արձանագրությունն աջակցող joysticks-ի համար: Ջոյստիկներում հետադարձ կապի էֆեկտներ օգտագործելու հնարավորությունը ներդրվել է: Բարելավված joystick կառավարման վահանակ: Օպտիմիզացված փոխազդեցություն XInput համատեղելի սարքերի հետ: WinMM-ում joystick-ի աջակցությունը տեղափոխվել է DInput՝ Linux-ում evdev backend-ը և macOS IOHID-ում IOHID-ն օգտագործելու փոխարեն: Ջոյստիկի հին վարորդը winejoystick.drv հեռացվել է:
    • DInput մոդուլում ավելացվել են նոր թեստեր, որոնք հիմնված են վիրտուալ HID սարքերի օգտագործման վրա և ֆիզիկական սարք չեն պահանջում:
  • Տեքստ և տառատեսակներ
    • DirectWrite-ին ավելացվել է Font Set օբյեկտ:
    • RichEdit-ը ճիշտ է իրականացնում TextHost ինտերֆեյսը:
  • միջուկ (Windows միջուկի միջերես)
    • Wine-ում չճանաչված գործարկվող ֆայլ (օրինակ՝ «wine foo.msi») գործարկելիս այժմ կոչվում է start.exe, որը կանչում է ֆայլի տեսակի հետ կապված մշակողներին:
    • Ավելացվել է NtAlertThreadByThreadId-ի և NtWaitForAlertByThreadId-ի համաժամացման մեխանիզմների աջակցությունը, որոնք նման են Linux-ի ֆուտեքսներին:
    • Ավելացված է աջակցություն NT կարգաբերման օբյեկտների համար, որոնք օգտագործվում են միջուկի գործառույթները վրիպազերծելու համար:
    • Ավելացվել է ռեեստրի դինամիկ բանալիների աջակցություն՝ կատարողականի տվյալները պահպանելու համար:
  • C Գործողության ժամանակը
    • C-ի գործարկման ժամանակն իրականացնում է մաթեմատիկական ֆունկցիաների ամբողջական փաթեթ, որոնք հիմնականում փոխանցվում են Musl գրադարանից:
    • CPU-ի բոլոր հարթակները ճիշտ աջակցություն են տրամադրում լողացող կետի գործառույթներին:
  • Ingանցային հատկություններ
    • Համատեղելիության բարելավված ռեժիմ Internet Explorer 11-ի համար (IE11), որն այժմ օգտագործվում է լռելյայն HTML փաստաթղթերի մշակման համար:
    • mshtml գրադարանն իրականացնում է ES6 JavaScript ռեժիմը (ECMAScript 2015), որն ապահովում է այնպիսի գործառույթների աջակցություն, ինչպիսիք են let արտահայտությունը և 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):
    • MacOS-ում BCrypt և Secur32 գործառույթների աջակցությունն այժմ պահանջում է GnuTLS գրադարանի տեղադրում:
    • ARM պլատֆորմների համար 32-բիթանոց գործարկվող սարքերն այժմ կառուցված են Thumb-2 ռեժիմում՝ Windows-ի նման: Նման ֆայլերը բեռնելու համար օգտագործվում է նախաբեռնիչ:
    • 32-բիթանոց ARM պլատֆորմների համար իրականացվել է բացառությունների լուծարման աջակցություն:
    • FreeBSD-ի համար ընդլայնվել է ցածր մակարդակի համակարգի տեղեկատվության համար աջակցվող հարցումների քանակը, ինչպիսիք են հիշողության կարգավիճակը և մարտկոցի լիցքավորման մակարդակը:
  • Ներկառուցված հավելվածներ և մշակման գործիքներ
    • reg.exe կոմունալն ավելացրել է ռեեստրի 32 և 64 բիթանոց դիտումների աջակցություն: Ավելացվեց ռեեստրի բանալիների պատճենման աջակցություն:
    • WineDump կոմունալ ծրագիրը ավելացրել է Windows-ի մետատվյալների հեռացման և CodeView գրառումների մասին մանրամասն տեղեկություններ ցուցադրելու աջակցություն:
    • Wine Debugger-ը (winedbg) ապահովում է 32-բիթանոց վրիպազերծիչից 64-բիթանոց գործընթացները վրիպազերծելու հնարավորություն:
    • IDL կոմպիլյատորին (widl) ավելացվել է PE ֆայլերում ներկառուցված գրադարաններ բեռնելու հնարավորությունը, տրամադրվել է WinRT-ի հատուկ ատրիբուտների և կառուցվածքների աջակցություն, և իրականացվել է գրադարանի հատուկ հարթակի որոնում:
  • Հավաքման համակարգ
    • Ճարտարապետության հատուկ դիրեկտորիաներում գրադարաններն այժմ պահվում են անուններով, որոնք արտացոլում են ճարտարապետությունը և գործարկվող տիպը, օրինակ՝ «i386-windows» PE ձևաչափի համար և «x86_64-unix»՝ unix գրադարանների համար, ինչը թույլ է տալիս աջակցություն տարբեր ճարտարապետությունների մեկ Wine-ում: տեղադրում և ապահովում Winelib-ի խաչաձև կոմպիլյացիան:
    • PE ֆայլերի վերնագրերում ընտրանք սահմանելու համար, որը վերահսկում է անցումը դեպի բնիկ DLL-ներ օգտագործելու, «--նախընտրել-հայրենի տարբերակ» դրոշը ավելացվել է winebuild-ին (DLL_WINE_PREATTACH մշակումը DllMain-ում դադարեցվել է):
    • Ավելացվեց Dwarf կարգաբերման տվյալների ձևաչափի 4-րդ տարբերակի աջակցությունը, որն այժմ օգտագործվում է լռելյայնորեն 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:
    • Unicode-ի տվյալները թարմացվել են՝ ըստ Unicode 14-ի:
    • Աղբյուրի ծառը ներառում է Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt և Zlib գրադարանները, որոնք կազմված են PE ձևաչափով և Unix ձևաչափով տարբերակ չեն պահանջում։ Միևնույն ժամանակ, այս գրադարանները կարող են նաև ներմուծվել համակարգից՝ ներկառուցված PE տարբերակների փոխարեն արտաքին հավաքներ օգտագործելու համար:

Source: opennet.ru

Добавить комментарий