Wine es una capa de compatibilidad de código abierto para ejecutar aplicaciones de Windows en sistemas operativos basados en Unix, como Linux y macOS. Permite a los usuarios ejecutar software de Windows sin la necesidad de un sistema operativo Windows.
Wine significa «Wine Is Not an Emulator» porque no emula un entorno completo de Windows, sino que traduce las llamadas al sistema de Windows a sus equivalentes en el sistema host. Esto permite que las aplicaciones de Windows se ejecuten de manera más eficiente y con mejor rendimiento que si fueran emuladas.
Características
Compatibilidad binaria
- Carga programas y bibliotecas de Windows 9x/NT/2000/XP/Vista/7/8/10 y Windows 3.x de 64 bits, 32 bits, 16 bits
- Diseño de memoria compatible con Win32, manejo de excepciones, subprocesos y procesos
- Diseñado para sistemas operativos compatibles con POSIX (por ejemplo, Linux, macOS y FreeBSD) y Android
- Compatibilidad «error por error» con Windows
Soporte de API Win32
- Compatibilidad con juegos y aplicaciones basados en DirectX (compatibilidad con Direct3D hasta DirectX 12)
- Soporte para juegos y aplicaciones basados en OpenGL y Vulkan
- Soporte DirectShow con uso de GStreamer para códecs
- Direct2D, compatibilidad con DirectWrite
- Se admiten las API de audio MMDevice API, XAudio, WinMM y DirectSound
- Impresión a través del controlador PostScript al sistema de impresión host (generalmente CUPS)
- Controlador de metarchivo mejorado (EMF) y metarchivo de Windows (WMF)
- Escritorio en una caja o ventanas combinables
Permite que el programa de Windows interactúe con:
- Gráficos basados en X11 que permiten la visualización remota en cualquier terminal X
- Gráficos basados en macOS y Android
- Fuentes X11, TrueType (.ttf/.ttc) y Windows Bitmap (.fon)
- Dispositivos de sonido vía ALSA, OSS, PulseAudio, Core Audio, etc.
- Compatibilidad con teclados multilingües y método de entrada CJK a través de XIM
- Módems, dispositivos serie
- Redes (TCP/IP e IPX)
- Escáneres ASPI
- Tabletas Windows a través de XInput (por ejemplo, Wacom)
- Dispositivos de captura de vídeo vía v4l2
- Dispositivos HID a través de IOHid (MacOS), evdev (Linux), hidraw (Linux), SDL2
Cobertura y portabilidad de API
- Diseñado para compatibilidad fuente y binaria con código Win32
- Conjunto de pruebas API Win32 para garantizar la compatibilidad
- Compilable en una amplia gama de compiladores de C
- Permite mezclar código Win32 y POSIX.
- Permite mezclar archivos binarios ELF (.so) y PE (.dll/.exe) en un espacio de direcciones
- Archivos de encabezado compatibles con Win32
- Documentación API generada automáticamente
- Compilador de recursos
- compilador de mensajes
- compilador IDL
- Amplio soporte Unicode
- Internacionalización – Wine soporta 16 idiomas
- Depurador integrado y mensajes de seguimiento configurables
- Compatibilidad con el comprobador de memoria externa mediante Valgrind
- Programas de muestra
Qué hay de nuevo
El equipo de Wine se enorgullece de anunciar que la versión estable Wine 9.0 ya está disponible.
WoW64
- Todas las transiciones del código de Windows al Unix pasan por la interfaz de llamada al sistema NT. Este es un hito importante que marca la finalización del trabajo de rediseño de varios años para convertir los módulos al formato PE e introducir un límite adecuado entre los mundos Windows y Unix.
- Todos los módulos que llaman a una biblioteca Unix contienen procesadores WoW64 para permitir llamar a la biblioteca Unix de 64 bits desde código PE de 32 bits. Esto significa que es posible ejecutar aplicaciones de Windows de 32 bits en una instalación Unix puramente de 64 bits. Esto se llama el nuevo modo WoW64, a diferencia del antiguo modo WoW64 donde las aplicaciones de 32 bits se ejecutan dentro de un proceso Unix de 32 bits.
- El nuevo modo WoW64 aún no está habilitado de forma predeterminada. Se puede habilitar pasando la opción –enable-archs=i386,x86_64 para configurar. Se espera que esto funcione para la mayoría de las aplicaciones, pero aún existen algunas limitaciones, en particular:
- Falta de soporte para código de 16 bits.
- Rendimiento de OpenGL reducido y falta de compatibilidad con la extensión ARB_buffer_storage.
- El nuevo modo WoW64 finalmente permite ejecutar aplicaciones de 32 bits en versiones recientes de macOS que eliminaron la compatibilidad con procesos Unix de 32 bits.
conductor wayland
- Hay un controlador de gráficos Wayland experimental. Todavía es un trabajo en progreso, pero ya implementa muchas funciones, como administración básica de ventanas, múltiples monitores, escalado de alto DPI, eventos de movimiento relativo y compatibilidad con Vulkan.
- El controlador Wayland aún no está habilitado de forma predeterminada. Se puede habilitar a través de la clave de registro HKCU\Software\Wine\Drivers ejecutando:
- Wine reg.exe agregar HKCU\\Software\\Wine\\Drivers /v Gráficos /d x11,wayland
- y luego asegurarse de que la variable de entorno DISPLAY no esté configurada.
brazo64
- La finalización de la separación PE/Unix significa que es posible ejecutar archivos binarios de Windows existentes en ARM64.
- El cargador admite la carga de módulos Arm64X y ARM64EC.
- Se implementa la interfaz de emulación x86 de 32 bits. Wine no proporciona ninguna biblioteca de emulación en este momento, pero se puede usar una biblioteca externa que exporte la interfaz, especificando su nombre en la clave de registro HKLM\Software\Microsoft\Wow64\x86. El emulador FEX implementa esta interfaz cuando se construye como PE.
- Hay soporte inicial para construir Wine para la arquitectura ARM64EC, utilizando una cadena de herramientas LLVM experimental. Una vez que la cadena de herramientas esté lista, se utilizará para realizar una compilación ARM64X adecuada y habilitar la emulación x86 de 64 bits.
Gráficos
- El controlador PostScript se reimplementó para funcionar desde archivos spool en formato Windows y evitar llamadas directas desde el lado de Unix.
- La temática de WinRT admite una opción de tema oscuro, con su correspondiente alternancia en WineCfg.
- El controlador Vulkan admite hasta la versión 1.3.272 de la especificación Vulkan.
- Varias funciones de GdiPlus están optimizadas para un mejor rendimiento gráfico.
directo3D
- La secuencia de comandos multiproceso duerme en lugar de girar cuando no procesa comandos de renderizado. Esto reduce el consumo de energía en programas que no ocupan todo el ancho de banda disponible del flujo de comandos. El consumo de energía debe ser comparable al de cuando el flujo de comandos multiproceso está deshabilitado.
- Los efectos de Direct3D 10 admiten muchas más instrucciones.
- Se han realizado varias optimizaciones en el núcleo de WineD3D y el backend de Vulkan.
- El renderizador Vulkan valida correctamente que las características requeridas sean compatibles con el dispositivo subyacente e informa el nivel de característica Direct3D correspondiente a la aplicación.
- Se implementan D3DXFillTextureTX y D3DXFillCubeTextureTX.
- El backend heredado del sombreador OpenGL ARB admite el muestreo de sombras a través de ARB_fragment_program_shadow.
- El compilador HLSL admite indicadores de compilación mayoritaria de matrices.
- D3DXLoadMeshHierarchyFromX y las funciones relacionadas admiten la carga de datos del usuario a través de ID3DXLoadUserData.
Audio Video
- Se implementa la base de varios de los módulos de DirectMusic. Se agregan muchas pruebas para validar el comportamiento del secuenciador dmime y el sintetizador MIDI dmsynth.
- Se implementa la carga de fuentes de sonido DLS1 y DLS2, así como el formato SF2 para compatibilidad con fuentes de sonido MIDI estándar de Linux.
- La reproducción MIDI se implementa en dmsynth, con la integración del sintetizador de software de la biblioteca FluidSynth y utilizando DirectSound para la salida de audio.
- DirectSound admite el desplazamiento Doppler.
- Se implementa el decodificador de Video Indeo IV50 para Windows.
DirectShow
- Se implementa el decodificador DirectX Media Object (DMO) de Windows Media Video (WMV).
- Se implementa el filtro DirectShow Audio Capture.
- El filtro DirectShow MPEG�’1 Stream Splitter admite transmisiones de video y del sistema, así como transmisiones de audio.
- Se implementa el filtro DirectShow MPEG�’1 Video Decoder.
Los dispositivos de entrada
- Se implementan mapas de acción de DirectInput, lo que mejora la compatibilidad con muchos juegos antiguos que los utilizan para asignar las entradas del controlador a las acciones del juego.
Lea las notas de la versión completas aquí.