Desarrollo de soporte para sistemas operativos más antiguos

14

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.

    
pregunta Richard Tyregrim 03.05.2016 - 11:27

3 respuestas

4
  

los controladores para algunos de los hardware personalizados que pertenecen a la solución son   no es compatible con Windows posterior

Este es el quid de la cuestión. Puede volver a compilar su programa C heredado con un Visual Studio más nuevo, corregir todas las advertencias y errores del compilador y, por lo general, convertir un sistema antiguo en uno idéntico que se ejecute en Windows 7 (o posterior si es necesario), pero si los controladores no lo hacen. el trabajo entonces las posibilidades de que funcione, incluso virtualizado, son escasas.

A menos que pueda actualizar o reemplazar los controladores / hardware, no empezaría a considerarlo.

    
respondido por el gbjbaanb 03.05.2016 - 11:31
4

Creo que esto es más un problema sobre la obtención de virtualbox o vmware para proporcionar acceso al puerto serie del host 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 (Windows 7/8/10 o una distribución Linux) con un adaptador de puerto USB a serie que se base en una implementación real rs-232, como el prolífico pl2303.

Use un sistema operativo moderno como host, instale virtualbox, cree una máquina virtual invitada e instale cualquier sistema operativo compatible. La clave es conseguir que el puerto RS-232 en el sistema operativo invitado se pase a la máquina virtual invitada. Use un módem nulo y un programa de terminal para asegurarse de que el puerto RS-232 esté funcionando 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, poner tu cuenta de inicio de sesión en el grupo de vboxusers se hará cargo de eso.

    
respondido por el Thomas Carlisle 04.05.2016 - 01:48
2

Es una decisión de la gerencia. Su administración debe estar en condiciones de determinar cuánto dinero están ganando 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 momento más reciente en el que debe admitir una máquina es cuando no puede comprar reemplazos en eBay.

    
respondido por el gnasher729 04.05.2016 - 09:59

Lea otras preguntas en las etiquetas