Estou mantendo uma grande parte do código herdado, escrito em C. Esse código foi inicialmente escrito para ser compilado no Windows 3 para Workgroups e, posteriormente, uma versão para o NT foi criada. Esse aplicativo herdado ainda está em uso hoje, sendo executado alegremente nas estações de trabalho 3.11 e NT do início dos anos 90. Ele funciona e faz o que deveria ser feito, e a razão pela qual eles ainda vivem é que os drivers de alguns dos hardwares personalizados pertencentes à solução não são compatíveis com o Windows posterior.
Há também uma aplicação diferente que afirmei que, pelas mesmas razões, só funciona no Win2k.
No entanto, à medida que as coisas avançam, está ficando cada vez mais difícil executar esses ambientes legados. No momento, mantenho máquinas físicas com o software de desenvolvimento instalado, para que eu possa trabalhar em hardware nativo. Mas estes podem morrer a qualquer momento (afinal, eles têm 25 anos).
Então, minha pergunta é, visto que em 2016, quais são minhas opções para manter esse ambiente arcaico de uma maneira mais estável? Você pode mover um 3.11 para hospedagem na nuvem?
Tentei a virtualização, mas devido à natureza especializada das configurações, não consegui fazê-lo funcionar com os drivers de dispositivo, por isso estou pensando que talvez seja necessário criar uma imagem completa do sistema operacional como está e executá-la em um VM para desenvolver o software? Isso é possível para versões de SO convidado tão antigas quanto Win3 e NT?
Existe alguma experiência em manter plataformas antigas como essas vivas para o desenvolvimento, mas de uma maneira mais moderna e segura, da qual posso extrair?
Meu objetivo é livrar-se das antigas máquinas físicas e passar para a virtualização.