Wine, la capa de compatibilidad de Windows, llega a la versión 5.0 en Android

Wine es una capa de compatibilidad de Windows que permite a los usuarios ejecutar aplicaciones de Windows en otros sistemas operativos. Wine para Android ahora ha llegado a la versión 5.0. ¡Compruébalo!

El ecosistema de aplicaciones de Android ha evolucionado constantemente a lo largo de los años de existencia de Android, impulsado por la adopción constante de los dispositivos móviles como la principal interacción con la computadora para la mayoría de las personas. Muchos usuarios han gravitado hacia un estilo de vida exclusivamente móvil, y eso se debe a que las aplicaciones y el ecosistema de aplicaciones móviles han logrado satisfacer sus necesidades particulares. Pero si alguna vez necesitas una aplicación de escritorio sin tener acceso a un escritorio, ¿qué harías? Aquí es donde entra Wine, una capa de compatibilidad de Windows que permite a los usuarios ejecutar aplicaciones completas de Windows en diferentes sistemas operativos. Wine para Android tiene ahora llegó a la versión 5.0, recopilando los esfuerzos de desarrollo del equipo durante un año.

Wine es una capa de compatibilidad gratuita y de código abierto para Windows, cuyo objetivo es permitir que los programas informáticos desarrollados para Windows se ejecuten en otros sistemas operativos. Wine para Android lleva Wine a Android, obviamente. Wine no es un emulador (que en realidad es un backronym recursivo del nombre), por lo que sólo puede ejecutarse versiones de aplicaciones específicas de arquitectura: la versión ARM de Wine para Android solo ejecutará aplicaciones ARM, y no x86.

Los aspectos más destacados de la versión estable de Wine 5.0 incluyen compatibilidad con múltiples monitores y compatibilidad con Vulkan 1.1. El registro de cambios completo para la actualización es el siguiente:

