Մեկ տարվա մշակումից և 28 փորձնական տարբերակներից հետո ներկայացվեց Win32 API-ի բաց ներդրման կայուն թողարկում՝ Wine 8.0, որն իր մեջ ներառում էր ավելի քան 8600 փոփոխություն: Նոր տարբերակի հիմնական ձեռքբերումը նշանավորում է Wine մոդուլները ձևաչափի թարգմանելու աշխատանքների ավարտը:
Wine-ը հաստատել է Windows-ի համար 5266 (մեկ տարի առաջ՝ 5156, երկու տարի առաջ՝ 5049) ծրագրերի ամբողջական աշխատանքը, ևս 4370 (մեկ տարի առաջ՝ 4312, երկու տարի առաջ՝ 4227) ծրագրերը հիանալի աշխատում են լրացուցիչ կարգավորումներով և արտաքին DLL-ներով։ 3888 ծրագրեր (3813 մեկ տարի առաջ, 3703 երկու տարի առաջ) ունեն աննշան գործառնական խնդիրներ, որոնք չեն խանգարում հավելվածների հիմնական գործառույթների օգտագործմանը:
Հիմնական նորամուծությունները Wine 8.0-ում.
- Մոդուլներ PE ձևաչափով
- Չորս տարվա աշխատանքից հետո ավարտվել է բոլոր DLL գրադարանների փոխակերպումը PE (Portable Executable, օգտագործվում է Windows-ում) գործարկվող ֆայլի ձևաչափով: PE-ի օգտագործումը թույլ է տալիս օգտագործել Windows-ի համար հասանելի վրիպազերծիչներ և լուծում է տարբեր պատճենների պաշտպանության սխեմաների աջակցման հետ կապված խնդիրներ, որոնք ստուգում են համակարգի մոդուլների ինքնությունը սկավառակի վրա և հիշողության մեջ: Լուծվել են նաև 32-բիթանոց հոսթների վրա 64-բիթանոց հավելվածների և ARM համակարգերում x86 հավելվածների գործարկման հետ կապված խնդիրները։ Մնացած խնդիրների շարքում, որոնք նախատեսվում է լուծել Wine 8.x-ի հետագա փորձնական թողարկումներում, կա մոդուլների անցում դեպի NT համակարգի զանգի միջերես՝ PE և Unix շերտերի միջև ուղղակի զանգեր կատարելու փոխարեն:
- Ներդրվել է հատուկ համակարգային զանգերի կառավարիչ, որն օգտագործվում է PE-ից Unix գրադարաններ թարգմանելու համար, որպեսզի նվազեցնի ամբողջական NT համակարգային զանգի կատարման ծախսերը: Օրինակ, օպտիմիզացիան թույլ տվեց նվազեցնել կատարողականի վատթարացումը OpenGL և Vulkan գրադարաններից օգտվելիս:
- Winelib հավելվածները պահպանում են ELF (.dll.so) գրադարանների խառը Windows/Unix հավաքներ օգտագործելու հնարավորությունը, սակայն նման հավելվածներն առանց 32-բիթանոց գրադարանների չեն աջակցի NT համակարգի զանգերի միջերեսի միջոցով հասանելի գործառույթներին, ինչպիսին է WoW64-ը:
- WoW64
- WoW64 (64-բիթ Windows-on-Windows) շերտերը տրամադրված են բոլոր Unix գրադարանների համար, որոնք թույլ են տալիս PE ձևաչափով 32-բիթանոց մոդուլներին մուտք գործել 64-բիթանոց Unix գրադարաններ, որոնք, PE/Unix ուղղակի զանգերից ազատվելուց հետո, այն կդարձնեն: հնարավոր է կատարել 32-բիթանոց Windows հավելվածներ՝ առանց 32-բիթանոց Unix գրադարաններ տեղադրելու:
- 32-բիթանոց Wine loader-ի բացակայության դեպքում 32-բիթանոց հավելվածները կարող են աշխատել Windows-ի նման նոր WoW64 ռեժիմով, որտեղ 32-բիթանոց կոդը աշխատում է 64-բիթանոց գործընթացում: Ռեժիմը միացված է Wine-ի ստեղծման ժամանակ «—enable-archs» տարբերակով։
- Գրաֆիկական ենթահամակարգ
- Լռելյայն կոնֆիգուրացիան օգտագործում է թեթև թեման («Light»): Դուք կարող եք փոխել թեման՝ օգտագործելով WineCfg կոմունալ ծրագիրը:
- Գրաֆիկական դրայվերները (winex11.drv, winemac.drv, wineandroid.drv) փոխակերպվում են Unix մակարդակով համակարգային զանգեր կատարելու և վարորդներին մուտք գործելու համար Win32u գրադարանի միջոցով:
- Կիրառվել է Print Processor ճարտարապետությունը, որն օգտագործվում է տպիչի դրայվերում PE և Unix մակարդակների միջև ուղղակի զանգերը վերացնելու համար:
- Direct2D API-ն այժմ աջակցում է էֆեկտներին:
- Direct2D API-ն ավելացրել է հրամանների ցուցակները ձայնագրելու և նվագելու հնարավորություն:
- Vulkan գրաֆիկական API-ի դրայվերն ավելացրել է աջակցություն Vulkan 1.3.237 ճշգրտման համար (Vulkan 7-ն աջակցվում էր Wine 1.2-ում):
- Լռելյայն կոնֆիգուրացիան օգտագործում է թեթև թեման («Light»): Դուք կարող եք փոխել թեման՝ օգտագործելով WineCfg կոմունալ ծրագիրը:
- Direct3D- ը
- Ավելացվել է նոր շեյդեր կոմպիլյատոր HLSL-ի համար (High-Level Shader Language), որն իրականացվել է vkd3d-shader գրադարանի հիման վրա: Նաև vkd3d-shader-ի հիման վրա պատրաստվել է HLSL ապամոնտաժող և HLSL նախապրոցեսոր:
- D3DX 10-ում ներկայացված Thread Pump ինտերֆեյսը ներդրվել է:
- Direct3D 10-ի էֆեկտները աջակցում են բազմաթիվ նոր արտահայտությունների:
- D3DX 9-ի աջակցման գրադարանն այժմ աջակցում է Cubemap հյուսվածքների նախագծմանը:
- Ձայն և տեսանյութ
- GStreamer շրջանակի հիման վրա իրականացվել է MPEG-1 ձևաչափով ձայնի վերծանման ֆիլտրերի աջակցություն:
- Ավելացվել է ֆիլտր՝ ASF (Advanced Systems Format) ձևաչափով հոսքային աուդիո և վիդեո ընթերցման համար:
- OpenAL32.dll-ի միջանկյալ գրադարանային շերտը հեռացվել է, որի փոխարեն այժմ օգտագործվում է հավելվածներով ապահովված Windows-ի բնիկ OpenAL32.dll գրադարանը:
- Media Foundation Player-ը բարելավել է բովանդակության տեսակի հայտնաբերումը:
- Իրականացվել է տվյալների փոխանցման արագությունը վերահսկելու հնարավորությունը (Rate control):
- Բարելավված աջակցություն լռելյայն խառնիչի և հաղորդավարի ընդլայնված տեսաարտադրող սարքում (EVR):
- Ավելացվեց Writer Encoding API-ի նախնական իրականացումը:
- Տոպոլոգիայի բեռնիչի բարելավված աջակցություն:
- Մուտքագրեք սարքերը
- Զգալիորեն բարելավված աջակցություն կարգավորիչների տաք միացման համար:
- Առաջարկվում է SDL գրադարանի հիման վրա կառուցված խաղի ղեկի որոշման կոդի բարելավված ներդրում:
- Ուժի հետադարձ կապի էֆեկտի բարելավված աջակցություն խաղային անիվների օգտագործման ժամանակ:
- Ձախ և աջ թրթռումային շարժիչները կառավարելու հնարավորությունը, օգտագործելով HID Haptic ճշգրտումը, իրականացվել է:
- Փոխվել է joystick կառավարման վահանակի դիզայնը:
- Sony DualShock և DualSense կարգավորիչների աջակցությունը տրամադրվում է hidraw backend-ի օգտագործման միջոցով:
- WinRT մոդուլը Windows.Gaming.Input-ն առաջարկվում է ծրագրային ինտերֆեյսի ներդրմամբ՝ խաղային վահանակներ, ջոյստիկներ և խաղային անիվներ մուտք գործելու համար: Նոր API-ի համար, ի թիվս այլ բաների, իրականացվում է սարքերի տաք խցանման, շոշափելի և թրթռման էֆեկտների մասին ծանուցման աջակցություն:
- Միջազգայնացում
- Ապահովված է Unicode CLDR (Unicode Common Locale Data Repository) պահոցից locale.nls ձևաչափով ճիշտ տեղային տվյալների բազայի ստեղծումը:
- Unicode տողերի համեմատման գործառույթները տեղափոխվել են՝ Unicode Collation ալգորիթմի փոխարեն տվյալների բազան և Windows Sortkey ալգորիթմը օգտագործելու համար՝ ավելի մոտեցնելով վարքագիծը Windows-ին:
- Գործառույթներից շատերը աջակցություն են ավելացրել Unicode ծածկագրի վերին տիրույթների համար (ինքնաթիռներ):
- Հնարավոր է օգտագործել UTF-8 որպես ANSI կոդավորում:
- Նիշերի աղյուսակները թարմացվել են Յունիկոդ 15.0.0 բնութագրով:
- Տեքստ և տառատեսակներ
- Տառատեսակների կապակցումը միացված է համակարգային տառատեսակների մեծ մասի համար՝ լուծելով չինական, կորեական և ճապոնական տեղայնացումներով համակարգերում բացակայող հոլովակների խնդիրը:
- Վերամշակված հետադարձ տառատեսակի փոխարինում DirectWrite-ում:
- միջուկ (Windows միջուկի միջերես)
- Իրականացվել է ApiSetSchema տվյալների բազան, որը փոխարինեց api-ms-* մոդուլները և նվազեցրեց սկավառակի և հասցեների տարածքի սպառումը:
- DOS ֆայլի ատրիբուտները պահվում են սկավառակի վրա Samba-ի հետ համատեղելի ձևաչափով՝ օգտագործելով ընդլայնված FS ատրիբուտները:
- Ingանցային հատկություններ
- Ավելացված է աջակցություն OCSP-ին (Վկայագրի կարգավիճակի առցանց արձանագրություն), որն օգտագործվում է չեղյալ համարված վկայագրերը ստուգելու համար:
- Ընդլայնվել է JavaScript-ի ստանդարտների համապատասխանության ռեժիմում հասանելի EcmaScript-ի գործառույթների շրջանակը:
- Իրականացրել է աղբահավաք JavaScript-ի համար:
- Gecko շարժիչի փաթեթը ներառում է հնարավորություններ հաշմանդամություն ունեցող անձանց համար:
- MSHTML-ն ավելացնում է Web Storage API-ի, Performance օբյեկտի և իրադարձությունների մշակման լրացուցիչ օբյեկտների աջակցություն:
- Ներկառուցված հավելվածներ
- Բոլոր ներկառուցված հավելվածները փոխակերպվել են՝ օգտագործելու Common Controls 6 գրադարանը՝ դիզայնի թեմաների աջակցությամբ և ցուցադրման՝ հաշվի առնելով բարձր պիքսելային խտությամբ էկրանները:
- Գինու վրիպազերծիչում (winedbg) թելերը վրիպազերծելու ընդլայնված հնարավորություններ:
- Ռեեստրի կոմունալ ծառայությունները (REGEDIT և REG) այժմ աջակցում են QWORD տիպին:
- Notepad-ն ավելացրել է կարգավիճակի գիծ՝ կուրսորի դիրքի մասին տեղեկություններով և Goto Line ֆունկցիա՝ նշված տողի համարին անցնելու համար:
- Ներկառուցված վահանակն ապահովում է տվյալների ելք OEM կոդի էջում:
- «Հարցում» հրամանն ավելացվել է sc.exe (Service Control) օգտակար ծրագրին:
- Հավաքման համակարգ
- Տրված է մի քանի ճարտարապետության համար PE ձևաչափով գործարկվող ֆայլեր ստեղծելու հնարավորություն (օրինակ՝ «—enable-archs=i386,x86_64»)։
- 32-բիթանոց երկար տիպի բոլոր հարթակներում Windows-ում սահմանված տվյալների տեսակներն այժմ վերասահմանվում են որպես «long» Wine-ում «int» փոխարեն: Winelib-ում այս վարքագիծը կարող է անջատվել WINE_NO_LONG_TYPES սահմանման միջոցով:
- Ավելացվեց գրադարաններ ստեղծելու հնարավորություն՝ առանց dlltool-ի օգտագործման (միացված է winebuild-ում «—առանց dlltool» տարբերակը դնելով):
- Բեռնման արդյունավետությունը բարելավելու և առանց կոդերի, միայն ռեսուրսներով գրադարանների չափը նվազեցնելու համար winegcc-ն իրականացնում է «միայն տվյալների» տարբերակը:
- Ժողովածու
- Ներկառուցված գրադարանների թարմացված տարբերակները Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXml1.1.37 1.2.13, XNUMXlt
- Wine Mono շարժիչը .NET հարթակի ներդրմամբ թարմացվել է՝ թողարկելու 7.4:
- Իրականացվել է RSA ալգորիթմի և RSA-PSS թվային ստորագրությունների վրա հիմնված գաղտնագրման աջակցություն:
- Ավելացվեց UI Automation API-ի նախնական տարբերակը:
- Աղբյուրի ծառը ներառում է LDAP և vkd3d գրադարանները, որոնք կազմված են PE ձևաչափով՝ վերացնելով այդ գրադարանների Unix հավաքների մատակարարման անհրաժեշտությունը։
- OpenAL գրադարանը դադարեցվել է:
Source: opennet.ru