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

Մեկ տարվա մշակումից և 28 փորձնական տարբերակներից հետո ներկայացված Win32 API-ի բաց իրականացման կայուն թողարկում - Գինի 5.0, որը ներառում էր ավելի քան 7400 փոփոխություն։ Նոր տարբերակի հիմնական ձեռքբերումները ներառում են ներկառուցված Wine մոդուլների առաքումը PE ձևաչափով, բազմամոնիտորի կոնֆիգուրացիաների աջակցություն, XAudio2 աուդիո API-ի նոր ներդրում և Vulkan 1.1 գրաֆիկական API-ի աջակցություն:

Գինու մեջ հաստատված Windows-ի համար 4869 (մեկ տարի առաջ 4737) ծրագրերի ամբողջական շահագործում, ևս 4136 (մեկ տարի առաջ 4045) ծրագրեր հիանալի աշխատում են լրացուցիչ կարգավորումներով և արտաքին DLL-ներով: 3635 ծրագրեր ունեն կատարողականի աննշան խնդիրներ, որոնք չեն խանգարում հավելվածի հիմնական գործառույթների օգտագործմանը:

Բանալի նորամուծություններ Գինի 5.0:

  • Մոդուլներ PE ձևաչափով
    • MinGW կոմպիլյատորի միջոցով Wine մոդուլների մեծ մասն այժմ կառուցված է PE (Portable Executable, օգտագործվում է Windows-ում) գործարկվող ֆայլի ձևաչափով՝ ELF-ի փոխարեն: PE-ի օգտագործումը լուծում է տարբեր պատճենների պաշտպանության սխեմաների աջակցման հետ կապված խնդիրները, որոնք ստուգում են համակարգի մոդուլների ինքնությունը սկավառակի վրա և հիշողության մեջ.
    • PE գործարկվողներն այժմ պատճենվում են ~/.wine ($WINEPREFIX) գրացուցակում՝ կեղծ DLL ֆայլեր օգտագործելու փոխարեն, ինչն ավելի նման է Windows-ի իրական տեղադրումներին՝ հաշվի առնելով սկավառակի լրացուցիչ տարածքը սպառելու գնով;
    • PE ձևաչափի փոխարկված մոդուլները կարող են օգտագործել ստանդարտ wchar C ֆունկցիաները և հաստատունները Յունիկոդով (օրինակ՝ L"abc");
    • Wine C-ի գործարկման ժամանակն ավելացրել է աջակցություն MinGW-ում կառուցված երկուականների հետ կապելու համար, որն օգտագործվում է լռելյայնորեն MinGW-ի փոխարեն DLL-ներ կառուցելիս;
  • Գրաֆիկական ենթահամակարգ
    • Ավելացված է բազմաթիվ մոնիտորների և գրաֆիկական ադապտերների հետ աշխատելու աջակցություն, ներառյալ պարամետրերը դինամիկ փոխելու հնարավորությունը;
    • Vulkan գրաֆիկական API-ի դրայվերը թարմացվել է Vulkan 1.1.126 բնութագրին համապատասխանելու համար;
    • WindowsCodecs գրադարանը հնարավորություն է տալիս փոխակերպել լրացուցիչ ռաստերային ձևաչափեր, ներառյալ ինդեքսավորված գունապնակով ձևաչափերը.
  • Direct3D- ը
    • Ամբողջ էկրանով Direct3D հավելվածներ գործարկելիս էկրանապահիչի զանգն արգելափակված է.
    • DXGI-ը (DirectX Graphics Infrastructure) ավելացրել է աջակցություն՝ հավելվածին տեղեկացնելու համար, երբ դրա պատուհանը նվազագույնի է հասցվում, ինչը թույլ է տալիս հավելվածին նվազեցնել ռեսուրսների ինտենսիվ գործառնությունների կատարումը պատուհանը նվազագույնի հասցնելու ժամանակ;
    • DXGI օգտագործող հավելվածների համար այժմ հնարավոր է անցնել լիաէկրան ռեժիմի և պատուհանի ռեժիմների միջև՝ օգտագործելով Alt+Enter համակցությունը;
    • Direct3D 12-ի ներդրման հնարավորությունները ընդլայնվել են, օրինակ, այժմ կա աջակցություն ամբողջ էկրանով և պատուհանով ռեժիմների միջև անցնելու, էկրանի ռեժիմների փոփոխման, ելքի չափման և մատուցման բուֆերի փոխարինման միջակայքը կառավարելու համար (փոխանակման միջակայքը);
    • Տարբեր սահմանային իրավիճակների բարելավված կառավարում, ինչպիսիք են թափանցիկության և խորության թեստերի համար մուտքային արժեքների օգտագործումը, արտացոլված հյուսվածքներով և բուֆերներով նկարելը և DirectDraw-ի սխալ օբյեկտների օգտագործումը: կուլ տալ, ստեղծելով Direct3 սարքեր սխալ պատուհանների համար, օգտագործելով տեսանելի տարածքներ, որոնց նվազագույն պարամետրերի արժեքները հավասար են առավելագույնին և այլն:
    • Direct3D 8-ը և 9-ը ապահովում են ավելի ճշգրիտ հետևում»:կեղտոտ» բեռնված հյուսվածքների տարածքներ;
    • S3TC մեթոդով սեղմված 3D հյուսվածքները բեռնելիս անհրաժեշտ հասցեի տարածքի չափը կրճատվել է (ամբողջովին բեռնելու փոխարեն, հյուսվածքները բեռնվում են կտորներով):
    • Ինտերֆեյսը ներդրված է ID3D11 Բազմաթելեր պաշտպանել կրիտիկական հատվածները բազմաշերտ հավելվածներում.
    • Լուսավորման հաշվարկների հետ կապված տարբեր բարելավումներ և ուղղումներ են կատարվել ավելի հին DirectDraw հավելվածների համար.
    • Իրականացրել է լրացուցիչ զանգեր՝ API-ում շեյդերների մասին տեղեկություններ ստանալու համար ShaderReflection;
    • wined3d-ն այժմ աջակցում է բոցեր CPU-ի վրա հիմնված սեղմված ռեսուրսների մշակման համար;
    • Ընդլայնվել է Direct3D-ում ճանաչված գրաֆիկական քարտերի բազան.
    • Ավելացվել են ռեեստրի նոր բանալիներ HKEY_CURRENT_USER\Software\Wine\Direct3D. «shader_backend» (backend՝ shader-ների հետ աշխատելու համար՝ «glsl»՝ GLSL-ի համար, «arb»՝ ARB vertex/fragment-ի համար և «none»՝ shader աջակցությունն անջատելու համար), «strict_shader_math» ( 0x1 - միացնել, 0x0 - անջատել Direct3D shader-ի փոխարկումը): «UseGLSL» ստեղնը հնացել է (պետք է օգտագործի «shader_backend»);
  • D3DX
    • Իրականացվել է S3TC (S3 Texture Compression) 3D հյուսվածքների սեղմման մեխանիզմի աջակցությունը.
    • Ավելացվել է այնպիսի գործառնությունների ճիշտ իրականացում, ինչպիսիք են հյուսվածքների լցոնումը և չքարտեզագրվող մակերեսները;
    • Ստեղծման շրջանակում կատարվել են տարբեր բարելավումներ և ուղղումներ տեսողական էֆեկտներ;
  • միջուկ (Windows միջուկի միջերես)
    • Kernel32-ում օգտագործվող գործառույթների մեծ մասը տեղափոխվել է
      KernelBase, Windows-ի ճարտարապետության փոփոխություններից հետո;

    • Բեռնման համար օգտագործվող դիրեկտորիաներում 32- և 64-բիթանոց DLL-ներ խառնելու ունակություն: Ապահովում է, որ գրադարանները, որոնք չեն համապատասխանում ընթացիկ բիթային խորությանը, անտեսվում են (32/64), այն դեպքում, երբ ճանապարհի հետագա երկայնքով հնարավոր է գտնել գրադարան, որը ճիշտ է ընթացիկ բիթերի խորության համար.
    • Սարքի դրայվերների համար միջուկի օբյեկտների էմուլյացիան բարելավվել է.
    • Իրականացված համաժամացման օբյեկտներ, որոնք աշխատում են միջուկի մակարդակում, ինչպիսիք են պտտվող կողպեքները, արագ մուտեքսները և ռեսուրսին կցված փոփոխականները.
    • Ապահովում է, որ հավելվածները ճիշտ են տեղեկացված մարտկոցի կարգավիճակի մասին.
  • Օգտագործողի միջերես և աշխատասեղանի ինտեգրում
    • Նվազագույնի հասցված պատուհաններն այժմ ցուցադրվում են վերնագրի տողի միջոցով, քան Windows 3.1 ոճի պատկերակը;
    • Ավելացվել են կոճակների նոր ոճեր SplitButton (կոճակը գործողությունների բացվող ցուցակով) և Հրամանի հղումներ (հղումներ երկխոսության տուփերում, որոնք օգտագործվում են հաջորդ փուլ տեղափոխվելու համար);
    • «Ներբեռնումներ» և «Կաղապարներ» պանակների համար ստեղծվել են խորհրդանշական հղումներ՝ մատնանշելով Unix համակարգերի համապատասխան դիրեկտորիաները.
  • Մուտքագրեք սարքերը
    • Գործարկման ժամանակ տեղադրվում և բեռնվում են Plug & Play սարքի անհրաժեշտ դրայվերները.
    • Բարելավված աջակցություն խաղի կարգավորիչներին, ներառյալ մինի-ջոյսթիկը (գլխարկի անջատիչը), ղեկը, գազի և արգելակային ոտնակները:
    • Աջակցություն հին Linux joystick API-ին, որն օգտագործվում էր Linux միջուկներում մինչև 2.2 տարբերակը, դադարեցվել է.
  • : NET
    • Mono շարժիչը թարմացվել է՝ թողարկելու 4.9.4 և այժմ ներառում է Windows Presentation Foundation (WPF) շրջանակի մասեր.
    • Ավելացրել է Mono-ի և Gecko-ի հետ հավելումներ մեկ ընդհանուր գրացուցակում տեղադրելու հնարավորություն՝ նոր նախածանցներում պատճենելու փոխարեն ֆայլերը տեղադրելով /usr/share/wine հիերարխիայում;
  • Ingանցային հատկություններ
    • Wine Gecko բրաուզերի շարժիչը, որն օգտագործվում է MSHTML գրադարանում, թարմացվել է՝ թողարկելու 2.47.1. Իրականացվել է նոր HTML API-ների աջակցություն.
    • MSHTML-ն այժմ աջակցում է SVG տարրերին;
    • Ավելացրել է բազմաթիվ նոր VBScript ֆունկցիաներ (օրինակ՝ սխալների և բացառությունների մշակիչներ, Hour, Day, Month, String, LBound, RegExp.Replace, РScriptTypeInfo_* և ScriptTypeComp_Bind* ֆունկցիաներ և այլն);
    • Տրամադրվում է կոդի վիճակի պահպանում VBScript-ում և JScript-ում (script persistence);
    • Ավելացրել է HTTP ծառայության (WinHTTP) և հարակից API-ի (HTTPAPI) նախնական ներդրումը հաճախորդի և սերվերի հավելվածների համար, որոնք ուղարկում և ստանում են հարցումներ՝ օգտագործելով HTTP արձանագրությունը.
    • Իրականացրել է DHCP-ի միջոցով HTTP վստահված անձի կարգավորումներ ստանալու հնարավորությունը;
    • Ավելացվել է Microsoft Passport ծառայության միջոցով վավերացման հարցումների վերահղման աջակցություն;
  • Գաղտնագրություն
    • Իրականացված աջակցություն էլիպսային կորի գաղտնագրման բանալիների (ECC) GnuTLS-ի օգտագործման ժամանակ;
    • Ավելացրել է PFX ձևաչափով ֆայլերից բանալիներ և վկայագրեր ներմուծելու հնարավորություն;
    • Ավելացվել է PBKDF2 գաղտնաբառի հիման վրա բանալիների արտադրության սխեմայի աջակցություն;
  • Տեքստ և տառատեսակներ
    • DirectWrite API-ի ներդրումն ավելացրել է աջակցություն OpenType-ի հետ կապված հնարավորությունների համար գլիֆի դիրքավորում, որոնք լռելյայն միացված են լատինական ոճի համար, ներառյալ kerning;
    • Բարելավված անվտանգություն տառատեսակի տվյալների մշակման համար՝ ստուգելով տարբեր տվյալների աղյուսակների ճիշտությունը նախքան դրանք օգտագործելը.
    • DirectWrite միջերեսները համապատասխանեցվել են վերջին SDK-ին;
  • Ձայն և տեսանյութ
    • Առաջարկվել է ձայնային API-ի նոր ներդրում XAudio2, որը կառուցվել է նախագծի հիման վրա Ֆաուդիո. FAudio-ի օգտագործումը Wine-ում թույլ է տալիս ձեռք բերել ավելի բարձր ձայնի որակ խաղերում և օգտագործել այնպիսի գործառույթներ, ինչպիսիք են ձայնի միքսումը և առաջադեմ ձայնային էֆեկտները;
    • Մեդիա հիմնադրամի շրջանակի իրականացմանը ավելացվել են մեծ թվով նոր զանգեր, ներառյալ՝ ներկառուցված և հարմարեցված ասինխրոն հերթերի, Source Reader API-ի, Media Session-ի և այլնի աջակցություն:
    • Տեսագրման ֆիլտրը փոխվել է v4l2 API-ի փոխարեն օգտագործելու v4l1 API-ն, որն ընդլայնել է աջակցվող տեսախցիկների շրջանակը;
    • Ներկառուցված AVI, MPEG-I և WAVE ապակոդավորիչները հանվել են, որոնց փոխարեն այժմ օգտագործվում են GStreamer կամ QuickTime համակարգը;
    • Ավելացվել է VMR7 կոնֆիգուրացիայի API-ների ենթաբազմություն;
    • Ավելացված է աջակցություն առանձին ալիքների ձայնը ձայնային վարորդներին հարմարեցնելու համար;
  • Միջազգայնացում
    • Unicode աղյուսակները թարմացվել են 12.1.0 տարբերակով;
    • Իրականացված աջակցություն Unicode-ի նորմալացման համար;
    • Տրամադրվում է աշխարհագրական տարածաշրջանի ավտոմատ տեղադրում (HKEY_CURRENT_USER\Control Panel\International\Geo)՝ հիմնված ընթացիկ տեղանքի վրա.
  • RPC/COM
    • Typelib-ին ավելացվել է բարդ կառուցվածքների և զանգվածների աջակցություն;
    • Ավելացվել է Windows Script-ի գործարկման ժամանակի գրադարանի նախնական իրականացումը;
    • Ավելացվել է ADO (Microsoft ActiveX Data Objects) գրադարանի նախնական ներդրումը;
  • Տեղադրողներ
    • Կարկատանների առաքման աջակցությունը (Patch Files) իրականացվել է MSI տեղադրողի համար;
    • WUSA (Windows Update Standalone Installer) կոմունալ ծրագիրը այժմ հնարավորություն ունի թարմացումներ տեղադրել .MSU ձևաչափով;
  • ARM հարթակ
    • ARM64 ճարտարապետության համար ntdll-ին ավելացվել է stack unwinding-ի աջակցություն: Ավելացվել է արտաքին libunwind գրադարանների միացման աջակցություն;
    • ARM64 ճարտարապետության համար անխափան պրոքսիների աջակցությունն իրականացվել է օբյեկտների միջերեսների համար.
  • Զարգացման գործիքներ / Winelib
    • Ավելացրել է Visual Studio-ից վրիպազերծիչն օգտագործելու հնարավորություն՝ Wine-ով աշխատող հավելվածները հեռակա կարգաբերելու համար;
    • DBGENG (Debug Engine) գրադարանը մասամբ ներդրվել է.
    • Windows-ի համար կազմված երկուականներն այլևս կախված չեն libwine-ից՝ թույլ տալով նրանց աշխատել Windows-ում առանց լրացուցիչ կախվածության;
    • Resource Compiler-ին և IDL Compiler-ին ավելացվել է «--sysroot» տարբերակը՝ վերնագրի ֆայլերի ուղին որոշելու համար;
    • Winegcc-ին ավելացրել են «—target», «—wine-objdir», «—wine-objdir» տարբերակները
      «—winebuild» և «-fuse-ld», որոնք պարզեցնում են խաչաձև կոմպիլյացիայի միջավայրի ստեղծումը.

  • Ներկառուցված հավելվածներ
    • Իրականացրել է CHCP կոմունալ՝ վահանակի կոդավորումը կարգավորելու համար;
    • Գործարկվել է MSI ձևաչափով տվյալների բազաների մանիպուլյացիայի համար նախատեսված MSIDB ծրագիրը.
  • Կատարողականի օպտիմալացում
    • Տարբեր ժամանակային գործառույթներ տեղափոխվել են՝ օգտագործելու համակարգի ժմչփի բարձր արդյունավետության գործառույթները՝ նվազեցնելով շատ խաղերի ռենդերային հանգույցի ծախսերը.
    • Ավելացվեց FS-ում Ext4-ի օգտագործման հնարավորությունը ռեժիմ աշխատել առանց գործի զգայունության;
    • LBS_NODATA ռեժիմում գործող ցուցակի ցուցադրման երկխոսություններում մեծ թվով տարրերի մշակման կատարումը օպտիմիզացվել է.
    • Ավելացվեց SRW կողպեքների ավելի արագ իրականացում (Slim Reader/Writer) Linux-ի համար՝ թարգմանված Futex-ի համար;
  • Արտաքին կախվածություններ
    • PE ձևաչափով մոդուլներ հավաքելու համար օգտագործվում է MinGW-w64 խաչաձև կոմպիլյատորը;
    • XAudio2-ի ներդրման համար անհրաժեշտ է FAudio գրադարան;
    • BSD համակարգերում ֆայլերի փոփոխություններին հետևելու համար
      օգտագործվում է Inotify գրադարանը.

    • ARM64 հարթակում բացառությունները կարգավորելու համար պահանջվում է Unwind գրադարանը.
    • Video4Linux1-ի փոխարեն այժմ պահանջվում է Video4Linux2 գրադարանը:

Source: opennet.ru

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