Registro de cambios de Wine 5.0:

  • Módulos PE:
    • La mayoría de los módulos están construidos en formato PE (Portable Executable, el formato binario de Windows) en lugar de ELF cuando el compilador MinGW está disponible. Esto ayuda a varios esquemas de protección contra copia que verifican que el contenido en el disco y en la memoria de los módulos del sistema sean idénticos.
    • Los binarios PE reales se copian en el prefijo Wine en lugar de los archivos DLL falsos. Esto hace que el prefijo se parezca más a una instalación real de Windows, a costa de algo de espacio adicional en el disco.
    • Los módulos que se han convertido a PE pueden utilizar funciones C estándar de caracteres anchos, así como constantes de caracteres de caracteres anchos como L"abc". Esto hace que el código sea más fácil de leer.
    • No todos los módulos se han convertido todavía a PE; Este es un proceso continuo que continuará durante la serie de desarrollo de Wine 5.x.
    • El tiempo de ejecución de Wine C se actualiza para admitir enlaces a archivos binarios compilados por MinGW; se utiliza de forma predeterminada en lugar del tiempo de ejecución MinGW al crear archivos DLL.
  • Gráficos:
    • Se admiten correctamente varios adaptadores de pantalla y monitores, incluidos los cambios de configuración dinámica.
    • El controlador Vulkan admite hasta la versión 1.1.126 de la especificación Vulkan.
    • La biblioteca WindowsCodecs puede convertir más formatos de mapas de bits, incluidos los formatos indexados por paleta.
  • Directo 3D:
    • Las aplicaciones Direct3D de pantalla completa inhiben el protector de pantalla.
    • Los presentes de la cadena de intercambio DXGI informan a la aplicación cuando se minimiza la ventana correspondiente. Por lo general, esto permite que las aplicaciones reduzcan el uso de la CPU mientras están minimizadas y, en algunos casos, es necesario para permitir que la ventana de la aplicación se restaure nuevamente.
    • El cambio entre los modos de pantalla completa y ventana usando la combinación estándar Alt+Enter se implementa para aplicaciones DXGI.
    • Las siguientes características están implementadas para aplicaciones Direct3D 12:
      • Cambiar entre pantalla completa y ventana.
      • Cambio de modos de visualización.
      • Regalos a escala.
      • Intercambiar intervalos. Estas características ya se implementaron anteriormente para versiones anteriores de la API de Direct3D.
    • Se mejora el manejo de varios casos extremos. Entre otros:
      • Valores de referencia fuera de rango para las pruebas alfa y de plantilla.
      • Muestreo de recursos 2D con samplers 3D y viceversa.
      • Dibujo con texturas mapeadas y buffers.
      • Uso de objetos de clipper DirectDraw no válidos.
      • Crear dispositivos Direct3D en Windows no válido, como la ventana del escritorio.
      • Ventanas gráficas con una Z mínima mayor o igual a la Z máxima.
      • Los recursos se vinculan a través de vistas de recursos de sombreador y vistas de destino de renderizado o de plantilla de profundidad al mismo tiempo.
      • Blits entre formatos con y sin componentes alfa. Dado que las aplicaciones con buen comportamiento no dependen de estos casos extremos, normalmente solo afectan a una o dos aplicaciones cada una. Sin embargo, hay bastantes de ellos.
    • Las regiones de textura sucias se rastrean con mayor precisión para las cargas de texturas Direct3D 8 y 9.
    • Las cargas de texturas 3D comprimidas con S3TC requieren menos espacio de direcciones. Dado que las texturas 3D pueden ser potencialmente grandes y el agotamiento del espacio de direcciones es una preocupación para las aplicaciones de 32 bits, las texturas 3D comprimidas con S3TC se cargan por segmento, en lugar de en una sola carga.
    • Se implementa la interfaz ID3D11Multithread.
    • Se han realizado varias correcciones y mejoras en el cálculo de iluminación para aplicaciones DirectDraw más antiguas.
    • Se implementa soporte limitado para blits en cadenas de intercambio.
    • Se implementan más API de reflexión de sombreadores.
    • El blitter de CPU wined3d puede manejar recursos fuente comprimidos. La compatibilidad con recursos de destino comprimidos ya se implementó en una versión anterior.
    • La base de datos de tarjetas gráficas Direct3D reconoce más tarjetas gráficas.
    • Nuevas claves de registro HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • "shader_backend" (REG_SZ) El backend del sombreador a utilizar. Los valores posibles son "glsl" (predeterminado) para GLSL, "arb" para programas de vértices/fragmentos ARB y "none" para deshabilitar la compatibilidad con sombreadores.
      • "strict_shader_math" (REG_DWORD) Habilite (0x1) o deshabilite (0x0, predeterminado) una traducción más estricta de sombreadores Direct3D, potencialmente con un costo de rendimiento. Actualmente, esto solo marca la diferencia con el backend del sombreador GLSL predeterminado en combinación con los controladores propietarios de NVIDIA.
    • Clave de registro HKEY_CURRENT_USER\Software\Wine\Direct3D obsoleta:
      • "UseGLSL" Esto ha sido reemplazado por la configuración "shader_backend" anterior.
  • D3DX:
    • Se implementa soporte para comprimir texturas usando compresión S3TC.
    • Varias operaciones, como p.e. Los rellenos de textura en superficies no asignables se implementan más correctamente. Anteriormente, su implementación dependía de que la implementación de Direct3D subyacente no aplicara restricciones de mapeo.
    • Se han realizado varias mejoras y correcciones en el marco de efectos.
  • Núcleo:
    • La mayoría de las funciones que solían estar en Kernel32 se trasladan a KernelBase, para seguir la arquitectura de las versiones recientes de Windows.
    • Las bibliotecas de 32/64 bits incorrectas se ignoran cuando se encuentran en la ruta de búsqueda, para permitir cargar la correcta si se encuentra más adelante en la ruta.
    • Los objetos del kernel se emulan mejor para los controladores de dispositivos que esperan manipular objetos desde el lado del kernel.
    • Se implementan los objetos de sincronización a nivel de kernel, como bloqueos de giro, exclusión mutua rápida, bloqueos de eliminación y variables de recursos.
    • El estado de la batería del sistema se informa correctamente a las aplicaciones.
  • Interfaz de usuario:
    • Las ventanas minimizadas se muestran usando su barra de título en lugar de los antiguos íconos de estilo Windows 3.1.
    • Se implementan los nuevos estilos de botones Botones divididos y Enlaces de comando.
    • El control Editar establece los márgenes correctamente también para las fuentes CJK.
  • Integración de escritorio:
    • Se crean enlaces simbólicos a los directorios Unix correspondientes para las carpetas 'Descargas' y 'Plantillas'.
  • Los dispositivos de entrada:
    • Los controladores de dispositivos Plug & Play se pueden instalar y cargar al inicio.
    • Los controladores de juegos cuentan con un mejor soporte, incluido el soporte adecuado para los controles de interruptor de sombrero, volante, acelerador y freno.
    • La antigua API de joystick de versiones de Linux anteriores a la 2.2 ya no es compatible.
  • .NETO:
    • El motor Mono se actualiza a la versión 4.9.4, incluidas partes del marco de trabajo de Windows Presentation Foundation (WPF).
    • Los complementos Gecko y Mono admiten la instalación compartida, donde los archivos se usan directamente desde una ubicación global en /usr/share/wine en lugar de copiarse en cada nuevo prefijo.
  • Internet y redes:
    • El motor Gecko se actualizó para admitir cadenas de herramientas recientes.
    • Se implementan varias API HTML nuevas.
    • MSHTML admite algunos elementos SVG.
    • VBScript admite la propagación de excepciones y objetos de error.
    • Se implementan varias funciones integradas de VBScript.
    • El modo compatible con JScript EcmaScript se amplía para admitir más funciones.
    • Los objetos de script JScript y VBScript exponen interfaces de información de tipo.
    • La configuración del proxy HTTP se puede recuperar a través de DHCP.
    • Se admiten redirecciones HTTP de pasaporte.
    • El servicio HTTP y la biblioteca del lado del cliente correspondiente (HTTPAPI) están parcialmente implementados.
  • Criptografía:
    • Las claves ECC (curva elíptica) son compatibles cuando se utiliza GnuTLS.
    • Se implementa la importación de claves y certificados de blobs PFX.
    • Se admite el algoritmo de derivación de claves PBKDF2.
  • Texto y fuentes:
    • Las funciones de posicionamiento OpenType son compatibles con DirectWrite y están habilitadas para escritura latina de forma predeterminada, incluido el interletraje.
    • El acceso a los datos de fuentes se hace más seguro al validar las distintas tablas de datos antes de usarlas.
    • Las interfaces DirectWrite se actualizan a un SDK reciente, implementando algunas de las últimas incorporaciones de API.
  • Audio Video:
    • Las bibliotecas XAudio2 se reimplementan para utilizar la biblioteca FAudio externa, para una mejor compatibilidad.
    • Las bibliotecas de Media Foundation se completan e incluyen:
      • Soporte para colas de trabajo asíncronas integradas y de usuario.
      • Capacidad para enviar devoluciones de llamadas periódicas, elementos de trabajo en espera, programados y regulares, con soporte para prioridad de elementos.
      • Soporte para colas de eventos de medios.
      • Varias API principales para manejar objetos de tipo multimedia, descriptores de transmisión y presentación, atributos de objeto, objetos de transmisión de bytes, muestras y buffers.
      • Implementación inicial de Source Resolver.
      • Implementación inicial de la API Source Reader.
      • Implementación del objeto Sample Grabber.
      • Soporte central para la construcción de objetos de topología.
      • Implementación incorporada del reloj de presentación, comenzó a implementar la funcionalidad de sesión multimedia.
    • El filtro de captura de video se ha adaptado para usar v4l2 en lugar de la API v4l1 obsoleta, lo que permite el uso de algunas cámaras que no son compatibles con v4l1.
    • Se eliminó la compatibilidad con la traducción y lectura de YUV a RGB desde dispositivos v4l2 usando mmap(); Ahora dependemos de libv4l2 para ambas cosas.
    • Se han eliminado los decodificadores AVI, MPEG-I y WAVE integrados; ahora dependemos de GStreamer o Mac QuickTime Toolkit para decodificar dichos archivos multimedia.
    • Se implementan algunas API de configuración de VMR7 más.
    • Los controladores de sonido admiten ajustes de volumen por canal.
  • Internacionalización:
    • Las tablas de caracteres Unicode se basan en la versión 12.1.0 del estándar Unicode.
    • Se implementa la normalización Unicode.
    • La identificación de la región geográfica se establece automáticamente en el registro según la ubicación actual. Se puede modificar si es necesario en HKEY_CURRENT_USER\Control Panel\International\Geo.
    • Se admiten los idiomas cingalés y asturiano.
    • Se admite la página de códigos 28601 (latín/tailandés).
  • RPC/COM:
    • El analizador typelib admite estructuras y matrices complejas.
    • Existe una implementación inicial de la biblioteca de tiempo de ejecución de Windows Script.
    • Existe una implementación inicial de la biblioteca Microsoft ActiveX Data Objects (ADO).
  • Instaladores:
    • Se admiten archivos de parche de Microsoft Installer (MSI).
    • La herramienta WUSA (instalador independiente de Windows Update) admite la instalación de archivos de actualización .MSU.
  • Plataformas ARM:
    • La desenredado de excepciones se implementa para ARM64, utilizando la biblioteca libunwind.
    • Los proxies OLE sin problemas son compatibles con ARM64.
  • Herramientas de desarrollo/Winelib:
    • El depurador remoto de Visual Studio se puede utilizar para depurar aplicaciones que se ejecutan en Wine.
    • La biblioteca Debug Engine (DBGENG) está parcialmente implementada.
    • Los binarios creados para un destino Windows ya no dependen de la biblioteca libwine, para permitirles ejecutarse en Windows sin dependencias adicionales. La biblioteca libwine ya no está diseñada para Windows.
    • El compilador de recursos y el compilador IDL admiten una opción '--sysroot' para permitir localizar archivos de encabezado en entornos de compilación cruzada.
    • Winegcc admite las opciones '--target', '--wine-objdir', '--winebuild' y '-fuse-ld' que facilitan su uso como compilador cruzado o con cadenas de herramientas personalizadas.
    • El encabezado wine/unicode.h ya no está disponible para las aplicaciones, ya que las funciones finalmente serán eliminadas y reemplazadas por las funciones estándar de caracteres amplios en tiempo de ejecución de C.
  • Construir infraestructura:
    • Los binarios de prueba se crean en formato PE si MinGW está disponible, por lo que el mismo binario de prueba se puede ejecutar tanto en Wine como en Windows. El objetivo de creación de 'prueba cruzada' ya no es necesario ni compatible.
    • La convención de llamada 'fastcall' se admite en archivos de especificaciones. Utiliza la manipulación de nombres correcta para las compilaciones de Windows.
    • Se admite un indicador de punto de entrada '-import' en los archivos de especificaciones, para marcar funciones que necesitan que se genere un prefijo de código de parche para sus procesos de importación.
    • Winebuild admite una opción '--builtin' para agregar una firma especial a los archivos binarios de PE para marcarlos como componentes integrados de Wine.
  • Aplicaciones integradas:
    • Se implementa la herramienta CHCP. Permite configurar la página de códigos de la consola.
    • Se implementa la herramienta MSIDB. Permite manipular bases de datos MSI.
  • Mejoras de rendimiento:
    • Las diversas funciones de tiempo utilizan relojes del sistema de mayor rendimiento, si están disponibles, para reducir la sobrecarga en el bucle de renderizado de muchos juegos.
    • Las búsquedas de archivos aprovechan la compatibilidad con el plegado de cajas del sistema de archivos ext4 si está habilitado en el directorio que se busca.
    • Los cuadros de lista de estilo sin datos (LBS_NODATA) tienen un mejor rendimiento para una gran cantidad de elementos.
    • Los bloqueos Slim Reader/Writer, los eventos con clave y las variables de condición utilizan futexes en Linux para evitar viajes de ida y vuelta al servidor Wine.
  • Nuevas dependencias externas:
    • El compilador cruzado MinGW-w64 se utiliza para crear módulos en formato PE.
    • La biblioteca FAudio se utiliza para implementar XAudio2.
    • La biblioteca Inotify se utiliza para notificaciones de cambios de archivos en plataformas BSD.
    • La biblioteca Unwind se utiliza para el manejo de excepciones en ARM64.
    • Se utiliza la biblioteca Video4Linux versión 2 en lugar de la versión 1.

leer más


Fuente: Sede del vino

Historia vía: AndroidPolicía