Sortie de la version stable de Wine 9.0

Après un an de développement et 26 versions expérimentales, la version stable de l'implémentation open-source de Win32 API — Wine 9.0, a été lancée, intégrant plus de 7000 modifications. Parmi les réalisations clés de la nouvelle version, on note la mise en œuvre de l'architecture WoW64 pour faire fonctionner des programmes 32 bits dans un environnement 64 bits, l'intégration d'un driver pour le support de Wayland, la prise en charge de l'architecture ARM64, la mise en œuvre de l'API DirectMusic et le support des cartes à puce.

Wine a confirmé le bon fonctionnement de 5336 programmes (l'année dernière 5266, il y a deux ans 5156, il y a trois ans 5049) pour Windows, et encore 4397 (l'année dernière 4370, il y a deux ans 4312, il y a trois ans 4227) programmes fonctionnent parfaitement avec des réglages supplémentaires et des DLL externes. Pour 3943 programmes (l'année dernière 3888, il y a deux ans 3813, il y a trois ans 3703), de légers problèmes de fonctionnement ont été observés, mais cela n'entrave pas l'utilisation des principales fonctionnalités des applications.

Les principales nouveautés de Wine 9.0 :

  • Un driver winewayland.drv a été ajouté, permettant d'utiliser Wine dans des environnements basés sur le protocole Wayland sans avoir besoin de XWayland ou des composants X11. Le développement vise à assurer le fonctionnement d'un environnement Wayland pur avec prise en charge de l'exécution d'applications Windows, sans nécessiter l'installation de paquets liés à X11, ce qui permet d'obtenir de meilleures performances et réactivité des jeux grâce à l'élimination de couches superflues. L'utilisation d'un environnement Wayland pur pour Wine permet également de se débarrasser des problèmes de sécurité associés à X11 (par exemple, les jeux peu fiables pour X11 peuvent espionner d'autres applications car le protocole X11 permet d'accéder à tous les événements d'entrée et d'effectuer des substitutions d'appuis de touches).

    Le driver est marqué comme expérimental et en développement, mais il dispose déjà d'un support pour de nombreuses fonctionnalités, comme la gestion des fenêtres, le travail avec plusieurs moniteurs, le support du rendu sur des écrans haute densité (high-DPI), le travail avec des coordonnées relatives lors du suivi des mouvements de la souris et le support de l'API graphique Vulkan. Par défaut, le driver n'est pas actif et pour l'activer, il faut ajouter « wayland » dans la clé de registre « HKCU\Software\Wine\Drivers » et s'assurer qu'aucune variable d'environnement DISPLAY n'est définie : wine reg.exe add HKCU\\Software\\Wine\\Drivers \/v Graphics \/d x11,wayland

  • La traduction de tous les modules vers l'interface des appels système NT a été réalisée, remplaçant les appels directs entre les niveaux PE et Unix, marquant ainsi l'achèvement d'un long travail de traduction de toutes les bibliothèques DLL vers l'utilisation du format des fichiers exécutables PE (Portable Executable).
  • Le développement de la couche WoW64 (Windows-on-Windows 64 bits) a été poursuivi, permettant l'exécution d'applications Windows 32 bits dans des systèmes Unix 64 bits. Tous les modules accédant aux bibliothèques Unix utilisent des convertisseurs d'appels système WoW64 (thunk), permettant aux modules 32 bits au format PE d'accéder aux bibliothèques Unix 64 bits.

    Un nouveau mode de lancement pour WoW64 a été amélioré, dans lequel le code 32 bits s'exécute à l'intérieur d'un processus 64 bits (dans l'ancien mode WoW64, les applications 32 bits étaient lancées dans des processus Unix 32 bits). Le support de ce nouveau mode WoW64 a été ajouté sur la plateforme macOS. Étant donné que ce nouveau mode WoW64 présente des lacunes, telles que l'absence de prise en charge du mode 16 bits et une diminution des performances OpenGL due à l'absence de prise en charge de l'extension ARB_buffer_storage, il n'est pas encore activé par défaut et nécessite une compilation avec l'option « —enable-archs=i386,x86_64 » dans le script configure.

  • La possibilité d'exécuter des fichiers exécutables Windows existants sur des systèmes dotés de l'architecture ARM64 a été ajoutée. La possibilité de compiler Wine pour l'ABI ARM64EC (ARM64 Emulation Compatible) a été mise en œuvre et le support du chargement de modules ARM64EC a été intégré pour faciliter le portage d'applications initialement écrites pour l'architecture x86_64 sur les systèmes ARM64, en permettant l'exécution de modules avec du code x86_64 dans un environnement ARM64 à l'aide d'un émulateur. Le support du format de fichiers PE ARM64X a été ajouté, permettant de charger un seul fichier exécutable dans des processus x64/Arm64EC et ARM64. Une interface pour l'émulation des systèmes 32 bits x86 a été implémentée, mais la bibliothèque de l'émulateur n'est pas encore incluse dans la version principale de Wine (pour exécuter du code x86 dans un environnement ARM64, un émulateur externe comme FEX peut être utilisé).
  • Sous-système graphique
    • Le pilote PostScript a été retravaillé pour prendre en charge les fichiers spool au format Windows, dans lesquels sont stockées les données des tâches envoyées à l'impression. Les accès directs au pilote depuis l'environnement Unix ont été éliminés.
    • Les thèmes WinRT ont été mis à jour pour inclure un mode sombre. Dans WineCfg, une option a été ajoutée pour activer le thème sombre de l'interface.
    • Le pilote pour l'API graphique Vulkan a ajouté le support de la spécification Vulkan 1.3.272 (dans Wine 8.0, le support était pour 1.3.237).
    • Des optimisations ont été apportées aux fonctions de la bibliothèque GdiPlus, permettant d'augmenter les performances de travail avec la graphisme.
  • Direct3D
    • La pause de l'analyse du flux de commandes multithread a été garantie en l'absence de commandes de rendu traitées, ce qui permet de réduire la consommation d'énergie au niveau du traitement monocœur lors de l'exécution de programmes n'occupant pas toute la bande passante du flux de commandes.
    • Dans Direct3D 10, le support des effets supplémentaires a été implémenté.
    • Des optimisations de performance ont été apportées au code WineD3D et au backend utilisant l'API graphique Vulkan.
    • Dans le code de rendu basé sur l'API Vulkan, une vérification des capacités supportées par le dispositif a été ajoutée, ainsi qu'un rapport d'informations à l'application sur le niveau de fonctionnalité Direct3D disponible.
    • Les fonctions D3DXFillTextureTX et D3DXFillCubeTextureTX ont été réalisées.
    • Un support pour la définition des ombres a été ajouté au backend classique des shaders OpenGL ARB grâce à l'extension ARB_fragment_program_shadow.
    • Dans D3DXLoadMeshHierarchyFromX et des fonctions similaires, un support pour le chargement de données utilisateur a été ajouté via l'interface ID3DXLoadUserData.
  • Son et vidéo
    • Une implémentation initiale de l'API DirectMusic a été proposée. Le support pour les collections, les instruments et les échantillons sonores au format SoundFont a été ajouté. Un support pour l'effet Doppler a été ajouté. Des tests ont été réalisés pour vérifier la conformité de l'implémentation lors de l'utilisation du séquenceur dmime et du synthétiseur MIDI dmsynth.
    • Pour une utilisation dans l'API DirectMusic, une bibliothèque FluidSynth a été intégrée.
    • Le support pour le chargement de polices sonores (SoundFont - formats pour la synthèse basée sur des échantillons utilisés pour la lecture de fichiers MIDI) dans les formats DLS1 et DLS2, ainsi que dans le format SF2, utilisé dans Linux, a été implémenté.
    • La possibilité de jouer du contenu MIDI à l'aide de la bibliothèque dmsynth a été ajoutée, en utilisant le synthétiseur logiciel FluidSynth et l'API DirectSound pour la sortie audio.
    • Un décodeur pour la vidéo au format du codec vidéo Indeo IV50 a été ajouté.
  • DirectShow
    • Un composant DMO (DirectX Media Object) avec un décodeur pour le format WMV (Windows Media Video) a été implémenté.
    • Un filtre de capture audio (Filtre de capture audio DirectShow) a été ajouté.
    • Dans le filtre de séparation de flux MPEG-1 (Filtre de séparation de flux MPEG-1 DirectShow), en plus des flux audio, un support pour les flux vidéo et les flux de service a été ajouté.
    • Un filtre pour le décodage vidéo au format MPEG-1 (Décodeur vidéo MPEG-1 DirectShow) a été réalisé.
  • Périphériques d'entrée
    • DirectInput prend en charge le mappage des actions (action maps), permettant d'associer les boutons d'une manette de jeu à des actions spécifiques dans les jeux.
  • Intégration avec le bureau
    • Exportation dans l'environnement utilisateur principal des liaisons permettant d'appeler des applications exécutées sous Wine comme gestionnaires de protocoles lors de l'ouverture d'URL (par exemple, lancer spotify.exe lors de l'ouverture de liens de type «spotify:user:spotify:playlist:848218482355482821»).
    • Extraction des données EDID (Extended Display Identification Data) contenant des informations sur les paramètres du moniteur connecté, telles que le nom et le modèle de l'appareil.
    • Fermeture de la fenêtre de bureau en mode plein écran, via le bouton «Exit desktop» dans le menu «Start».
  • Internationalisation
    • Support amélioré des IME (Input Method Editors). Compatibilité assurée avec les implémentations IME natives de Windows et amélioration de l'intégration avec les IME de Linux.
    • Génération d'une base de données de localisations au format locale.nls à partir de la base de données Unicode CLDR (Unicode Common Locale Data Repository) version 44. Prise en charge de nouvelles localisations : bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA, prg-PL, skr-PK, tyv-RU, vmw-MZ, xnr-IN et za-CN.
    • Traduction de l'interface en géorgien. Traductions complètes fournies pour 16 langues, et partielles pour 31 langues.
    • Mises à jour des tableaux de caractères Unicode à la version 15.1.0 du standard. Base de données des fuseaux horaires mise à jour.
  • Noyau (interfaces du noyau Windows)
    • Windows 10 est défini comme version par défaut de Windows.
    • Support de la randomisation de l'espace d'adressage (ASLR) pour les fichiers exécutables au format PE, bien que les adresses de chargement des codes en mémoire ne soient pas encore complètement randomisées.
    • Support du tas faiblement fragmenté (LFH, Low Fragmentation Heap), permettant d'améliorer les performances des opérations d'allocation de mémoire.
    • Ajout de la prise en charge de la réservation de mémoire (placeholder) dans le mécanisme d'allocation de mémoire virtuelle, permettant à une application de réserver une zone spécifique de mémoire virtuelle pour une utilisation future.
    • Chargeurs 64 bits (loader et preloader) des fichiers exécutables et des bibliothèques compilés au format PIE (Position-Independent Executables) pour libérer une partie de l'espace d'adresses 32 bits.
    • Déroulement correct de la pile (stack unwinding) pour les appels système NT et les appels de retour utilisateur.
  • Fonctionnalités réseau
    • Dans le moteur MSHTML, support du mécanisme de collecte des déchets «Cycle Collection».
    • MSHTML a ajouté le support du mode de traitement synchrone pour les requêtes XMLHttpRequest.
    • Le fichier jscript.dll a ajouté le support de l'objet WeakMap pour la gestion des collections de paires clé/valeur où la clé est un objet auquel une valeur arbitraire peut être attachée. Les méthodes WeakMap.get(), WeakMap.delete(), WeakMap.clear() et WeakMap.has() sont mises en œuvre.
    • Le moteur de navigateur Gecko a été mis à jour vers la version 2.47.4.
    • Le support des notifications de changement d'état de l'interface réseau a été implémenté.
  • Cryptographie et sécurité
    • La bibliothèque Winscard.dll a ajouté le support des cartes intelligentes, mis en œuvre via la bibliothèque système PCSClite.
    • BCrypt a ajouté le support du protocole d'échange de clés de Diffie-Hellman.
    • Le paquet Negotiate a été implémenté, fournissant une couche pour utiliser l'interface SSPI (Security Support Provider Interface) pour accéder aux fournisseurs SSP (Security Support Provider).
  • Applications intégrées
    • Le débogueur Wine Debugger (winedbg) utilise la bibliothèque Zydis pour désassembler les instructions machine X86.
    • L'interface WineCfg a ajouté la possibilité de paramétrer d'anciennes versions de Windows (jusqu'à XP) sur les plateformes 64 bits, permettant ainsi d'exécuter des applications obsolètes à l'aide du mode WoW64.
    • Dans toutes les applications graphiques intégrées, les informations d'erreur sont affichées dans une boîte de dialogue séparée au lieu d'être affichées dans la console.
    • Dans le programme systeminfo, les informations issues de la base de données WMI (Windows Management Instrumentation) sont présentées.
    • Une application klist a été ajoutée pour afficher les tickets Kerberos.
    • Dans l'application taskkill, une fonctionnalité pour forcer la terminaison des processus enfants a été implémentée.
    • Dans l'utilitaire start, un paramètre «/machine» a été ajouté pour sélectionner l'architecture utilisée lors du lancement de fichiers exécutables hybrides prenant en charge x86 et ARM.
    • La plus grande partie de la fonctionnalité du programme tasklist a été implémentée.
    • Une implémentation de base de l'application findstr a été ajoutée.
  • Outils pour le développement
    • Dans l'utilitaire WineDump, la possibilité d'afficher le contenu des fichiers de registre Windows (format REGF) ainsi que d'afficher des données pour toutes les architectures (x86/ARM64) supportées dans les fichiers PE hybrides a été mise en œuvre.
    • Le compilateur IDL a ajouté le support des attributs «composable», «default_overload», «deprecated» et «protected».
    • La bibliothèque libwine.so a été supprimée, car elle avait été déclarée obsolète dans la version Wine 6.0 et n'est plus utilisée depuis longtemps dans Wine. Les programmes au format ELF compilés dans d'anciennes versions de Wine (5.0 et antérieures) avec libwine.so nécessitent une recompilation pour fonctionner dans Wine 9.0.
  • Bibliothèques intégrées et dépendances externes
    • Les bibliothèques FluidSynth 2.3.3, Musl 1.2.3 (uniquement les fonctions mathématiques) et Zydis 4.0.0 sont intégrées.
    • Mise à jour des composants Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibXml2 2.11.5, LibXslt 1.1.38 et Zlib 1.3. L'engin Wine Mono avec une implémentation de la plateforme .NET a été mis à jour vers la version 8.1.0.
    • Dans le pilote winewayland.drv, la bibliothèque cliente Wayland, ainsi que les bibliothèques xkbcommon et xkbregistry, sont utilisées comme dépendances externes.
    • La bibliothèque externe PCSClite (sous macOS — PCSC) est utilisée pour le support des cartes à puce.
    • Pour la construction de fichiers PE sur des plateformes autres que i386, un compilateur croisé prenant en charge les directives «.seh» pour le traitement des exceptions est maintenant requis.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster