Я поддерживаю большую часть унаследованного кода, написанного на C. Этот код изначально был написан для компиляции с Windows 3 для рабочих групп, а затем была создана версия для NT. Это унаследованное приложение все еще используется сегодня, оно весело работает на рабочих станциях 3.11 и NT начала 90-х годов. Он работает, и он делает то, что должен, и причина, по которой они все еще живут, заключается в том, что драйверы для некоторого пользовательского оборудования, принадлежащего решению, не совместимы с более поздней Windows.
Существует также другое приложение, которое я утверждал, что по тем же причинам работает только на Win2k.
Тем не менее, по мере продвижения дела становится все труднее запускать эти устаревшие среды. Прямо сейчас я держу физические машины с установленным программным обеспечением для разработки, чтобы я мог работать на собственном оборудовании. Но они могут умереть в любое время (в конце концов, им 25 лет).
Таким образом, мой вопрос, учитывая, что сейчас 2016 год, каковы мои варианты для сохранения этой архаичной среды более стабильным образом? Можете ли вы перенести 3.11 на облачный хостинг?
Я пробовал виртуализацию, но из-за специфики настроек я не мог заставить ее работать с драйверами устройств, поэтому я думаю, что может потребоваться создать полный образ ОС как есть, а затем запустить его в ВМ для разработки программного обеспечения? Возможно ли такое для старых версий гостевых ОС, таких как Win3 и NT?
Есть ли какой-нибудь опыт в поддержании старых платформ, подобных этим, для разработки, но в более современном, безопасном виде, из которого я могу извлечь?
Моя цель - избавиться от старых физических машин и перейти на виртуализацию.
Ответы:
Это суть дела. Вы можете перекомпилировать свою унаследованную программу на C с более новой Visual Studio, исправить все предупреждения и ошибки компилятора и, как правило, превратить старую систему в идентичную, которая работает в Windows 7 (или позже, если необходимо), но если драйверы этого не делают. работать, то шансы на его работу, даже виртуализированные, невелики.
Если вы не сможете обновить или заменить драйверы / оборудование, я бы не стал это рассматривать.
источник
Я думаю, что это скорее проблема получения доступа к последовательному порту хостов для virtualbox или vmware, чем к виртуализации ОС или даже гостевой ОС. Я бы начал с хост-системы, работающей под управлением современной ОС (win 7/8/10 или Linux distro) с адаптером USB-последовательный порт, который основан на реальной реализации RS-232, например, на продуктивном pl2303.
Используйте современную ОС в качестве хоста, установите virtualbox, создайте гостевую виртуальную машину и установите любую совместимую ОС. Ключом является получение порта RS-232 в гостевой ОС, передаваемого гостевой виртуальной машине. Используйте нуль-модем и терминальную программу, чтобы убедиться, что порт RS-232 работает в локальной операционной системе.
Если хостом является Linux, для виртуализации локального оборудования требуются некоторые разрешения, и в большинстве случаев об этом позаботится ваша учетная запись входа в группу vboxusers.
источник
Это управленческое решение. Ваше руководство должно быть в состоянии определить, сколько денег они зарабатывают, поддерживая Windows 3.11. Если у них есть мозги, они поймут, что клиенты, которые жалуются, если вы не поддерживаете их бесплатно, на самом деле не приносят вам денег. Вы можете поддержать их, сообщив им, сколько стоит поддержка старой версии. Не только с точки зрения реальной работы, но и с точки зрения неспособности использовать новые технологии.
Самое последнее время, когда вы должны поддерживать машину, это когда вы не можете купить замену на eBay.
источник