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.
Respostas:
Este é o cerne da questão. Você pode recompilar seu programa C herdado com um Visual Studio mais recente, corrigir todos os avisos e erros do compilador e, geralmente, transformar um sistema antigo em um idêntico, executado no Windows 7 (ou posterior, se necessário), mas se os drivers não trabalho, então as chances de ele trabalhar até virtualizado são pequenas.
A menos que você possa atualizar ou substituir os drivers / hardware, eu não começaria a considerá-lo.
fonte
Acho que isso é mais um problema de obter o virtualbox ou o vmware para fornecer acesso à porta serial do host do que o SO da virtualização ou mesmo o SO convidado. Eu começaria com um sistema host executando um sistema operacional moderno (win 7/8/10 ou distribuição Linux) com um adaptador de porta USB para serial baseado em uma implementação real de rs-232, como o prolífico pl2303.
Use um sistema operacional moderno como host, instale a caixa virtual e crie uma VM convidada e instale qualquer sistema operacional compatível. A chave é obter a porta RS-232 no sistema operacional convidado passada para a VM convidada. Use um modem nulo e um programa de terminal para garantir que a porta RS-232 esteja funcionando no sistema operacional host local.
Se o host for Linux, são necessárias algumas permissões para virtualizar o hardware local e, na maioria dos casos, colocar sua conta de login no grupo vboxusers cuidará disso.
fonte
É uma decisão de gerenciamento. Seu gerenciamento deve estar em posição de determinar quanto dinheiro eles estão ganhando com o suporte ao Windows 3.11. Se eles tiverem cérebros, perceberão que os clientes que reclamam se você não os apoia de graça não ganham dinheiro. Você pode apoiá-los, informando qual é o custo de suporte para uma versão antiga. Não apenas em termos de trabalho real, mas também em termos de não poder usar novas tecnologias.
O momento mais recente em que você deve suportar uma máquina é quando você não pode comprar substituições no eBay.
fonte