Wine 5.0 тұрақты шығарылымы

Бір жыл әзірлегеннен кейін және 28 эксперименттік нұсқасы ұсынылды Win32 API ашық енгізуінің тұрақты шығарылымы - Шарап 5.0, ол 7400-ден астам өзгерістерді қамтиды. Жаңа нұсқаның негізгі жетістіктеріне PE форматындағы кірістірілген Wine модульдерін жеткізу, көп мониторлы конфигурацияларды қолдау, XAudio2 аудио API жаңа іске асыру және Vulkan 1.1 графикалық API қолдауы кіреді.

Шарапта расталды Windows жүйесіне арналған 4869 (бір жыл бұрын 4737) бағдарлама толық жұмыс істейді, тағы 4136 (бір жыл бұрын 4045) бағдарлама қосымша параметрлермен және сыртқы DLL файлдарымен тамаша жұмыс істейді. 3635 бағдарламада негізгі қолданба функцияларын пайдалануға кедергі келтірмейтін шағын өнімділік мәселелері бар.

Кілт инновациялар Шарап 5.0:

  • PE форматындағы модульдер
    • MinGW компиляторымен Wine модульдерінің көпшілігі қазір ELF орнына PE (Portable Executable, Windows жүйесінде пайдаланылады) орындалатын файл пішімінде салынған. PE пайдалану дискідегі және жадтағы жүйелік модульдердің сәйкестігін тексеретін көшіруден қорғаудың әртүрлі схемаларын қолдау мәселелерін шешеді;
    • PE орындалатын файлдар енді жалған DLL файлдарын пайдаланудың орнына ~/.wine ($WINEPREFIX) каталогына көшіріледі, бұл файлдарды нақты Windows орнатуларына ұқсас етеді, бұл қосымша диск кеңістігін тұтыну есебінен;
    • PE пішіміне түрлендірілген модульдер стандартты пайдалана алады wchar Юникодпен C функциялары мен тұрақтылары (мысалы, L"abc");
    • Wine C орындалу уақыты DLL файлдарын құру кезінде MinGW орындалу уақытының орнына әдепкі бойынша пайдаланылатын MinGW жүйесінде орнатылған екілік файлдармен байланыстыру қолдауын қосты;
  • Графикалық ішкі жүйе
    • Параметрлерді динамикалық өзгерту мүмкіндігін қоса, бірнеше мониторлармен және графикалық адаптерлермен жұмыс істеуге қолдау қосылды;
    • 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 текстураларды жүктеген кезде қажетті мекенжай кеңістігінің өлшемі азайтылды (толық жүктеудің орнына, текстуралар бөліктермен жүктеледі).
    • Интерфейс енгізілді ID3D11Multithread көп ағынды қолданбаларда маңызды бөлімдерді қорғау үшін;
    • Ескі DirectDraw қолданбалары үшін жарықтандыру есептеулеріне қатысты әртүрлі жақсартулар мен түзетулер жасалды;
    • API ішіндегі шейдерлер туралы ақпаратты алу үшін қосымша қоңыраулар енгізілді ShaderReflection;
    • wined3d енді қолдайды жылтыр Қысылған ресурстарды өңдеуге арналған орталық процессор;
    • Direct3D-де танылған графикалық карталардың дерекқоры кеңейтілді;
    • Жаңа HKEY_CURRENT_USER\Software\Wine\Direct3D тізілім кілттері қосылды: “shader_backend” (шейдерлермен жұмыс істеуге арналған бэкэнд: GLSL үшін “glsl”, ARB шыңы/фрагменті үшін “arb” және шейдер қолдауын өшіру үшін “жоқ”), “strict_shader_math” 0x1 - қосу, 0x0 - Direct3D шейдер түрлендіруін өшіру). "UseGLSL" кілті ескірген ("shader_backend" пайдалану керек);
  • D3DX
    • S3TC (S3 Texture Compression) 3D текстураны қысу механизмін қолдау жүзеге асырылды;
    • Текстураны толтыру және кескінделмейтін беттер сияқты операциялардың дұрыс орындалуы қосылды;
    • Жасау шеңберіне әртүрлі жақсартулар мен түзетулер енгізілді көрнекі әсерлер;
  • Ядро (Windows ядросының интерфейстері)
    • Kernel32-де қолданылатын функциялардың көпшілігі келесіге ауыстырылды
      KernelBase, Windows архитектурасындағы өзгерістерден кейін;

    • Жүктеу үшін пайдаланылатын каталогтарда 32 және 64 биттік DLL файлдарын араластыру мүмкіндігі. Ағымдағы бит тереңдігіне сәйкес келмейтін кітапханалардың еленбеуін қамтамасыз етеді (32/64), егер ары қарай жол бойында ағымдағы бит тереңдігіне сәйкес кітапхананы табуға болады;
    • Құрылғы драйверлері үшін ядро ​​объектілерін эмуляциялау жақсартылды;
    • Ядро деңгейінде жұмыс істейтін синхрондау нысандары, мысалы, айналдыру құлыптары, жылдам мутекстер және ресурсқа тіркелген айнымалылар;
    • Қолданбалардың батарея күйі туралы дұрыс хабардар болуын қамтамасыз етеді;
  • Пайдаланушы интерфейсі және жұмыс үстелі интеграциясы
    • Кішірейтілген терезелер енді Windows 3.1 мәнері белгішесін емес, тақырып жолын пайдалану арқылы көрсетіледі;
    • Жаңа түйме стильдері қосылды Бөлу түймесі (әрекеттердің ашылмалы тізімі бар түйме) және Командалық сілтемелер (келесі кезеңге өту үшін пайдаланылатын диалогтық терезелердегі сілтемелер);
    • Unix жүйелеріндегі сәйкес каталогтарды көрсететін «Жүктеулер» және «Үлгілер» қалталары үшін символдық сілтемелер жасалды;
  • Кіріс құрылғылары
    • Іске қосу кезінде қажетті Plug & Play құрылғы драйверлері орнатылады және жүктеледі;
    • Мини-джойстик (шляпа қосқышы), руль дөңгелегі, газ және тежегіш педальдарды қоса, ойын контроллері үшін жақсартылған қолдау.
    • 2.2 нұсқасына дейін Linux ядроларында пайдаланылған ескі Linux джойстик API қолдауы тоқтатылды;
  • .NET
    • Mono механизмі 4.9.4 нұсқасын шығару үшін жаңартылды және қазір Windows Presentation Foundation (WPF) құрылымының бөліктерін қамтиды;
    • Mono және Gecko көмегімен қондырмаларды бір жалпы каталогқа орнату мүмкіндігі қосылды, файлдарды жаңа префикстерге көшірудің орнына /usr/share/wine иерархиясына орналастырады;
  • Желілік мүмкіндіктер
    • MSHTML кітапханасында пайдаланылатын Wine Gecko шолғышының қозғалтқышы 2.47.1 шығарылымы үшін жаңартылды. Жаңа HTML API интерфейстерін қолдау жүзеге асырылды;
    • MSHTML енді SVG элементтерін қолдайды;
    • Көптеген жаңа VBScript функциялары қосылды (мысалы, қателерді және ерекше жағдайларды өңдеушілер, Hour, Day, Month, String, LBound, RegExp.Replace, РScriptTypeInfo_* және ScriptTypeComp_Bind* функциялары және т.б.);
    • VBScript және JScript-те код күйінің сақталуы қамтамасыз етілген (скрипттің тұрақтылығы);
    • HTTP протоколын пайдаланып сұрауларды жіберетін және қабылдайтын клиенттік және серверлік қолданбаларға арналған HTTP қызметінің (WinHTTP) және байланысты API (HTTPAPI) бастапқы іске асыруы қосылды;
    • DHCP арқылы HTTP прокси параметрлерін алу мүмкіндігі енгізілді;
    • Microsoft Passport қызметі арқылы аутентификация сұрауларын қайта бағыттауға қолдау қосылды;
  • Криптография
    • GnuTLS пайдалану кезінде эллиптикалық қисық криптографиялық кілттерге (ECC) қолдау енгізілді;
    • PFX пішіміндегі файлдардан кілттер мен сертификаттарды импорттау мүмкіндігі қосылды;
    • PBKDF2 құпия сөзіне негізделген кілттерді генерациялау схемасына қолдау қосылды;
  • Мәтін және қаріптер
    • DirectWrite API енгізуі қатысты OpenType мүмкіндіктеріне қолдауды қосты глифтің орналасуы, олар латын стилі үшін әдепкі бойынша қосылған, оның ішінде кернинг;
    • Қолданар алдында әртүрлі деректер кестелерінің дұрыстығын тексеру арқылы қаріп деректерін өңдеу қауіпсіздігі жақсарды;
    • DirectWrite интерфейстері соңғы SDK-ға сәйкестендірілді;
  • Дыбыс және бейне
    • Дыбыстық API жаңа енгізуі ұсынылды XAudio2, жоба негізінде салынған FAudio. Шарапта FAudio пайдалану ойындарда жоғары дыбыс сапасына қол жеткізуге және дыбыс деңгейін араластыру және кеңейтілген дыбыс әсерлері сияқты мүмкіндіктерді пайдалануға мүмкіндік береді;
    • Media Foundation негізін іске асыруға көптеген жаңа қоңыраулар қосылды, оның ішінде кірістірілген және реттелетін асинхронды кезектерді қолдау, Source Reader API, Media Session және т.б.
    • Бейне түсіру сүзгісі v4l2 API орнына v4l1 API пайдалануға ауыстырылды, ол қолдау көрсетілетін камералар ауқымын кеңейтті;
    • Ендірілген AVI, MPEG-I және WAVE декодерлері жойылды, олардың орнына қазір GStreamer немесе QuickTime жүйесі пайдаланылады;
    • VMR7 конфигурациясының API жиыны қосылды;
    • Дыбыс драйверлеріне жеке арналардың дыбыс деңгейін реттеуге қолдау қосылды;
  • Интернационалдандыру
    • Юникод кестелері 12.1.0 нұсқасына жаңартылды;
    • Юникодты қалыпқа келтіруге қолдау көрсетілді;
    • Ағымдағы тілге негізделген географиялық аймақты автоматты орнату қамтамасыз етілген (HKEY_CURRENT_USER\Басқару тақтасы\International\Geo);
  • RPC/COM
    • Typelib бағдарламасына күрделі құрылымдар мен массивтерге қолдау қосылды;
    • Windows Script жұмыс уақыты кітапханасының бастапқы іске асырылуы қосылды;
    • ADO (Microsoft ActiveX Data Objects) кітапханасының бастапқы іске асырылуы қосылды;
  • Орнатушылар
    • MSI орнатушысы үшін патчтарды (патч файлдары) жеткізуге қолдау көрсетілді;
    • WUSA (Windows Update Standalone Installer) утилитасының енді .MSU пішімінде жаңартуларды орнату мүмкіндігі бар;
  • ARM платформасы
    • ARM64 архитектурасы үшін ntdll файлына стекті босатуға қолдау қосылды. Сыртқы libunwind кітапханаларын қосу үшін қосылған қолдау;
    • ARM64 архитектурасы үшін объект интерфейстері үшін үздіксіз проксилерді қолдау жүзеге асырылды;
  • Әзірлеу құралдары / Winelib
    • Wine жүйесінде іске қосылған қолданбаларды қашықтан жөндеу үшін Visual Studio бағдарламасынан жөндеу құралын пайдалану мүмкіндігі қосылды;
    • DBGENG (Debug Engine) кітапханасы жартылай енгізілді;
    • Windows үшін құрастырылған екілік файлдар енді libwine-ге тәуелді емес, бұл оларды Windows жүйесінде қосымша тәуелділіктерсіз іске қосуға мүмкіндік береді;
    • Тақырып файлдарының жолын анықтау үшін Ресурс құрастырушысына және IDL компиляторына '--sysroot' опциясы қосылды;
    • Winegcc файлына '—target', '—wine-objdir', '—wine-objdir' опциялары қосылды.
      ‘—winebuild’ және ‘-fuse-ld’, олар кросс компиляция үшін ортаны орнатуды жеңілдетеді;

  • Енгізілген қолданбалар
    • Консольді кодтауды конфигурациялау үшін CHCP утилитасын енгізді;
    • MSI пішіміндегі дерекқорларды манипуляциялауға арналған MSIDB утилитасы енгізілді;
  • Өнімділікті оңтайландыру
    • Көптеген ойындардың көрсету цикліндегі үстеме шығындарды азайтып, жоғары өнімді жүйе таймер функцияларын пайдалану үшін әртүрлі уақыт функциялары көшірілді;
    • FS жүйесінде Ext4 пайдалану мүмкіндігі қосылды режим регистр сезімталдығы жоқ жұмыс;
    • LBS_NODATA режимінде жұмыс істейтін тізімді көрсету диалогтарындағы элементтердің үлкен санын өңдеу өнімділігі оңтайландырылған;
    • Futex тіліне аударылған Linux үшін SRW құлыптарын (Slim Reader/Writer) жылдамырақ енгізу қосылды;
  • Сыртқы тәуелділіктер
    • PE форматындағы модульдерді құрастыру үшін MinGW-w64 кросс-компиляторы қолданылады;
    • XAudio2 енгізу үшін FAudio кітапханасы қажет;
    • BSD жүйелеріндегі файл өзгерістерін қадағалау
      Inotify кітапханасы пайдаланылады;

    • ARM64 платформасындағы ерекшеліктерді өңдеу үшін Unwind кітапханасы қажет;
    • Video4Linux1 орнына енді Video4Linux2 кітапханасы қажет.

Ақпарат көзі: opennet.ru

пікір қалдыру