A Wine 5.0 stabil kiadása

Egy év fejlesztés és 28 kísérleti verzió után bemutatott a Win32 API nyílt megvalósításának stabil kiadása - Bor 5.0, amely több mint 7400 módosítást tartalmazott. Az új verzió legfontosabb vívmányai közé tartozik a beépített Wine modulok PE formátumú szállítása, a többmonitoros konfigurációk támogatása, az XAudio2 audio API új megvalósítása és a Vulkan 1.1 grafikus API támogatása.

Borban megerősített 4869 (egy éve 4737) program teljes körű működése Windowsra, további 4136 (egy éve 4045) program tökéletesen működik kiegészítő beállításokkal és külső DLL-ekkel. 3635 programnak vannak kisebb teljesítménybeli problémái, amelyek nem akadályozzák az alkalmazás alapvető funkcióinak használatát.

Kulcs innovációk Wine 5.0:

  • Modulok PE formátumban
    • A MinGW fordítóval a legtöbb Wine modul most már PE (Portable Executable, Windowson használt) futtatható fájlformátumban épül fel ELF helyett. A PE használata megoldja a különféle másolásvédelmi sémák támogatásával kapcsolatos problémákat, amelyek ellenőrzik a rendszermodulok azonosságát a lemezen és a memóriában;
    • A PE végrehajtható fájlok most a ~/.wine ($WINEPREFIX) könyvtárba kerülnek átmásolásra, ahelyett, hogy ál-DLL-fájlokat használnának, így a cucc jobban hasonlít a valódi Windows-telepítésekhez, további lemezterület fogyasztása árán;
    • A PE formátumba konvertált modulok szabványt használhatnak wchar C függvények és konstansok Unicode-dal (például L"abc");
    • A Wine C futtatókörnyezete kiegészítette a MinGW-ben beépített binárisokkal való összekapcsolás támogatását, amely alapértelmezés szerint a MinGW futtatókörnyezet helyett használatos DLL-ek készítésekor;
  • Grafikai alrendszer
    • Hozzáadott támogatás több monitorral és grafikus adapterrel való munkavégzéshez, beleértve a beállítások dinamikus módosításának lehetőségét;
    • A Vulkan grafikus API illesztőprogramja frissítve lett, hogy megfeleljen a Vulkan 1.1.126 specifikációnak;
    • A WindowsCodecs könyvtár lehetőséget biztosít további raszteres formátumok konvertálására, beleértve az indexelt palettával rendelkező formátumokat is;
  • Direct3D
    • Teljes képernyős Direct3D alkalmazások futtatásakor a képernyővédő hívás blokkolva van;
    • A DXGI (DirectX Graphics Infrastructure) támogatást adott az alkalmazásoknak az ablak minimalizálása esetén történő tájékoztatására, ami lehetővé teszi az alkalmazás számára, hogy csökkentse az erőforrás-igényes műveletek teljesítményét az ablak minimalizálása során;
    • A DXGI-t használó alkalmazásoknál most már lehetőség van a teljes képernyős és az ablakos mód közötti váltásra az Alt+Enter kombinációval;
    • Bővültek a Direct3D 12 megvalósításának lehetőségei, így például már támogatja a teljes képernyős és az ablakos módok közötti váltást, a képernyő módok váltását, a kimenet skálázását és a renderelő puffer csereintervallumának kezelését (swap intervallum);
    • Különböző határhelyzetek jobb kezelése, mint például a tartományon kívüli bemeneti értékek használata az átlátszósági és mélységi tesztekhez, a tükrözött textúrákkal és pufferekkel történő renderelés, valamint a helytelen DirectDraw objektumok használata nyírógép, Direct3-eszközök létrehozása helytelen ablakokhoz, látható területek használatával, amelyek minimális paraméterértékei megegyeznek a maximummal stb.
    • A Direct3D 8 és 9 pontosabb nyomkövetést biztosítpiszkos» betöltött textúrák területei;
    • Az S3TC módszerrel tömörített 3D textúrák betöltésekor a szükséges címtér mérete csökkent (a teljes betöltés helyett a textúrák darabokban töltődnek be).
    • Interfész megvalósítva ID3D11Multithread a kritikus szakaszok védelme többszálas alkalmazásokban;
    • A világítási számításokkal kapcsolatos különféle fejlesztések és javítások történtek a régebbi DirectDraw alkalmazásokhoz;
    • További hívások végrehajtása az API árnyékolóival kapcsolatos információk megszerzéséhez ShaderReflection;
    • A wined3d már támogatja csillogó CPU-alapú a tömörített erőforrások feldolgozásához;
    • Bővült a Direct3D-ben felismert grafikus kártyák adatbázisa;
    • Új rendszerleíró kulcsok hozzáadva: HKEY_CURRENT_USER\Software\Wine\Direct3D: „shader_backend” (háttér a shaderekkel való munkához: „glsl” a GLSL-hez, „arb” az ARB vertexhez/töredékhez és „none” a shader támogatásának letiltásához), „strict_shader_math” ( 0x1 - engedélyezés, 0x0 - Direct3D shader konverzió letiltása). Elavult a "UseGLSL" kulcs (a "shader_backend"-et kell használnia);
  • D3DX
    • Az S3TC (S3 Texture Compression) 3D textúratömörítési mechanizmus támogatása megtörtént;
    • A műveletek helyes megvalósítása hozzáadva, mint például a textúra kitöltés és a nem leképezhető felületek;
    • Különféle fejlesztések és javítások történtek a létrehozási keretrendszeren vizuális effektek;
  • Kernel (Windows Kernel interfészek)
    • A Kernel32-ben használt legtöbb funkció átkerült ide
      KernelBase, a Windows architektúra változásait követően;

    • Lehetőség 32 és 64 bites DLL-ek keverésére a betöltéshez használt könyvtárakban. Biztosítja, hogy a program figyelmen kívül hagyja azokat a könyvtárakat, amelyek nem egyeznek az aktuális bitmélységgel (32/64), abban az esetben, ha az útvonalon tovább lehet találni az aktuális bitmélységnek megfelelő könyvtárat;
    • Az eszköz-illesztőprogramok esetében a kernelobjektumok emulációja javult;
    • Megvalósított szinkronizálási objektumok, amelyek a kernel szintjén működnek, mint például a spin-lockok, a gyors mutexek és az erőforrásokhoz csatolt változók;
    • Biztosítja, hogy az alkalmazások megfelelően értesüljenek az akkumulátor állapotáról;
  • Felhasználói felület és asztali integráció
    • A kicsinyített ablakok mostantól címsorral jelennek meg a Windows 3.1 stílusikonja helyett;
    • Új gombstílusok hozzáadva SplitButton (gomb a műveletek legördülő listájával) és Parancs hivatkozások (a párbeszédpanelek hivatkozásai a következő szakaszra való ugráshoz);
    • A „Letöltések” és a „Sablonok” mappákhoz szimbolikus hivatkozások készültek, amelyek a megfelelő könyvtárakra mutatnak Unix rendszereken;
  • Bemeneti eszközök
    • Indításkor telepítik és betöltik a szükséges Plug & Play eszközillesztőket;
    • A játékvezérlők továbbfejlesztett támogatása, beleértve a mini joystick-ot (kalapkapcsolót), a kormányt, a gáz- és fékpedált.
    • A 2.2-es verzió előtti Linux kernelekben használt régi Linux joystick API támogatása megszűnt;
  • . NET
    • A Mono motort a 4.9.4-es kiadásra frissítették, és mostantól a Windows Presentation Foundation (WPF) keretrendszer részeit tartalmazza;
    • Hozzáadtuk a Mono és Gecko kiegészítők telepítésének lehetőségét egy közös könyvtárba, a fájlok a /usr/share/wine hierarchiába helyezve ahelyett, hogy új előtagokra másolnák őket;
  • Hálózati szolgáltatások
    • Az MSHTML könyvtárban használt Wine Gecko böngészőmotor frissítve a 2.47.1-es verzióra. Az új HTML API-k támogatása megvalósult;
    • Az MSHTML mostantól támogatja az SVG elemeket;
    • Számos új VBScript függvény hozzáadva (például hiba- és kivételkezelők, óra, nap, hónap, karakterlánc, LBound, RegExp.Replace, РScriptTypeInfo_* és ScriptTypeComp_Bind* függvények stb.);
    • A kód állapotának megőrzése VBScript-ben és JScript-ben (script perzisztencia);
    • A HTTP-szolgáltatás (WinHTTP) és a kapcsolódó API (HTTPAPI) kezdeti megvalósítása hozzáadva a HTTP-protokoll használatával kéréseket küldő és fogadó kliens- és szerveralkalmazásokhoz;
    • Megvalósította a HTTP-proxy beállítások DHCP-n keresztüli lekérését;
    • Támogatás hozzáadva a hitelesítési kérelmek átirányításához a Microsoft Passport szolgáltatáson keresztül;
  • kriptográfia
    • Elliptikus görbe kriptográfiai kulcsok (ECC) megvalósítása GnuTLS használatakor;
    • Hozzáadtuk a kulcsok és tanúsítványok importálásának lehetőségét PFX formátumú fájlokból;
    • Hozzáadott támogatás a kulcsgeneráláshoz a PBKDF2 jelszó alapján;
  • Szöveg és betűtípusok
    • A DirectWrite API megvalósítása hozzáadta a következőhöz kapcsolódó OpenType-funkciók támogatását glyph pozicionálás, amelyek alapértelmezés szerint engedélyezve vannak a latin stílushoz, beleértve a lekeringést is;
    • Fokozott biztonság a fontadatok feldolgozásához a különféle adattáblázatok használat előtti helyességének ellenőrzésével;
    • A DirectWrite felületek összhangba kerültek a legújabb SDK-val;
  • Hang és videó
    • A hang API új megvalósítását javasolták XAudio2projekt alapján épült FAudio. A FAudio in Wine használatával jobb hangminőséget érhet el a játékokban, és használhat olyan funkciókat, mint a hangerő-keverés és a fejlett hangeffektusok;
    • A Media Foundation keretrendszer megvalósítása számos új hívással bővült, beleértve a beépített és egyéni aszinkron sorok támogatását, a Source Reader API-t, a Media Sessiont stb.
    • A videorögzítési szűrőt a v4l2 API használatára állították át a v4l1 API helyett, ami kibővítette a támogatott kamerák körét;
    • Eltávolították a beépített AVI, MPEG-I és WAVE dekódereket, helyettük most a GStreamer vagy a QuickTime rendszert használják;
    • A VMR7 konfigurációs API-k egy részhalmaza hozzáadva;
    • Hozzáadott támogatás az egyes csatornák hangerejének beállításához a hangvezérlőkhöz;
  • Nemzetközivé válás
    • Unicode táblák frissítve a 12.1.0 verzióra;
    • Bevezetett támogatás a Unicode normalizáláshoz;
    • A földrajzi régió (HKEY_CURRENT_USER\Control Panel\International\Geo) automatikus telepítése az aktuális területi beállítás alapján;
  • RPC/COM
    • Komplex struktúrák és tömbök támogatása hozzáadva a typelibhez;
    • A Windows Script futásidejű könyvtár kezdeti megvalósítása hozzáadva;
    • Az ADO (Microsoft ActiveX Data Objects) könyvtár kezdeti megvalósítása hozzáadva;
  • Telepítők
    • A javítások (Patch Files) szállításának támogatása megvalósult az MSI telepítőhöz;
    • A WUSA (Windows Update Standalone Installer) segédprogram mostantól képes .MSU formátumú frissítéseket telepíteni;
  • ARM platform
    • Az ARM64 architektúra esetében az ntdll-hez hozzáadták a verem feloldásának támogatását. Hozzáadott támogatás külső libunwind könyvtárak csatlakoztatásához;
    • Az ARM64 architektúra esetében a zökkenőmentes proxy-k támogatása megvalósult az objektum interfészek számára;
  • Fejlesztőeszközök / Winelib
    • Hozzáadtuk a Visual Studio hibakeresőjének használatát a Wine-ban futó alkalmazások távoli hibakereséséhez;
    • A DBGENG (Debug Engine) könyvtár részben megvalósult;
    • A Windowsra fordított binárisok már nem függenek a libwine-től, így további függőségek nélkül futhatnak Windowson;
    • A „--sysroot” opció hozzáadva a Resource Compilerhez és az IDL Compilerhez a fejlécfájlok elérési útjának meghatározásához;
    • Hozzáadott "—cél", "-wine-objdir", "-wine-objdir" opciók a winegcc-hez
      „—winebuild” és „-fuse-ld”, amelyek leegyszerűsítik a kereszt-összeállítás környezetének beállítását;

  • Beágyazott alkalmazások
    • Megvalósított egy CHCP segédprogramot a konzolkódolás konfigurálásához;
    • Megvalósult az MSIDB segédprogram az MSI formátumú adatbázisok kezelésére;
  • A teljesítmény optimalizálása
    • Számos időzítési funkciót áttelepítettek a nagy teljesítményű rendszeridőzítő funkciók használatára, csökkentve ezzel sok játék renderelési ciklusának többletköltségét;
    • Hozzáadtuk az Ext4 használatának lehetőségét az FS-ben rezsim kis- és nagybetűk megkülönböztetése nélkül dolgozzon;
    • Az LBS_NODATA módban működő listamegjelenítési párbeszédpanelekben nagyszámú elem feldolgozásának teljesítménye optimalizálva lett;
    • Az SRW-zárak (Slim Reader/Writer) gyorsabb megvalósítása hozzáadva Linuxhoz, Futexre lefordítva;
  • Külső függőségek
    • A modulok PE formátumú összeállításához a MinGW-w64 keresztfordítót használják;
    • Az XAudio2 megvalósításához a FAudio könyvtárra van szükség;
    • Fájlváltozások nyomon követése BSD rendszereken
      az Inotify könyvtárat használják;

    • A kivételek kezeléséhez az ARM64 platformon a Unwind könyvtár szükséges;
    • A Video4Linux1 helyett a Video4Linux2 könyvtárra van szükség.

Forrás: opennet.ru

Hozzászólás