Alliberament estable de Wine 7.0

Després d'un any de desenvolupament i 30 versions experimentals, es va presentar una versió estable de la implementació oberta de l'API Win32 - Wine 7.0, que va incorporar més de 9100 canvis. Els èxits clau de la nova versió inclouen la traducció de la majoria de mòduls Wine al format PE, suport per a temes, ampliació de la pila per a joysticks i dispositius d'entrada amb una interfície HID i implementació de l'arquitectura WoW64 per executar programes de 32 bits en un Entorn de 64 bits.

Wine ha confirmat el funcionament complet de 5156 (fa un any 5049) programes per a Windows, altres 4312 (fa un any 4227) programes funcionen perfectament amb configuracions addicionals i DLL externes. 3813 programes (fa 3703 anys) presenten problemes operatius menors que no interfereixen amb l'ús de les principals funcions de les aplicacions.

Innovacions clau en Wine 7.0:

  • Mòduls en format PE
    • Gairebé totes les DLL s'han convertit per utilitzar el format de fitxer executable PE (executable portàtil, utilitzat a Windows) en lloc d'ELF. L'ús de PE soluciona problemes amb el suport de diversos esquemes de protecció contra còpia que verifiquen la identitat dels mòduls del sistema al disc i a la memòria.
    • S'ha implementat la capacitat d'interactuar mòduls PE amb biblioteques Unix mitjançant la crida estàndard del sistema del nucli NT, que us permet ocultar l'accés al codi Unix dels depuradors de Windows i supervisar el registre de fils.
    • Les DLL integrades ara es carreguen només si hi ha un fitxer PE corresponent al disc, independentment de si es tracta d'una biblioteca real o d'un taló. Aquest canvi permet que l'aplicació vegi sempre l'enllaç correcte als fitxers PE. Per desactivar aquest comportament, podeu utilitzar la variable d'entorn WINEBOOTSTRAPMODE.
  • WoW64
    • S'ha implementat l'arquitectura WoW64 (Windows de 64 bits a Windows), que us permet executar aplicacions de Windows de 32 bits en processos Unix de 64 bits. El suport s'implementa mitjançant la connexió d'una capa que tradueix les trucades del sistema NT de 32 bits en trucades de 64 bits a NTDLL.
    • Les capes WoW64 estan preparades per a la majoria de biblioteques Unix i permeten als mòduls PE de 32 bits accedir a les biblioteques Unix de 64 bits. Un cop tots els mòduls s'hagin convertit al format PE, serà possible executar aplicacions de Windows de 32 bits sense instal·lar biblioteques Unix de 32 bits.
  • Temes
    • S'ha implementat el suport temàtic. S'inclouen els temes de disseny "Light", "Blue" i "Classic Blue", que es poden seleccionar mitjançant el configurador WineCfg.
    • S'ha afegit la possibilitat de personalitzar l'aparença de tots els controls de la interfície mitjançant temes. L'aspecte dels elements s'actualitza automàticament després de canviar el tema del disseny.
    • S'ha afegit suport de temes a totes les aplicacions integrades de Wine. Les aplicacions s'han adaptat a pantalles amb alta densitat de píxels (High DPI).
  • Subsistema gràfic
    • S'ha afegit una nova biblioteca Win32u, que inclou parts de les biblioteques GDI32 i USER32 relacionades amb el processament de gràfics i la gestió de finestres a nivell del nucli. En el futur, es començarà a treballar per portar components del controlador com winex32.drv i winemac.drv a Win11u.
    • El controlador Vulkan admet l'especificació de l'API de gràfics Vulkan 1.2.201.
    • S'ha proporcionat suport per a la sortida d'objectes geomètrics eclosionats mitjançant l'API Direct2D, amb la possibilitat de comprovar si un clic encerta (test d'èxit).
    • L'API Direct2D proporciona suport inicial per als efectes visuals aplicats mitjançant la interfície ID2D1Effect.
    • L'API Direct2D ha afegit suport per a la interfície ID2D1MultiThread, que s'utilitza per organitzar l'accés exclusiu als recursos en aplicacions multifils.
    • El conjunt de biblioteques de WindowsCodecs ofereix suport per descodificar imatges en format WMP (Windows Media Photo) i codificar imatges en format DDS (DirectDraw Surface). Ja no admetem la codificació d'imatges en format ICNS (per a macOS), que no és compatible amb Windows.
  • Direct3D
    • El nou motor de renderització s'ha millorat significativament, traduint les trucades de Direct3D a l'API de gràfics Vulkan. En la majoria de situacions, el nivell de suport per a Direct3D 10 i 11 al motor basat en Vulkan s'ha assolit a la paritat amb el motor basat en OpenGL més antic. Per habilitar el motor de renderització Vulkan, configureu la variable de registre de Direct3D "renderer" a "vulkan".
    • S'implementen moltes característiques de Direct3D 10 i 11, com ara contexts diferits, objectes d'estat que operen en el context del dispositiu, desplaçaments persistents a les memòries intermèdies, esborrar vistes de textures fora d'ordre, copiar dades entre recursos en formats sense tipus (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32LES32), etc. .
    • S'ha afegit suport per a configuracions de diversos monitors, que us permet seleccionar un monitor per mostrar una aplicació Direct3D en mode de pantalla completa.
    • L'API DXGI proporciona una correcció gamma de la pantalla, que les aplicacions basades en Direct3D 10 i 11 poden utilitzar per canviar la brillantor de la pantalla. Recuperació activada dels comptadors de framebuffers virtuals (SwapChain).
    • Direct3D 12 afegeix suport per a signatures arrel de la versió 1.1.
    • Al codi de representació mitjançant l'API Vulkan, l'eficiència del processament de consultes s'ha millorat quan el sistema admet l'extensió VK_EXT_host_query_reset.
    • S'ha afegit la possibilitat d'emetre framebuffers virtuals (SwapChain) mitjançant GDI si no es poden utilitzar OpenGL o Vulkan per a la visualització, per exemple, quan s'emet a una finestra des de diferents processos, per exemple, en programes basats en el marc CEF (Chromium Embedded Framework).
    • Quan s'utilitza el backend de l'ombrador GLSL, s'assegura el modificador "precís" per a les instruccions de l'ombrejat.
    • L'API de DirectDraw afegeix suport per a la representació 3D a la memòria del sistema mitjançant dispositius de programari com ara "RGB", "MMX" i "Ramp".
    • Les targetes AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 i NVIDIA GT 630 s'han afegit a la base de dades de targetes gràfiques Direct1030D.
    • La clau "UseGLSL" s'ha eliminat del registre HKEY_CURRENT_USER\Software\Wine\Direct3D, en comptes d'això, a partir de Wine 5.0, heu d'utilitzar "shader_backend".
    • Per donar suport a Direct3D 12, ara necessiteu almenys la versió 3 de la biblioteca vkd1.2d.
  • D3DX
    • La implementació de D3DX 10 ha millorat el suport per al marc d'efectes visuals i ha afegit suport per al format d'imatge de Windows Media Photo (JPEG XR)
    • S'han afegit funcions de creació de textures proporcionades a D3DX10, com ara D3DX10CreateTextureFromMemory().
    • Les interfícies de programari ID3DX10Sprite i ID3DX10Font s'han implementat parcialment.
  • So i vídeo
    • Els complements de GStreamer per a DirectShow i el marc de la Media Foundation es combinen en un backend comú de WineGStreamer, que hauria de simplificar el desenvolupament de noves API de descodificació de contingut.
    • Basat en el backend WineGStreamer, els objectes de Windows Media s'implementen per a una lectura síncrona i asíncrona.
    • La implementació del marc de Media Foundation s'ha perfeccionat encara més, s'ha afegit el suport per a la funcionalitat IMFPMediaPlayer i l'assignador de mostres, i s'ha millorat el suport per als buffers de representació EVR i SAR.
    • La biblioteca wineqtdecoder, que proporciona un descodificador per al format QuickTime, s'ha eliminat (ara tots els còdecs utilitzen GStreamer).
  • Dispositius d’entrada
    • La pila per als dispositius d'entrada que admeten el protocol HID (Human Interface Devices) s'ha millorat significativament, proporcionant capacitats com ara analitzar descriptors HID, processar missatges HID i proporcionar controladors mini-HID.
    • Als backends del controlador winebus.sys, s'ha millorat la traducció de les descripcions del dispositiu en missatges HID.
    • S'ha afegit un nou backend DirectInput per a joysticks que admeten el protocol HID. S'ha implementat la possibilitat d'utilitzar efectes de retroalimentació als joysticks. Tauler de control del joystick millorat. Interacció optimitzada amb dispositius compatibles amb XInput. A WinMM, el suport del joystick s'ha mogut a DInput, en lloc d'utilitzar el backend evdev a Linux i IOHID a macOS IOHID. S'ha eliminat l'antic controlador de joystick winejoystick.drv.
    • S'han afegit noves proves al mòdul DInput, basades en l'ús de dispositius HID virtuals i que no requereixen un dispositiu físic.
  • Text i tipus de lletra
    • S'ha afegit l'objecte Font Set a DirectWrite.
    • RichEdit implementa correctament la interfície TextHost.
  • Nucli (interfícies de nucli de Windows)
    • Quan s'executa un fitxer executable no identificat (com ara 'wine foo.msi') a Wine, ara s'anomena start.exe, que invoca els controladors associats amb el tipus de fitxer.
    • S'ha afegit suport per als mecanismes de sincronització NtAlertThreadByThreadId i NtWaitForAlertByThreadId, similar als futexes a Linux.
    • S'ha afegit suport per a objectes de depuració NT utilitzats per depurar funcions del nucli.
    • S'ha afegit suport per a claus de registre dinàmiques per desar dades de rendiment.
  • C Temps d'execució
    • El temps d'execució C implementa un conjunt complet de funcions matemàtiques, que es transmeten principalment des de la biblioteca Musl.
    • Totes les plataformes de CPU ofereixen el suport correcte per a les funcions de punt flotant.
  • Funcions de xarxa
    • Mode de compatibilitat millorat per a Internet Explorer 11 (IE11), que ara s'utilitza de manera predeterminada per processar documents HTML.
    • La biblioteca mshtml implementa el mode JavaScript ES6 (ECMAScript 2015), que proporciona suport per a funcions com l'expressió let i l'objecte Map.
    • La instal·lació de paquets MSI amb addicions al motor Gecko al directori de treball de Wine ara es fa quan cal, i no durant una actualització de Wine.
    • S'ha afegit suport per al protocol DTLS.
    • S'ha implantat el servei NSI (Network Store Interface), que emmagatzema i transmet informació sobre l'encaminament i les interfícies de xarxa de l'ordinador a altres serveis.
    • Els controladors de l'API WinSock, com ara setsockopt i getsockopt, s'han mogut a NTDLL i al controlador afd.sys per adaptar-se a l'arquitectura de Windows.
    • Els fitxers de la base de dades de xarxa del Wine, com ara /etc/protocols i /etc/networks, s'instal·len ara al directori de treball del Wine, en lloc d'accedir a bases de dades Unix similars.
  • Plataformes alternatives
    • S'ha afegit suport per a equips Apple basats en xips M1 ARM (Apple Silicon).
    • El suport per a les funcions BCrypt i Secur32 a macOS ara requereix la instal·lació de la biblioteca GnuTLS.
    • Els executables de 32 bits per a plataformes ARM es creen ara en mode Thumb-2, similar a Windows. S'utilitza un precarregador per carregar aquests fitxers.
    • Per a les plataformes ARM de 32 bits, s'ha implementat suport per a les excepcions de desenrotllament.
    • Per a FreeBSD, s'ha ampliat el nombre de consultes admeses per a la informació del sistema de baix nivell, com ara l'estat de la memòria i el nivell de càrrega de la bateria.
  • Aplicacions integrades i eines de desenvolupament
    • La utilitat reg.exe ha afegit suport per a les vistes del registre de 32 i 64 bits. S'ha afegit suport per copiar claus de registre.
    • La utilitat WineDump ha afegit suport per eliminar les metadades de Windows i mostrar informació detallada sobre les entrades de CodeView.
    • El Wine Debugger (winedbg) ofereix la possibilitat de depurar processos de 32 bits des d'un depurador de 64 bits.
    • S'ha afegit la possibilitat de carregar biblioteques integrades als fitxers PE al compilador IDL (widl), s'ha proporcionat suport per a atributs i construccions específics de WinRT i s'ha implementat una cerca de biblioteques específica de la plataforma.
  • Sistema de muntatge
    • Als directoris específics d'arquitectura, les biblioteques ara es guarden amb noms que reflecteixen l'arquitectura i el tipus d'executable, com ara 'i386-windows' per al format PE i 'x86_64-unix' per a biblioteques Unix, permetent el suport per a diferents arquitectures en un mateix Wine. instal·lar i proporcionar una compilació creuada de Winelib.
    • Per establir una opció a les capçaleres dels fitxers PE que controli la transició a l'ús de DLL natives, s'ha afegit la marca '--prefer-native option' a winebuild (el processament DLL_WINE_PREATACH a DllMain s'ha aturat).
    • S'ha afegit suport per a la versió 4 del format de dades de depuració de Nans, que ara s'utilitza per defecte quan es construeixen biblioteques Wine.
    • S'ha afegit l'opció de compilació "—enable-build-id" per desar identificadors de compilació únics als fitxers executables.
    • S'ha afegit suport per utilitzar el compilador Clang en mode de compatibilitat MSVC.
  • Miscel · lània
    • Els noms dels directoris típics de l'intèrpret d'ordres de l'usuari (Windows Shell) es donen a l'esquema utilitzat començant per Windows Vista, és a dir. En lloc de "Els meus documents", ara es crea un directori "Documents" i la majoria de les dades es desen al directori "AppData".
    • S'ha afegit suport per a l'especificació OpenCL 1.2 a la capa de biblioteca OpenCL.
    • El controlador WinSpool ha afegit suport per a diferents mides de pàgina quan s'imprimeix.
    • S'ha afegit suport inicial per a MSDASQL, el proveïdor de Microsoft OLE DB per als controladors ODBC.
    • El motor de Wine Mono amb implementació de la plataforma .NET s'ha actualitzat per al llançament 7.0.0.
    • Les dades Unicode s'han actualitzat a l'especificació Unicode 14.
    • L'arbre font inclou les biblioteques Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt i Zlib, que es compilen en format PE i no requereixen una versió en format Unix. Al mateix temps, aquestes biblioteques també es poden importar del sistema per utilitzar conjunts externs en lloc d'opcions de PE incorporades.

Font: opennet.ru

Afegeix comentari