Sviluppo di supporto per sistemi operativi meno recenti

14

Sto mantenendo una gran parte del codice legacy, scritto in C. Questo codice è stato inizialmente scritto per essere abbinato a Windows 3 per Workgroup e successivamente è stata creata una versione per NT. Questa applicazione legacy è ancora in uso oggi, allegramente con le workstation 3.11 e NT dei primi anni '90. Funziona e fa ciò che deve fare, e il motivo per cui vivono ancora è che i driver per alcuni degli hardware personalizzati che appartengono alla soluzione non sono compatibili con Windows successivo.

C'è anche una diversa applicazione che ho sostenuto che per gli stessi motivi funziona solo su Win2k.

Tuttavia, con il passare delle cose, sta diventando sempre più difficile eseguire questi ambienti legacy. In questo momento tengo le macchine fisiche con il software di sviluppo installato, quindi posso lavorare su hardware nativo. Ma questi possono morire in qualsiasi momento (hanno 25 anni dopo tutto).

Quindi la mia domanda è, visto che è il 2016, quali sono le mie opzioni per mantenere questo ambiente arcaico in modo più stabile? Puoi spostare un 3.11 su cloud hosting?

Ho provato la virtualizzazione, ma a causa della natura specialistica delle configurazioni, non riuscivo a farlo funzionare con i driver di periferica, quindi penso che potrebbe essere necessario creare un'immagine completa del sistema operativo così com'è e quindi eseguire che in una VM per sviluppare il software? È possibile una cosa del genere per le versioni del SO guest vecchie come Win3 e NT?

Ci sono esperienze per mantenere vivi piattaforme di questo tipo per lo sviluppo, ma in un modo più moderno e sicuro, da cui posso attingere?

Il mio obiettivo è sbarazzarmi delle vecchie macchine fisiche e passare alla virtualizzazione.

    
posta Richard Tyregrim 03.05.2016 - 11:27
fonte

3 risposte

4

drivers for some of the custom hardware belonging to the solution are not compatible with later Windows

Questo è il nocciolo della questione. È possibile ricompilare il programma C legacy con un Visual Studio più recente, correggere tutti gli avvisi e gli errori del compilatore e generalmente trasformare un vecchio sistema in uno identico che gira su Windows 7 (o più tardi se necessario) ma se i driver non lo fanno funzionano quindi le possibilità che funzioni anche virtualizzate sono scarse.

A meno che tu possa aggiornare o sostituire driver / hardware, non inizierei a prenderlo in considerazione.

    
risposta data 03.05.2016 - 11:31
fonte
4

Penso che questo sia più un problema relativo al fatto che virtualbox o vmware forniscano l'accesso alla porta seriale degli host piuttosto che al sistema operativo di virtualizzazione o al sistema operativo guest. Vorrei iniziare con un sistema host con un sistema operativo moderno (vinci 7/8/10 o Linux distro) con un adattatore da porta USB a seriale basato su una reale implementazione rs-232, come il prolifico pl2303.

Utilizzare un sistema operativo moderno come host, installare virtualbox e creare una VM guest e installare qualsiasi sistema operativo compatibile. La chiave sta nel trasferire la porta RS-232 sul sistema operativo guest alla VM guest. Utilizzare un modem null e un programma terminale per assicurarsi che la porta RS-232 funzioni sul sistema operativo host locale.

Se l'host è Linux, sono necessarie alcune autorizzazioni per virtualizzare l'hardware locale e, nella maggior parte dei casi, occuparsi di ciò nel mettere il proprio account di accesso nel gruppo vboxusers.

    
risposta data 04.05.2016 - 01:48
fonte
2

È una decisione di gestione. La tua gestione dovrebbe essere in grado di determinare quanti soldi stanno facendo supportando Windows 3.11. Se hanno dei cervelli, capiranno che i clienti che si lamentano se non li sostengono gratuitamente non ti fanno effettivamente guadagnare denaro. Puoi sostenerli dicendo loro qual è il costo del supporto di una vecchia versione. Non solo in termini di lavoro effettivo, ma anche in termini di non poter utilizzare le nuove tecnologie.

L'ultima volta in cui dovresti supportare una macchina è quando non puoi comprare rimpiazzi su eBay.

    
risposta data 04.05.2016 - 09:59
fonte

Leggi altre domande sui tag