Nach einem Jahr Entwicklung und 28 experimentellen Versionen wurde eine stabile Veröffentlichung der offenen Umsetzung der Win32 API â , die mehr als 7400 Ănderungen umfasst. Zu den wichtigsten Errungenschaften der neuen Version gehört die Bereitstellung von integrierten Wine-Modulen im PE-Format, die UnterstĂŒtzung von Multi-Monitor-Konfigurationen, die neue Implementierung der Audio-API XAudio2 und die UnterstĂŒtzung der Grafik-API Vulkan 1.1.
In Wine arbeiten jetzt 4869 (vor einem Jahr 4737) Windows-Programme vollstÀndig, weitere 4136 (vor einem Jahr 4045) Programme funktionieren hervorragend mit zusÀtzlichen Einstellungen und externen DLLs. Bei 3635 Programmen gibt es kleinere Probleme im Betrieb, die die grundlegenden Funktionen der Anwendungen nicht beeintrÀchtigen.
SchlĂŒssige Wine 5.0:
- Module im PE-Format
- Mit einem vorhandenen MinGW-Compiler werden die meisten Wine-Module nun im Format ausfĂŒhrbarer PE-Dateien (Portable Executable, verwendet in Windows) anstelle von ELF erstellt. Die Verwendung von PE löst Probleme mit der UnterstĂŒtzung verschiedener Kopierschutzmechanismen, die die IdentitĂ€t der Systemmodule auf der Festplatte und im Speicher ĂŒberprĂŒfen;
- Die PE-Dateien werden nun im Verzeichnis ~/.wine ($WINEPREFIX) gespeichert, anstelle von gefÀlschten DLL-Dateien, was die Struktur den tatsÀchlichen Windows-Installationen Àhnlicher macht, jedoch auf Kosten zusÀtzlicher Festplattenspeicherung;
- Module, die in das PE-Format konvertiert wurden, können die enthaltenen C-Funktionen und Unicode-Konstanten (z. B. L»abc»);
- In der Wine C-Laufzeit wurde die UnterstĂŒtzung fĂŒr das Binden an binĂ€re Dateien, die mit MinGW erstellt wurden, hinzugefĂŒgt, die beim Erstellen von DLL standardmĂ€Ăig anstelle der MinGW-Laufzeit verwendet wird;
- Grafiksubsystem
- Die UnterstĂŒtzung fĂŒr mehrere Monitore und Grafikkarten wurde hinzugefĂŒgt, einschlieĂlich der Möglichkeit, die Einstellungen dynamisch zu Ă€ndern;
- Der Treiber fĂŒr die Grafik-API Vulkan wurde aktualisiert und ist jetzt mit der Spezifikation Vulkan 1.1.126 konform;
- In der WindowsCodecs-Bibliothek wurde die Möglichkeit zur Konvertierung zusĂ€tzlicher Rasterformate, einschlieĂlich Indexpalette-Formaten, implementiert;
- Direct3D
- Bei der AusfĂŒhrung von Vollbildanwendungen mit Direct3D wird die Bildschirmsperre blockiert;
- In DXGI (DirectX Graphics Infrastructure) wurde die UnterstĂŒtzung hinzugefĂŒgt, um die Anwendung ĂŒber die Minimierung ihres Fensters zu informieren, was es der Anwendung ermöglicht, ressourcenintensive Operationen beim Minimieren des Fensters zu reduzieren;
- FĂŒr Anwendungen, die DXGI verwenden, wurde die Möglichkeit zur Umschaltung zwischen dem Vollbildmodus und dem Fensterinnenmodus durch die Kombination Alt+Enter implementiert;
- Die Implementierung von Direct3D 12 wurde erweitert, zum Beispiel wurde die UnterstĂŒtzung fĂŒr den Wechsel zwischen Vollbild- und Fenstermodus, Bildschirmmoduswechsel, Skalierungsausgaben und die Steuerung des swap intervals bei der Buffer-Rendering erhöht;
- Die Verarbeitung verschiedener GrenzfĂ€lle wurde verbessert, wie zum Beispiel die Verwendung von Werten auĂerhalb der zulĂ€ssigen Bereiche fĂŒr Transparenz- und Tiefentest, das Rendering mit reflektierenden Texturen und Buffern, die Verwendung von ungĂŒltigen DirectDraw-Objekten , das Erstellen von Direct3-GerĂ€ten fĂŒr ungĂŒltige Fenster, die Verwendung sichtbarer Bereiche, deren Parameter minimalen Werten entsprechen, die maximalen Werten gleich sind, usw.
- In Direct3D 8 und 9 wurde die genaue Verfolgung von ââ Bereichen der geladenen Texturen verbessert;
- Die GröĂe des benötigten Adressraums beim Laden von 3D-Texturen, die mit S3TC komprimiert sind, wurde verringert (an Stelle des vollstĂ€ndigen Ladevorgangs werden die Texturen in Teilen geladen).
- Es wurde eine ID3D11Multithread-Schnittstelle implementiert FĂŒr Ă€ltere DirectDraw-Anwendungen wurden verschiedene Verbesserungen und Korrekturen in Bezug auf die Lichtberechnung vorgenommen;
- ZusĂ€tzliche Aufrufe zur Beschaffung von Informationen ĂŒber Shader im API
- ShaderReflection ;
- CPU-basierte Blitter Die Datenbank der in Direct3D erkannten Grafikkarten wurde erweitert;
- Neue Registrierungswerte HKEY_CURRENT_USER\Software\Wine\Direct3D hinzugefĂŒgt: âshader_backendâ (Backend fĂŒr Shader-Verarbeitung: âglslâ fĂŒr GLSL, âarbâ fĂŒr ARB vertex/fragment und ânoneâ zum Deaktivieren der Shader-UnterstĂŒtzung), âstrict_shader_mathâ (0x1 â aktivieren, 0x0 â Deaktivieren der Shader-Konvertierung Direct3D). Der SchlĂŒssel âUseGLSLâ wurde als veraltet erklĂ€rt (verwenden Sie stattdessen âshader_backendâ);
- Die UnterstĂŒtzung fĂŒr das Komprimierungsverfahren 3D-Texturen S3TC (S3 Texture Compression) wurde implementiert;
- D3DX
- Es wurden korrekte Implementierungen fĂŒr VorgĂ€nge wie TexturfĂŒllung und unmappbare OberflĂ€chen hinzugefĂŒgt;
- Es wurden verschiedene Verbesserungen und Korrekturen im Framework zur Erstellung von
- visuellen Effekten ;
- Kernel (Kernel-Schnittstellen von Windows)
- KernelBase verschoben, um den Ănderungen in der Architektur von Windows zu entsprechen;
KernelBase, entsprechend den Ănderungen in der Windows-Architektur; - Die Möglichkeit, 32- und 64-Bit-DLLs in den verwendeten Verzeichnissen fĂŒr die Installation zu mischen. Es wird sichergestellt, dass Bibliotheken, die nicht mit der aktuellen Bit-Version (32/64) ĂŒbereinstimmen, ignoriert werden, falls spĂ€ter im Pfad eine passende Bibliothek fĂŒr die aktuelle Bit-Version gefunden wird;
- FĂŒr GerĂ€tetreiber wurde die Emulation von Kernelobjekten verbessert;
- Es wurden funktionierende Kernel-Level-Synchronisationsobjekte implementiert, wie Spinlocks, schnelle Mutexes und ressourcengebundene Variablen;
- Es wird eine korrekte Benachrichtigung der Anwendungen ĂŒber den Akkustand sichergestellt;
- KernelBase verschoben, um den Ănderungen in der Architektur von Windows zu entsprechen;
- BenutzeroberflÀche und Integration mit dem Desktop
- Minimierte Fenster werden jetzt mit einem Titel und nicht mit einem Icon im Stil von Windows 3.1 angezeigt;
- Neue Button-Stile hinzugefĂŒgt (Aktion-Combo-Button) und (Links in Dialogfenstern, die verwendet werden, um zur nĂ€chsten Phase zu wechseln);
- FĂŒr die Ordner 'Downloads' und 'Templates' wurden symbolische Links erstellt, die auf die entsprechenden Verzeichnisse in Unix-Systemen zeigen;
- EingabegerÀte
- Die Installation und der Download der erforderlichen Plug & Play-GerÀtetreiber werden beim Start sichergestellt;
- Die UnterstĂŒtzung fĂŒr Gamepads wurde verbessert, einschlieĂlich Mini-Joysticks (Hat Switch), LenkrĂ€der, Gas- und Bremspedalen.
- Die UnterstĂŒtzung des alten Linux-API fĂŒr die Interaktion mit Joysticks, die in Linux-Kernversionen vor 2.2 verwendet wird, wurde eingestellt;
- .NET
- Die Mono-Engine wurde auf Version 4.9.4 aktualisiert und umfasst jetzt Teile des Windows Presentation Foundation (WPF);
- Die Möglichkeit, Plugins von Mono und Gecko in ein gemeinsames Verzeichnis zu installieren, wurde hinzugefĂŒgt, wobei die Dateien in der Hierarchie /usr/share/wine anstelle eines Kopierens in neue PrĂ€fixe abgelegt werden;
- Netzwerkfunktionen
- Die Browser-Engine Wine Gecko, die in der Bibliothek MSHTML verwendet wird, wurde auf Version 2.47.1 aktualisiert. UnterstĂŒtzung fĂŒr neue HTML-APIs wurde implementiert;
- In MSHTML wurde die UnterstĂŒtzung fĂŒr SVG-Elemente implementiert;
- Viele neue Funktionen von VBScript wurden hinzugefĂŒgt (z. B. Fehler- und Ausnahmebehandler, Funktionen Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* und ScriptTypeComp_Bind* usw.);
- Die Zustandsbeibehaltung von Code in VBScript und JScript wurde sichergestellt (Script-Persistenz);
- Eine erste Implementierung des HTTP-Dienstes (WinHTTP) und der zugehörigen API (HTTPAPI) fĂŒr Client- und Serveranwendungen, die Anfragen ĂŒber das HTTP-Protokoll senden und empfangen, wurde hinzugefĂŒgt;
- Die Möglichkeit, die HTTP-Proxy-Einstellungen ĂŒber DHCP zu beziehen, wurde realisiert;
- UnterstĂŒtzung fĂŒr die Umleitung von Authentifizierungsanfragen ĂŒber den Microsoft Passport-Dienst hinzugefĂŒgt;
- Kryptographie
- UnterstĂŒtzung fĂŒr elliptische Kurven (ECC) bei der Verwendung von GnuTLS wurde hinzugefĂŒgt;
- Die Möglichkeit, SchlĂŒssel und Zertifikate aus PFX-Dateien zu importieren, wurde hinzugefĂŒgt;
- UnterstĂŒtzung fĂŒr das password-basierte SchlĂŒsselgenerierungsschema PBKDF2 wurde implementiert;
- Text und Schriftarten
- Im API von DirectWrite wurde die UnterstĂŒtzung fĂŒr OpenType-Funktionen, die sich auf Die Sicherheit der Verarbeitung von Schriftartdaten wurde durch die Validierung verschiedener Datentabellen vor ihrer Verwendung erhöht;
- Die Schnittstellen von DirectWrite wurden an das aktuelle SDK angepasst;
- Eine neue Implementierung der Audio-API
- Ton und Video
- XAudio2 . Die Verwendung von FAudio in Wine ermöglicht eine höhere AudioqualitĂ€t in Spielen und bietet Funktionen wie LautstĂ€rke-Mischung und erweiterte Audioeffekte; Eine groĂe Anzahl neuer Aufrufe in der Implementierung des Media Foundation-Frameworks wurde hinzugefĂŒgt, einschlieĂlich UnterstĂŒtzung fĂŒr integrierte und benutzerdefinierte asynchrone Warteschlangen, Source Reader API, Media Session usw.
- Der Video-Capture-Filter wurde so umgestellt, dass er API v4l2 anstelle von v4l1 API verwendet, was den unterstĂŒtzten Kamerabereich erweitert hat;
- Integrierte AVI-, MPEG-I- und WAVE-Dekoder wurden entfernt; stattdessen werden jetzt die systemeigenen GStreamer oder QuickTime verwendet;
- Ein Teilmenge der Konfigurations-API VMR7 wurde hinzugefĂŒgt;
- In die Audiotreiber wurde die UnterstĂŒtzung fĂŒr die LautstĂ€rkeregelung einzelner KanĂ€le integriert;
- Die UnterstĂŒtzung fĂŒr die Normalisierung von Unicode wurde implementiert;
- Internationalisierung
- Unicode-Tabellen auf Version 12.1.0 aktualisiert;
- Der geografische Standort wird automatisch basierend auf der aktuellen Locale eingestellt (HKEY_CURRENT_USER\Control Panel\International\Geo);
- RPC/COM
- Im typelib wurde die UnterstĂŒtzung fĂŒr komplexe Strukturen und Arrays hinzugefĂŒgt;
- Eine erste Implementierung der Runtime-Bibliothek Windows Script wurde hinzugefĂŒgt;
- Eine erste Implementierung der ADO-Bibliothek (Microsoft ActiveX Data Objects) wurde hinzugefĂŒgt;
- Installer
- FĂŒr den MSI-Installer wurde die UnterstĂŒtzung fĂŒr die Bereitstellung von Patches (Patch Files) implementiert;
- In der WUSA-Anwendung (Windows Update Standalone Installer) gibt es jetzt die Möglichkeit, Updates im .MSU-Format zu installieren;
- ARM-Plattform
- FĂŒr die ARM64-Architektur wurde die UnterstĂŒtzung fĂŒr stubless proxies fĂŒr Objekt-Schnittstellen implementiert;
- FĂŒr die ARM64-Architektur wurde in ntdll die UnterstĂŒtzung fĂŒr Stack-Unwinding hinzugefĂŒgt. Die Anbindung externer Bibliotheken von libunwind wurde hinzugefĂŒgt.
- Entwicklungswerkzeuge/Winelib
- Die Möglichkeit, den Debugger von Visual Studio fĂŒr das Remote-Debugging von Anwendungen, die in Wine ausgefĂŒhrt werden, zu verwenden, wurde hinzugefĂŒgt;
- Die DBGENG-Bibliothek (Debug Engine) wurde teilweise implementiert;
- Teilweise implementierte DBGENG-Bibliothek (Debug Engine);
- Die fĂŒr Windows erstellten ausfĂŒhrbaren Dateien hĂ€ngen nicht mehr von libwine ab, was die AusfĂŒhrung in Windows ohne zusĂ€tzliche AbhĂ€ngigkeiten ermöglicht.
- Im Resource Compiler und IDL Compiler wurde die Option ââsysrootâ hinzugefĂŒgt, um den Pfad zu den Header-Dateien zu bestimmen.
- Im winegcc wurden die Optionen ââtargetâ, ââwine-objdirâ, ââwinebuildâ und â-fuse-ldâ hinzugefĂŒgt, die die Umgebungsanpassung fĂŒr die Kreuzkompilierung vereinfachen.
Das CHCP-Dienstprogramm zur Anpassung der Konsolencodierung wurde implementiert.
- Integrierte Anwendungen
- Das MSIDB-Dienstprogramm zur Manipulation von Datenbanken im MSI-Format wurde implementiert.
- Leistungsoptimierung
- Verschiedene Funktionen zur Zeitbearbeitung wurden auf leistungsstarke systemeigene Timer-Funktionen umgestellt, was die Overheadkosten im Rendering-Zyklus vieler Spiele gesenkt hat.
- Die Verwendung im Ext4-Dateisystem wurde hinzugefĂŒgt.
- Der Modus der GroĂ-/Kleinschreibung wurde eingefĂŒhrt. Eine schnellere Implementierung von SRW-Sperren (Slim Reader/Writer) fĂŒr Linux wurde implementiert und auf Futex umgestellt.
- FĂŒr den Bau von Modulen im PE-Format wurde der Cross-Compiler MinGW-w64 verwendet.
- Die Implementierung von XAudio2 erfordert die FAudio-Bibliothek.
- Externe AbhÀngigkeiten
- FĂŒr die Ăberwachung von DateiĂ€nderungen auf BSD-Systemen wurde die Inotify-Bibliothek verwendet.
- FĂŒr die Ausnahmebehandlung auf der ARM64-Plattform ist die Unwind-Bibliothek erforderlich.
- Statt Video4Linux1 wird jetzt Video4Linux2 benötigt.
Nach einem Jahr Entwicklung und 28 experimentellen Versionen wurde die stabile Version der offenen Win32 API-Implementierung - Wine 5.0 - veröffentlicht, die mehr als 7400 Ănderungen umfasst. - Zu den SchlĂŒsselmerkmalen der neuen Version gehören die Bereitstellung integrierter Wine-Module im PE-Format, die UnterstĂŒtzung fĂŒr Multimonitor-Konfigurationen, die neue Implementierung der Audio-API XAudio2 und die UnterstĂŒtzung der Grafik-API Vulkan 1.1.
- In Wine wird die vollstĂ€ndige UnterstĂŒtzung bestĂ€tigt.
Quelle: opennet.ru
