Suporte ao desenvolvimento para sistemas operacionais mais antigos

14

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.

Richard Tyregrim
fonte
Qual software de VM você tentou? VMware? Caso contrário, tente, eu tenho pelo menos um hardware para o qual consegui que os drivers trabalhassem apenas com esse software, mas nenhum outro software de VM.
Doc Brown
Além disso: qual será o pior cenário se o hardware morrer amanhã e você não tiver alternativa até agora? Sua empresa irá se bancrupt?
Doc Brown
Eu tentei o VMware e o VirtualBox. Dos dois, o VirtualBox falhou ao carregar o Win3, mas conseguiu carregar o NT4, mas sem CD, alteração de resolução ou suporte ao mouse. O VMWare carregou o Win3, mas também não tinha drivers, portanto a tela estava bagunçada. No momento, estou alterando a emulação para experimentar o PCem. Isso funciona melhor, mas então eu não obter nenhum aumento de velocidade ao longo hardware velho e eu falta VM coisas como discos de partilha etc.
Richard Tyregrim
3
Honestamente, quando fica difícil conseguir peças de reposição, é hora de pensar em substituir o material antigo por uma solução mais nova. Em algum momento, manter essas coisas antigas vivas se torna menos econômico do que criar pelo menos algumas partes recentemente.
Doc Brown
1
Onde você conseguiu drivers para o hardware personalizado?
JeffO

Respostas:

4

drivers para alguns dos hardwares personalizados pertencentes à solução não são compatíveis com versões posteriores do Windows

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.

gbjbaanb
fonte
Obrigado por responder. Eu estava pensando que pode haver uma opção de emulação ou VM disponível que se assemelhe ao HW real usado nas máquinas Win3, para que eu possa usá-lo para instalar os drivers de dispositivo personalizados nesse ambiente e conectar os dispositivos, por exemplo com todas as intenções e propósitos, parece que está sendo executado em hardware legado. Além disso, na recompilação, como eu disse, o código usa quantidades bastante extensas de chamadas de baixo nível para a API do Win, bem como algumas cutucadas desagradáveis ​​nas estruturas internas. Então eu acho que isso iria quebrar no modelo de desktop Win7, embora eu não tenha tentado portá-lo completamente.
Richard Tyregrim
2
Você deve tentar uma rápida tentativa de porta, simplesmente para ver quanto é difícil lidar com isso - na minha experiência, o código antigo tende a portar para novos sistemas operacionais Windows surpreendentemente facilmente, com apenas algumas coisas realmente obsoletas.
Gbjbaanb
4

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.

Thomas Carlisle
fonte
2

É 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.

gnasher729
fonte