Mantengo una gran parte del código heredado, escrito en C. Este código se escribió inicialmente para ser comparado con Windows 3 para grupos de trabajo, y luego se creó una versión para NT. Esta aplicación heredada todavía está en uso hoy en día, se ejecuta alegremente en estaciones de trabajo 3.11 y NT desde principios de los 90. Funciona y hace lo que se supone que debe hacer, y la razón por la que todavía viven es que los controladores para algunos de los equipos personalizados que pertenecen a la solución no son compatibles con Windows posterior.
También hay una aplicación diferente que he mantenido que por las mismas razones solo funciona en Win2k.
Sin embargo, a medida que avanzan las cosas, cada vez es más difícil ejecutar estos entornos heredados. En este momento mantengo máquinas físicas con el software de desarrollo instalado, para poder trabajar en hardware nativo. Pero estos pueden morir en cualquier momento (después de todo, tienen 25 años).
Entonces mi pregunta es, ya que es 2016, ¿cuáles son mis opciones para mantener este entorno arcaico de una manera más estable? ¿Se puede mover un 3.11 al alojamiento en la nube?
Intenté la virtualización, pero debido a la naturaleza especializada de las configuraciones, no pude hacer que funcionara con los controladores del dispositivo, por lo que creo que es posible que sea necesario hacer una imagen completa del sistema operativo tal como está y luego ejecutarlo en un VM para desarrollar el software? ¿Es posible tal cosa para versiones de SO huésped tan antiguas como Win3 y NT?
¿Hay alguna experiencia en mantener plataformas antiguas como estas vivas para el desarrollo, pero de una manera más moderna y segura, de las que pueda sacar provecho?
Mi objetivo es deshacerme de las viejas máquinas físicas y pasar a la virtualización.