A Wine egy Windows-kompatibilitási réteg, amely lehetővé teszi a felhasználók számára, hogy Windows-alkalmazásokat más operációs rendszereken is futtatjanak. A Wine for Android elérte a 5.0-t – nézze meg!
Az Android-alkalmazások ökoszisztémája folyamatosan fejlődött az Android fennállásának évei során, amelyet a legtöbb ember számára az elsődleges számítógépes interakciós eszközként való mobilhasználat folyamatos elterjedése ösztönzött. Sok felhasználó a csak mobileszközöket használó életmód felé hajlott, és ennek az az oka, hogy a mobilalkalmazások és az alkalmazásökoszisztéma kielégítette sajátos igényeit. De ha valaha is úgy találná, hogy szüksége lenne egy asztali alkalmazásra anélkül, hogy hozzáférne egy asztali számítógéphez, mit tenne? Itt jön a Wine, a Windows-kompatibilitási réteg, amely lehetővé teszi a felhasználók számára, hogy teljes körű Windows-alkalmazásokat futtassanak különböző operációs rendszereken. A Wine for Android rendelkezik most elérte a v5.0-t, egy évnyi fejlesztési erőfeszítést gyűjtött össze a csapattól.
A Wine egy ingyenes és nyílt forráskódú kompatibilitási réteg a Windows számára, amelynek célja, hogy lehetővé tegye a Windows számára kifejlesztett számítógépes programok más operációs rendszereken való futtatását. A Wine for Android elhozza a Wine-t Androidra, magától értetődően. A Wine nem egy emulátor (ami valójában a név rekurzív háttérneve), így csak futhat alkalmazások architektúra-specifikus verziói – a Wine for Android ARM verziója csak ARM alkalmazásokat futtat, és nem x86.
A Wine 5.0 stabil kiadásának legfontosabb elemei a többmonitoros támogatás és a Vulkan 1.1 támogatása. A frissítés teljes változásnaplója a következő:
Wine 5.0 változásnapló:
- PE modulok:
- A legtöbb modul PE formátumban (Portable Executable, a Windows bináris formátuma) épül ELF helyett, ha elérhető a MinGW fordító. Ez segít a különféle másolásvédelmi sémákban, amelyek ellenőrzik, hogy a rendszermodulok lemezen és memóriájában lévő tartalma azonos-e.
- A tényleges PE binárisokat a rendszer a Wine előtagba másolja a hamis DLL-fájlok helyett. Ezáltal az előtag inkább egy valódi Windows-telepítéshez hasonlít, némi extra lemezterület árán.
- A PE-re konvertált modulok használhatják a szabványos széles karakterű C függvényeket, valamint a széles karakterű karakterkonstansokat, mint például az L"abc". Ez megkönnyíti a kód olvashatóságát.
- Még nem minden modult konvertáltak PE-re; ez egy folyamatos folyamat, amely a Wine 5.x fejlesztési sorozat alatt is folytatódik.
- A Wine C futtatókörnyezet frissült, hogy támogassa a MinGW által lefordított binárisokhoz való hivatkozást; alapértelmezés szerint a MinGW futási ideje helyett használatos DLL-ek készítésekor.
- Grafika:
- Több kijelzőadapter és monitor megfelelően támogatott, beleértve a dinamikus konfigurációmódosításokat is.
- A Vulkan illesztőprogram a Vulkan specifikáció 1.1.126-os verziójáig támogatja.
- A WindowsCodecs könyvtár több bittérkép formátumot is képes konvertálni, beleértve a palettaindexelt formátumokat is.
- Direct3D:
- A teljes képernyős Direct3D alkalmazások gátolják a képernyővédőt.
- A DXGI swapchain megjeleníti az alkalmazást, ha a megfelelő ablak minimalizálva van. Ez általában lehetővé teszi az alkalmazások számára, hogy minimalizálva csökkentsék a CPU-használatot, és bizonyos esetekben szükséges az alkalmazásablak ismételt visszaállításához.
- A teljes képernyős és az ablakos módok közötti váltás a szabványos Alt+Enter kombinációval DXGI-alkalmazásokhoz valósult meg.
- A Direct3D 12 alkalmazásokhoz a következő funkciók valósulnak meg:
- Váltás a teljes képernyő és az ablak között.
- Megjelenítési módok megváltoztatása.
- Méretezett ajándékok.
- Időközök cseréje. Ezeket a funkciókat korábban már megvalósították a Direct3D API korábbi verzióiban.
- A különféle éles tokok kezelése javult. Többek között:
- Tartományon kívüli referenciaértékek az alfa- és a stenciltesztekhez.
- 2D erőforrások mintavétele 3D mintavevőkkel és fordítva.
- Rajzolás feltérképezett textúrákkal és pufferekkel.
- Érvénytelen DirectDraw vágóobjektumok használata.
- Direct3D-eszközök létrehozása érvénytelen Windows rendszeren, például az asztali ablakban.
- Nézőablakok, amelyeknél a minimális Z nagyobb vagy egyenlő, mint a maximális Z.
- Az erőforrások egyszerre vannak átkötve a shader-erőforrás nézeteken és a renderelési cél vagy a mélység-stencil nézeteken.
- Blits a formátumok között alfa-komponensekkel és anélkül. Mivel a jól működő alkalmazások nem támaszkodnak ezekre az éles esetekre, általában csak egy-két alkalmazást érintenek. Ennek ellenére elég sok van belőlük.
- A szennyezett textúra régiókat a rendszer pontosabban követi nyomon a Direct3D 8 és 9 textúrafeltöltéseknél.
- Az S3TC-vel tömörített 3D textúrák feltöltése kevesebb címterületet igényel. Mivel a 3D textúrák potenciálisan nagyok lehetnek, és a címterület kimerülése aggodalomra ad okot a 32 bites alkalmazásoknál, az S3TC-tömörített 3D textúrák szeletenként kerülnek feltöltésre, nem pedig egyetlen feltöltéssel.
- Az ID3D11Multithread interfész implementálva van.
- Különféle világítási számítási javításokat és fejlesztéseket végeztek a régebbi DirectDraw alkalmazásokhoz.
- A csereláncokon keresztüli blitek korlátozott támogatása megvalósul.
- Több shader tükrözési API kerül megvalósításra.
- A wined3d CPU blitter képes kezelni a tömörített forrásforrásokat. A tömörített cél-erőforrások támogatása már egy korábbi kiadásban megvalósult.
- A Direct3D grafikus kártya adatbázis több grafikus kártyát is felismer.
- Új HKEY_CURRENT_USER\Software\Wine\Direct3D rendszerleíró kulcsok:
- "shader_backend" (REG_SZ)A használandó shader háttérrendszer. A lehetséges értékek a következők: "glsl" (alapértelmezett) a GLSL-hez, "arb" az ARB csúcs-/töredékprogramokhoz és a "none" a shader támogatás letiltásához.
- "strict_shader_math" (REG_DWORD) Engedélyezze (0x1) vagy tiltsa le (0x0, alapértelmezett) a Direct3D shaderek szigorúbb fordítását, potenciálisan teljesítményköltséggel. Ez jelenleg csak az alapértelmezett GLSL shader háttérrendszer és a szabadalmaztatott NVIDIA illesztőprogramok mellett jelent különbséget.
- Elavult HKEY_CURRENT_USER\Software\Wine\Direct3D rendszerleíró kulcs:
- "UseGLSL"Ezt felváltotta a fenti "shader_backend" beállítás.
- D3DX:
- Támogatja a textúrák tömörítését S3TC-tömörítéssel.
- Különféle műveletek, mint pl. textúrakitöltések, a nem leképezhető felületeken pontosabban valósulnak meg. Korábban a megvalósításuk a mögöttes Direct3D implementációra támaszkodott, amely nem érvényesítette a leképezési korlátozásokat.
- Különféle fejlesztések és javítások történtek a hatáskereten.
- Kernel:
- A legtöbb funkció, amely korábban a Kernel32-ben volt, átkerült a KernelBase-be, hogy kövesse a legújabb Windows-verziók architektúráját.
- A nem megfelelő 32/64 bites könyvtárakat figyelmen kívül hagyja a rendszer, ha a keresési útvonalon találja őket, hogy a megfelelő betölthető legyen, ha az az elérési útban távolabb található.
- A kernelobjektumok jobban emulálhatók olyan eszköz-illesztőprogramokhoz, amelyek a kernel oldaláról várják az objektumokat.
- A rendszermag-szintű szinkronizálási objektumok, például a spin-lockok, a gyors mutexek, a zárolások eltávolítása és az erőforrásváltozók megvalósulnak.
- A rendszer akkumulátorának állapotát megfelelően jelentik az alkalmazások.
- Felhasználói felület:
- A kicsinyített ablakok a címsorukkal jelennek meg a régi Windows 3.1-stílusú ikonok helyett.
- Megvalósult az új gombstílusok, a Split Buttons és Command Links.
- A Szerkesztés vezérlő a CJK betűtípusok margóit is megfelelően állítja be.
- Asztali integráció:
- A megfelelő Unix könyvtárakra mutató szimbolikus hivatkozások jönnek létre a „Letöltések” és a „Sablonok” mappákhoz.
- Beviteli eszközök:
- A Plug & Play eszközillesztők telepíthetők és betölthetők indításkor.
- A játékvezérlők jobban támogatottak, beleértve a kalapkapcsoló, a kerék, a gáz- és a fékvezérlők megfelelő támogatását.
- A 2.2-nél régebbi Linux-verziók régi joystick API-ja már nem támogatott.
- .HÁLÓ:
- A Mono motor a 4.9.4-es verzióra frissült, beleértve a Windows Presentation Foundation (WPF) keretrendszer egyes részeit.
- A Gecko és Mono kiegészítők támogatják a megosztott telepítést, ahol a fájlok közvetlenül egy globális helyről kerülnek felhasználásra a /usr/share/wine alatt, ahelyett, hogy minden új előtagba másolnák őket.
- Internet és hálózat:
- A Gecko motort frissítik, hogy támogassa a legújabb szerszámláncokat.
- Számos új HTML API bevezetésre került.
- Az MSHTML néhány SVG elemet támogat.
- A VBScript támogatja a hibaobjektum- és kivételterjesztést.
- Számos VBScript beépített funkció van megvalósítva.
- A JScript EcmaScript-kompatibilis mód további funkciók támogatására bővült.
- A JScript és VBScript szkriptobjektumok típusinformációs felületeket tesznek közzé.
- A HTTP-proxy konfiguráció DHCP-n keresztül kérhető le.
- A Passport HTTP-átirányítások támogatottak.
- A HTTP szolgáltatás és a hozzá tartozó ügyféloldali könyvtár (HTTPAPI) részben implementálva van.
- Kriptográfia:
- Az ECC (elliptikus görbe) kulcsok támogatottak a GnuTLS használatakor.
- A kulcsok és tanúsítványok importálása a PFX-blobokból megvalósul.
- A PBKDF2 kulcs levezetési algoritmus támogatott.
- Szöveg és betűtípusok:
- Az OpenType pozicionálási funkciókat a DirectWrite támogatja, és alapértelmezés szerint engedélyezve van a latin szkripthez, beleértve a levágást is.
- A betűtípusadatok elérését biztonságosabbá teszi, ha a különféle adattáblákat használat előtt érvényesíti.
- A DirectWrite interfészek a legújabb SDK-ra frissülnek, és a legújabb API-kiegészítések közül néhányat megvalósítanak.
- Hang/videó:
- A jobb kompatibilitás érdekében az XAudio2-könyvtárakat a külső FAudio-könyvtár használatára újították fel.
- A Media Foundation könyvtárai kibővültek, többek között:
- Beépített és felhasználói aszinkron munkasorok támogatása.
- Lehetőség időszakos visszahívások, várakozási, ütemezett és rendszeres munkaelemek benyújtására, a tételprioritás támogatásával.
- Médiaesemény-sorok támogatása.
- Különféle alapvető API a médiatípus objektumok, adatfolyam- és prezentációs leírók, objektum attribútumok, bájtfolyam objektumok, minták és pufferek kezelésére.
- Kezdeti Source Resolver megvalósítás.
- A Source Reader API kezdeti megvalósítása.
- A Sample Grabber objektum megvalósítása.
- Alapvető támogatás a topológia objektumok felépítéséhez.
- Beépített prezentációs óra megvalósítás, megkezdődött a Media Session funkcionalitás megvalósítása.
- A videorögzítési szűrőt a v4l2 használatára portolták át az elavult v4l1 API helyett, lehetővé téve egyes kamerák használatát, amelyek nem támogatják a v4l1-et.
- A YUV RGB fordítás és a v4l2 eszközökről az mmap() használatával történő olvasás támogatása megszűnt; most mindkét dologban a libv4l2-től függünk.
- A beépített AVI, MPEG-I és WAVE dekódereket eltávolították; most a GStreamerre vagy a Mac QuickTime Toolkitre támaszkodunk az ilyen médiafájlok dekódolásában.
- Néhány további VMR7 konfigurációs API implementálva van.
- A hangvezérlők támogatják a hangerő csatornánkénti beállítását.
- Nemzetközivé válás:
- A Unicode karaktertáblázatok a Unicode szabvány 12.1.0-s verzióján alapulnak.
- Unicode normalizálás valósul meg.
- A földrajzi régió azonosítója a rendszerleíró adatbázisban automatikusan be van állítva az aktuális területi beállítás alapján. Szükség esetén módosítható a HKEY_CURRENT_USER\Control Panel\International\Geo alatt.
- A szingaléz és az asztúriai nyelvek támogatottak.
- A 28601-es kódlap (latin/thai) támogatott.
- RPC/COM:
- A typelib marshaller támogatja az összetett struktúrákat és tömböket.
- Létezik a Windows Script futásidejű könyvtár kezdeti megvalósítása.
- Létezik a Microsoft ActiveX Data Objects (ADO) könyvtár kezdeti megvalósítása.
- Telepítők:
- A Microsoft Installer (MSI) javítási fájlok támogatottak.
- A WUSA eszköz (Windows Update Standalone Installer) támogatja az .MSU frissítési fájlok telepítését.
- ARM platformok:
- A kivételes letekercselés az ARM64 esetében a libunwind könyvtár használatával valósul meg.
- Az OLE stubless proxykat az ARM64 támogatja.
- Fejlesztői eszközök / Winelib:
- A Visual Studio távoli hibakeresője használható a Wine alatt futó alkalmazások hibakeresésére.
- A Debug Engine könyvtár (DBGENG) részben implementálva van.
- A Windows-célokhoz épített bináris fájlok már nem függenek a libwine könyvtártól, így minden további függőség nélkül futhatnak Windowson. A libwine könyvtár már egyáltalán nem Windowshoz készült.
- A Resource Compiler és az IDL Compiler támogatja a „--sysroot” opciót, amely lehetővé teszi a fejlécfájlok megtalálását keresztfordítási környezetekben.
- A Winegcc támogatja a '--target', '--wine-objdir', '--winebuild' és '-fuse-ld' opciókat, amelyek megkönnyítik a keresztfordítóként vagy egyéni eszközláncokkal való használatát.
- A wine/unicode.h fejléc már nem érhető el az alkalmazások számára, mivel a funkciókat végül eltávolítják, és helyükre a szabványos C futásidejű karakterfüggvények lépnek.
- Infrastruktúra kiépítése:
- A tesztbinárisok PE formátumban épülnek fel, ha elérhető a MinGW, így ugyanaz a tesztbináris futtatható Wine-on és Windowson is. A „legkeresztezőbb” gyártmánycélra már nincs szükség, és már nincs támogatás.
- A „gyorshívás” hívási konvenciót a specifikációs fájlok támogatják. A Windows buildekhez a megfelelő névkezelést használja.
- Az "-import" belépési pont jelzőt a specifikációs fájlok támogatják, hogy megjelöljék azokat a funkciókat, amelyekhez hotpatch kód előtagot kell generálni az importáláshoz.
- A Winebuild támogatja a „--builtin” opciót, amellyel egy speciális aláírást adhatunk a PE binárisokhoz, amelyek Wine beépített elemként jelölik meg őket.
- Beépített alkalmazások:
- A CHCP eszköz implementálva van. Lehetővé teszi a konzol kódlapjának beállítását.
- Az MSIDB eszköz implementálva van. Lehetővé teszi az MSI adatbázisok kezelését.
- Teljesítménybeli fejlesztések:
- A különféle időfunkciók nagyobb teljesítményű rendszerórákat használnak, ha rendelkezésre állnak, hogy csökkentsék sok játék renderelési ciklusának többletköltségét.
- A fájlkeresések kihasználják az ext4 fájlrendszer-előrehajtás támogatását, ha az engedélyezve van a keresett könyvtárban.
- Az adat nélküli stílusú listadobozok (LBS_NODATA) jobb teljesítményt nyújtanak nagyszámú elem esetén.
- A vékony olvasó/író zárak, kulcsos események és feltételváltozók futexet használnak Linuxon, hogy elkerüljék a borszerver oda-vissza útját.
- Új külső függőségek:
- A MinGW-w64 keresztfordítót modulok PE formátumú építésére használják.
- A FAudio könyvtár az XAudio2 megvalósítására szolgál.
- Az Inotify könyvtár a fájlmódosítási értesítésekhez használható BSD platformokon.
- A Unwind könyvtár az ARM64 kivételkezelésére szolgál.
- A Video4Linux 2-es verziójának könyvtára használatos az 1-es verzió helyett.
Olvass tovább
Forrás: Bor HQ
Történet a következőn keresztül: AndroidPolice