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.
Respuestas:
Este es el quid de la cuestión. Puede recompilar su programa C heredado con un Visual Studio más nuevo, corregir todas las advertencias y errores del compilador, y generalmente convertir un sistema antiguo en uno idéntico que se ejecute en Windows 7 (o posterior si es necesario), pero si los controladores no funciona, entonces las posibilidades de que funcione incluso virtualizado son escasas.
A menos que pueda actualizar o reemplazar los controladores / hardware, no comenzaría a considerarlo.
fuente
Creo que esto es más un problema acerca de cómo obtener virtualbox o vmware para proporcionar acceso al puerto serie de los hosts que sobre el sistema operativo de virtualización o incluso el sistema operativo invitado. Comenzaría con un sistema host que ejecute un sistema operativo moderno (win 7/8/10 o Linux distro) con un adaptador de puerto USB a serie basado en una implementación real rs-232, como el prolífico pl2303.
Use un SO moderno como host, instale virtualbox y cree una VM invitada e instale cualquier SO que sea compatible. La clave es conseguir que el puerto RS-232 en el SO invitado pase a la VM invitada. Utilice un módem nulo y un programa de terminal para asegurarse de que el puerto RS-232 funcione en el sistema operativo host local.
Si el host es Linux, se necesitan algunos permisos para virtualizar el hardware local, y en la mayoría de los casos, su cuenta de inicio de sesión en el grupo vboxusers se encargará de eso.
fuente
Es una decisión de gestión. Su administración debe estar en condiciones de determinar cuánto dinero ganan al admitir Windows 3.11. Si tienen algún cerebro, se darán cuenta de que los clientes que se quejan si no los apoyan de forma gratuita en realidad no le hacen ganar dinero. Puede apoyarlos diciéndoles cuál es el costo de soportar una versión anterior. No solo en términos de trabajo real, sino también en términos de no poder utilizar tecnologías más nuevas.
El último momento en el que debe soportar una máquina es cuando no puede comprar reemplazos en eBay.
fuente