Mantengo una gran parte del código heredado, escrito en C. Este código se escribió inicialmente para que se compilara 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, y se ejecuta alegremente en las 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 aún viven es que los controladores para algunos de los hardware 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 los mismos motivos, solo funciona en Win2k.
Sin embargo, a medida que las cosas avanzan, 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, por lo que puedo trabajar en hardware nativo. Pero estos pueden morir en cualquier momento (tienen 25 años después de todo).
Entonces, mi pregunta es, ya que es 2016, ¿cuáles son mis opciones para mantener este ambiente arcaico de una manera más estable? ¿Puedes mover un 3.11 a cloud hosting?
Intenté la virtualización, pero debido a la naturaleza especializada de las configuraciones, no pude hacer que funcionara con los controladores de dispositivo, por lo que creo que es posible que uno necesite hacer una imagen completa del sistema operativo tal como está y luego ejecutar que en una máquina virtual para desarrollar el software? ¿Es tal cosa posible para versiones de SO huésped tan antiguas como Win3 y NT?
¿Existe alguna experiencia en mantener vivas las plataformas más antiguas como estas para el desarrollo, pero de una manera más moderna y segura, de la que puedo aprovechar?
Mi objetivo es deshacerme de las máquinas físicas antiguas y pasar a la virtualización.