En el caso de los ordenadores, Windows en Windows (a menudo abreviado como WOW) es una capa de compatibilidad de las versiones x86 de la familia de sistemas operativos Microsoft Windows NT que permite ejecutar muchos programas heredados de 16 bits que se hicieron para Windows 3.x o antes. WOW fue diseñado para facilitar la transición de aplicaciones antiguas a la arquitectura de 32 bits sin obligar a los usuarios o desarrolladores a reescribir todo el software legado.
Qué es WOW y cómo funciona
WOW funciona como un subsistema de compatibilidad dentro del kernel y del espacio de usuario de Windows NT. Cuando se ejecuta una aplicación de 16 bits, WOW traduce (o "thunkea") llamadas y estructuras de datos de la API de 16 bits a las equivalentes de 32 bits, permitiendo que el código antiguo interactúe con los servicios modernos del sistema operativo. Esta traducción puede incluir conversión de punteros, adaptación del modelo de memoria segmentada de 16 bits al modelo plano de 32 bits y mapeo de objetos de interfaz gráfica y gestión de mensajes.
En implementaciones clásicas, el soporte para aplicaciones de 16 bits se proporciona junto con componentes como WOWEXEC y, para programas basados en DOS, mediante NTVDM (NT Virtual DOS Machine). Sin embargo, las aplicaciones de 16 bits no ejecutan en modo real sobre el hardware: las llamadas directas a dispositivos, interrupciones y acceso a puertos están restringidos por razones de estabilidad y seguridad.
Limitaciones y consideraciones importantes
- No disponible en sistemas x64. Las versiones de Windows de 64 bits no incluyen el soporte para ejecutar programas de 16 bits de forma nativa; si intenta abrir un ejecutable de 16 bits en un Windows x64 normalmente recibirás un mensaje de error indicando que la aplicación no es compatible.
- Compartición de espacio de memoria en 32 bits. En muchas versiones de Windows, varios procesos de 16 bits comparten partes del mismo espacio de direcciones de 32 bits, por lo que un fallo en una aplicación de 16 bits podía afectar a otras aplicaciones de 16 bits en ejecución.
- Sin soporte para controladores de 16 bits ni acceso directo a hardware. Programas antiguos que dependían de drivers o de acceso a puertos y a la memoria física suelen no funcionar correctamente bajo WOW.
- Compatibilidad variable. Aunque muchas aplicaciones simples funcionan bien, otras más complejas (juegos con protección, herramientas de instalación antiguas, utilidades de hardware) pueden presentar problemas o no ejecutarse.
- Riesgos de seguridad. Ejecutar software antiguo y sin actualizaciones puede implicar vulnerabilidades; conviene aislar ese software (por ejemplo en una máquina virtual) y no usarlo con datos sensibles.
Alternativas para ejecutar programas de 16 bits
- Instalar una versión de 32 bits de Windows en una máquina virtual (VirtualBox, VMware, Hyper-V) y ejecutar allí las aplicaciones de 16 bits.
- Usar emuladores especializados como DOSBox para juegos y aplicaciones DOS antiguas.
- Emplear soluciones como WineVDM / OTVDM (proyectos de código abierto) que permiten ejecutar binarios de 16 bits en sistemas Windows x64 en algunos casos.
- Utilizar una instalación física antigua o un equipo dedicado con una versión compatible de Windows cuando la compatibilidad y el rendimiento nativo sean imprescindibles.
- Si el objetivo es mantener una aplicación en producción, considerar la actualización o reescritura de la aplicación en una plataforma moderna de 32/64 bits para mejorar seguridad y soporte a largo plazo.
Diferencia entre WOW y WoW64
Es importante no confundir WOW (Windows on Windows, para ejecutar aplicaciones de 16 bits en Windows de 32 bits) con WoW64, que es la capa que permite ejecutar aplicaciones de 32 bits en versiones de Windows de 64 bits. Ambos nombres son parecidos pero sirven a propósitos distintos.
En resumen, Windows en Windows (WOW) fue una solución práctica para mantener la compatibilidad con software antiguo en las versiones x86 de Windows NT, pero su uso hoy está limitado por las arquitecturas modernas y por razones de seguridad y compatibilidad. Para ejecutar programas de 16 bits hoy en día lo más habitual es usar máquinas virtuales, emuladores o proyectos especializados que adaptan esa funcionalidad a sistemas actuales.