Version stable de Wine 8.0

Après un an de développement et 28 versions expérimentales, une version stable de l'implémentation ouverte de l'API Win32 - Wine 8.0, qui incorporait plus de 8600 XNUMX modifications, a été présentée. La réalisation clé de la nouvelle version marque l'achèvement du travail de traduction des modules Wine dans le format.

Wine a confirmé le fonctionnement complet de 5266 (il y a un an 5156, il y a deux ans 5049) programmes pour Windows, 4370 autres (il y a un an 4312, il y a deux ans 4227) programmes fonctionnent parfaitement avec des paramètres supplémentaires et des DLL externes. 3888 programmes (3813 il y a un an, 3703 il y a deux ans) présentent des problèmes de fonctionnement mineurs qui n'interfèrent pas avec l'utilisation des principales fonctions des applications.

Innovations clés de Wine 8.0 :

  • Modules au format PE
    • Après quatre années de travail, la conversion de toutes les bibliothèques DLL vers le format de fichier exécutable PE (Portable Executable, utilisé sous Windows) est terminée. L'utilisation de PE permet d'utiliser les débogueurs disponibles pour Windows et résout les problèmes liés à la prise en charge de divers schémas de protection contre la copie qui vérifient l'identité des modules système sur le disque et en mémoire. Les problèmes liés à l'exécution d'applications 32 bits sur des hôtes 64 bits et d'applications x86 sur les systèmes ARM ont également été résolus. Parmi les tâches restantes qui devraient être résolues dans les versions expérimentales ultérieures de Wine 8.x, il y a une transition des modules vers l'interface d'appel système NT au lieu d'effectuer des appels directs entre les couches PE et Unix.
    • Un gestionnaire d'appels système spécial a été implémenté, utilisé pour traduire les appels de PE vers les bibliothèques Unix afin de réduire la surcharge liée à l'exécution d'un appel système NT complet. Par exemple, l'optimisation a permis de réduire la dégradation des performances lors de l'utilisation des bibliothèques OpenGL et Vulkan.
    • Les applications Winelib conservent la possibilité d'utiliser des assemblys mixtes Windows/Unix de bibliothèques ELF (.dll.so), mais ces applications sans bibliothèques 32 bits ne prendront pas en charge les fonctionnalités disponibles via l'interface d'appel système NT, telles que WoW64.
  • WoW64
    • Des couches WoW64 (Windows sur Windows 64 bits) sont fournies pour toutes les bibliothèques Unix, permettant aux modules 32 bits au format PE d'accéder aux bibliothèques Unix 64 bits, ce qui, après s'être débarrassé des appels directs PE/Unix, le rendra Il est possible d'exécuter des applications Windows 32 bits sans installer de bibliothèques Unix 32 bits.
    • En l'absence d'un chargeur Wine 32 bits, les applications 32 bits peuvent s'exécuter dans le nouveau mode expérimental WoW64 de type Windows, dans lequel le code 32 bits s'exécute dans un processus 64 bits. Le mode est activé lors de la construction de Wine avec l'option '—enable-archs'.
  • Sous-système graphique
    • La configuration par défaut utilise le thème clair (« Light »). Vous pouvez changer le thème à l'aide de l'utilitaire WineCfg.
      Version stable de Wine 8.0
    • Les pilotes graphiques (winex11.drv, winemac.drv, wineandroid.drv) sont convertis pour exécuter des appels système au niveau Unix et accéder aux pilotes via la bibliothèque Win32u.
      Version stable de Wine 8.0
    • L'architecture du processeur d'impression a été implémentée, qui est utilisée pour éliminer les appels directs entre les niveaux PE et Unix dans le pilote d'imprimante.
    • L'API Direct2D prend désormais en charge les effets.
    • L'API Direct2D a ajouté la possibilité d'enregistrer et de lire des listes de commandes.
    • Le pilote de l'API graphique Vulkan a ajouté la prise en charge de la spécification Vulkan 1.3.237 (Vulkan 7 était pris en charge dans Wine 1.2).
  • Direct3D
    • Ajout d'un nouveau compilateur de shader pour le HLSL (High-Level Shader Language), implémenté sur la base de la bibliothèque vkd3d-shader. Également basé sur vkd3d-shader, un désassembleur HLSL et un préprocesseur HLSL ont été préparés.
    • L'interface Thread Pump introduite dans D3DX 10 a été implémentée.
    • Les effets Direct3D 10 ajoutent la prise en charge de nombreuses nouvelles expressions.
    • La bibliothèque de support pour D3DX 9 prend désormais en charge la projection de texture Cubemap.
  • Son et vidéo
    • Sur la base du framework GStreamer, la prise en charge des filtres de décodage audio au format MPEG-1 a été implémentée.
    • Ajout d'un filtre pour la lecture du streaming audio et vidéo au format ASF (Advanced Systems Format).
    • La couche de bibliothèque intermédiaire OpenAL32.dll a été supprimée, à la place de la bibliothèque native Windows OpenAL32.dll, fournie avec les applications, est désormais utilisée.
    • Media Foundation Player a amélioré la détection du type de contenu.
    • La possibilité de contrôler le taux de transfert de données (Rate control) a été implémentée.
    • Prise en charge améliorée du mixeur et du présentateur par défaut dans le moteur de rendu vidéo amélioré (EVR).
    • Ajout de l'implémentation initiale de l'API Writer Encoding.
    • Prise en charge améliorée du chargeur de topologie.
  • Dispositifs d'entrée
    • Prise en charge considérablement améliorée du branchement à chaud des contrôleurs.
    • Une implémentation améliorée du code de détermination des volants de jeu, construit sur la base de la bibliothèque SDL, est proposée.
    • Prise en charge améliorée de l'effet de retour de force lors de l'utilisation de volants de jeu.
    • La possibilité de contrôler les moteurs de vibration gauche et droit à l'aide de la spécification HID Haptic a été implémentée.
    • Modification de la conception du panneau de commande du joystick.
    • La prise en charge des contrôleurs Sony DualShock et DualSense est assurée grâce à l'utilisation du backend hidraw.
    • Le module WinRT Windows.Gaming.Input est proposé avec la mise en place d'une interface logicielle pour accéder aux manettes de jeu, joysticks et volants de jeu. Pour la nouvelle API, entre autres choses, la prise en charge de la notification du branchement à chaud des appareils, des effets tactiles et vibratoires est implémentée.
  • Internationalisation
    • La génération de la bonne base de données locale au format locale.nls à partir du référentiel Unicode CLDR (Unicode Common Locale Data Repository) est assurée.
    • Les fonctions de comparaison de chaînes Unicode ont été déplacées pour utiliser la base de données et l'algorithme Windows Sortkey au lieu de l'algorithme Unicode Collation, rapprochant ainsi le comportement de Windows.
    • La plupart des fonctionnalités ont ajouté la prise en charge des plages de code Unicode supérieures (plans).
    • Il est possible d'utiliser UTF-8 comme codage ANSI.
    • Les tables de caractères ont été mises à jour vers la spécification Unicode 15.0.0.
  • Texte et polices
    • La liaison des polices a été activée pour la plupart des polices système, résolvant ainsi le problème des glyphes manquants sur les systèmes avec des paramètres régionaux chinois, coréens et japonais.
    • Police de secours retravaillée dans DirectWrite.
  • Noyau (interfaces du noyau Windows)
    • La base de données ApiSetSchema a été implémentée, qui a remplacé les modules api-ms-* et réduit la consommation d'espace disque et d'adressage.
    • Les attributs des fichiers DOS sont enregistrés sur le disque dans un format compatible Samba à l'aide des attributs FS étendus.
  • Fonctionnalités de mise en réseau
    • Ajout de la prise en charge de l'OCSP (Online Certificate Status Protocol), utilisé pour vérifier les certificats révoqués.
    • La gamme de fonctionnalités EcmaScript disponibles en mode de conformité aux normes JavaScript a été élargie.
    • Implémentation d'un garbage collector pour JavaScript.
    • Le package moteur Gecko comprend des fonctionnalités pour les personnes handicapées.
    • MSHTML ajoute la prise en charge de l'API Web Storage, de l'objet Performance et d'objets supplémentaires pour la gestion des événements.
  • Applications embarquées
    • Toutes les applications intégrées ont été converties pour utiliser la bibliothèque Common Controls 6, avec prise en charge des thèmes de conception et du rendu prenant en compte les écrans à haute densité de pixels.
    • Amélioration des capacités de débogage des threads dans Wine Debugger (winedbg).
    • Les utilitaires de registre (REGEDIT et REG) prennent désormais en charge le type QWORD.
    • Le Bloc-notes a ajouté une barre d'état avec des informations sur la position du curseur et une fonction Goto Line pour accéder à un numéro de ligne spécifié.
    • La console intégrée fournit une sortie de données dans la page de codes OEM.
    • La commande 'query' a été ajoutée à l'utilitaire sc.exe (Service Control).
  • Système d'assemblage
    • La possibilité de créer des fichiers exécutables au format PE pour plusieurs architectures a été fournie (par exemple, '—enable-archs=i386,x86_64').
    • Sur toutes les plates-formes dotées du type long 32 bits, les types de données définis comme longs dans Windows sont désormais redéfinis comme « long » au lieu de « int » dans Wine. Dans Winelib, ce comportement peut être désactivé via la définition WINE_NO_LONG_TYPES.
    • Ajout de la possibilité de générer des bibliothèques sans utiliser dlltool (activé en définissant l'option '—without-dlltool' dans winebuild).
    • Pour améliorer l'efficacité du chargement et réduire la taille des bibliothèques sans code et réservées aux ressources, winegcc implémente l'option '--data-only'.
  • Miscellanea
    • Versions mises à jour des bibliothèques intégrées Faudio 22.11, LCMS2 2.14, LibJPEG 9e, LibMPG123 1.31.1, LibPng 1.6.39, LibTiff 4.4.0, LibXml2 2.10.3, LibXslt 1.1.37, Zlib 1.2.13.
    • Le moteur Wine Mono avec l'implémentation de la plateforme .NET a été mis à jour vers la version 7.4.
    • La prise en charge du cryptage basé sur l'algorithme RSA et les signatures numériques RSA-PSS a été implémentée.
    • Ajout de la version initiale de l'API UI Automation.
    • L'arborescence source comprend les bibliothèques LDAP et vkd3d, qui sont compilées au format PE, éliminant ainsi le besoin de fournir des assemblys Unix de ces bibliothèques.
    • La bibliothèque OpenAL a été abandonnée.

Source: opennet.ru

Ajouter un commentaire