Utrzymuję dużą część starszego kodu, napisanego w C. Ten kod został początkowo napisany w celu kompilacji z systemem Windows 3 dla grup roboczych, a później utworzono wersję dla NT. Ta starsza aplikacja jest nadal używana, wesoło działająca na stacjach roboczych 3.11 i NT od wczesnych lat 90-tych. Działa i robi to, co powinien, a powodem, dla którego nadal działają, jest to, że sterowniki niektórych niestandardowych urządzeń należących do rozwiązania nie są kompatybilne z późniejszym systemem Windows.
Istnieje również inna aplikacja, którą utrzymywałem, że z tych samych powodów działa tylko na Win2k.
Jednak w miarę upływu czasu zarządzanie coraz starszymi środowiskami jest coraz trudniejsze. Obecnie trzymam fizyczne maszyny z zainstalowanym oprogramowaniem programistycznym, więc mogę pracować na rodzimym sprzęcie. Ale mogą umrzeć w dowolnym momencie (w końcu mają 25 lat).
Moje pytanie brzmi: biorąc pod uwagę 2016 rok, jakie mam opcje utrzymania tego archaicznego środowiska w bardziej stabilny sposób? Czy możesz przenieść 3.11 do hostingu w chmurze?
Próbowałem wirtualizacji, ale ze względu na specjalistyczny charakter konfiguracji nie mogłem zmusić go do pracy ze sterownikami urządzeń, więc myślę, że może być konieczne zrobienie pełnego obrazu systemu operacyjnego takim, jaki jest, a następnie uruchomienie go w VM do opracowania oprogramowania? Czy taka możliwość jest możliwa w przypadku starszych wersji systemu operacyjnego, takich jak Win3 i NT?
Czy masz jakieś doświadczenie w utrzymywaniu starszych platform, takich jak te, dla rozwoju, ale w bardziej nowoczesny, bezpieczny sposób, z którego mogę czerpać?
Moim celem jest pozbycie się starych fizycznych maszyn i przejście do wirtualizacji.
Odpowiedzi:
To jest sedno sprawy. Możesz ponownie skompilować starszą wersję programu C za pomocą nowszego programu Visual Studio, naprawić wszystkie ostrzeżenia i błędy kompilatora i ogólnie zmienić stary system w identyczny, który działa w systemie Windows 7 (lub później, jeśli musisz), ale jeśli sterowniki nie praca wtedy szanse na to, że zadziała nawet zwirtualizowana, są niewielkie.
Jeśli nie możesz zaktualizować lub wymienić sterowników / sprzętu, nie zacznę tego rozważać.
źródło
Myślę, że jest to bardziej problem z uzyskaniem dostępu do portu szeregowego hostów przez virtualbox lub vmware, niż w przypadku systemu operacyjnego do wirtualizacji, a nawet systemu gościa. Zaczynam od systemu hosta z nowoczesnym systemem operacyjnym (Win 7/8/10 lub Linux Distro) z adapterem USB na port szeregowy, który jest oparty na prawdziwej implementacji RS-232, takiej jak płodny pl2303.
Użyj nowoczesnego systemu operacyjnego jako hosta, zainstaluj virtualbox i utwórz gościnną maszynę wirtualną i zainstaluj dowolny zgodny system operacyjny. Kluczem jest przesłanie portu RS-232 w systemie operacyjnym gościa na maszynę wirtualną gościa. Użyj modemu zerowego i programu terminalowego, aby upewnić się, że port RS-232 działa w lokalnym systemie operacyjnym hosta.
Jeśli hostem jest Linux, potrzebne są pewne uprawnienia do wirtualizacji lokalnego sprzętu, a w większości przypadków założenie konta logowania do grupy vboxusers zajmie się tym.
źródło
To decyzja kierownictwa. Kierownictwo powinno być w stanie określić, ile zarabiają, wspierając system Windows 3.11. Jeśli mają jakieś mózgi, zdadzą sobie sprawę, że klienci, którzy narzekają, jeśli ich nie wspierasz, nie zarabiają. Możesz wesprzeć ich, informując, jaki jest koszt obsługi starej wersji. Nie tylko pod względem faktycznej pracy, ale także pod względem niemożności korzystania z nowszych technologii.
Najnowszym momentem, w którym powinieneś wspierać maszynę, jest to, że nie możesz kupić zamienników w serwisie eBay.
źródło