古いOSの開発をサポート


14

私は、Cで書かれたレガシーコードの大部分を維持しています。このコードは当初、Windows 3 for Workgroupsに対してコンパイルするために書かれ、後にNT用のバージョンが作成されました。このレガシーアプリケーションは現在も使用されており、90年代前半から3.11およびNTワークステーションで快適に実行されています。正常に機能し、本来の動作を行います。また、彼らがまだ生きている理由は、ソリューションに属するカスタムハードウェアの一部のドライバーが後のWindowsと互換性がないためです。

同じ理由でWin2kでのみ動作する別のアプリケーションもあります。

ただし、状況が進むにつれて、これらのレガシー環境を実行することがますます難しくなっています。現在、開発用ソフトウェアがインストールされた物理マシンを保持しているため、ネイティブハードウェアで作業できます。しかし、これらはいつでも死ぬかもしれません(結局25歳です)。

それで、私の質問は、2016年を見て、この古風な環境をより安定した方法で維持するための私のオプションは何ですか?3.11をクラウドホスティングに移行できますか?

仮想化を試しましたが、セットアップの特殊な性質のため、デバイスドライバーで動作させることができなかったため、OSの完全なイメージをそのまま作成してから、 VMはソフトウェアを開発しますか?Win3やNTと同じくらい古いバージョンのゲストOSでは、このようなことは可能ですか?

これらのような古いプラットフォームを開発のために生かしながら、より現代的で安全な方法で、私が引き出すことができる経験はありますか?

私の目標は、古い物理マシンを取り除き、仮想化に移行することです。


どのVMソフトウェアを試しましたか?VMware?そうでない場合は、試してみてください。ドライバをそのソフトウェアのみで動作させ、他のVMソフトウェアは動作させないようにするハードウェアが少なくとも1つあります。
ドックブラウン

さらに、明日ハードウェアが故障し、これまでに代替手段がない場合、最悪のシナリオはどうなりますか?あなたの会社は破産しますか?
ドックブラウン

VMwareとVirtualBoxを試しました。2つのVirtualBoxのうち、Win3をロードできませんでしたが、NT4をロードできましたが、CD、解像度の変更、またはマウスのサポートはありませんでした。VMWareはWin3をロードしましたが、ドライバーも不足していたため、画面がめちゃくちゃになりました。今、代わりにエミュレーションに切り替えて、PCemを試しています。これは、良い作品が、その後、私は古いハードウェアに対して何らの速度の増加を取得していないと私は、ディスクなどを共有するようなVMのものが欠けている
リチャードTyregrim

3
正直なところ、スペアパーツを入手するのが困難になったら、古いものを新しいソリューションに置き換えることを考える時が来ました。ある時点で、それらの古いものを維持することは、少なくともいくつかの部分を新しく作成するよりも経済的ではなくなります。
ドックブラウン

1
カスタムハードウェアのドライバーはどこで入手しましたか?
ジェフ

回答:


4

ソリューションに属するカスタムハードウェアの一部のドライバーは、後のWindowsと互換性がありません

これが問題の核心です。従来のCプログラムを新しいVisual Studioで再コンパイルし、すべてのコンパイラの警告とエラーを修正し、通常、古いシステムをWindows 7(または必要な場合はそれ以降)で実行される同一のシステムに変換できますが、ドライバーは仮想化された場合でも動作する可能性はわずかです。

ドライバー/ハードウェアを更新または交換することができない限り、私はそれを検討し始めません。


返信いただきありがとうございます。私はWin3マシンで実際に使用されているHWに似たVMまたはエミュレーションオプションが利用できると考えていたので、それを使用してその環境にカスタムデバイスドライバーをインストールし、デバイスを接続することができますすべての意図と目的は、レガシーハードウェア上で実行されているように見えます。また、私が言ったように、再コンパイルでは、コードは内部APIでの厄介な突っ込みだけでなく、Win APIへの非常に広範囲の低レベル呼び出しを使用します。だから、Win7デスクトップモデルでは壊れると思いますが、完全に移植しようとはしていません。
リチャードティレグリム

2
簡単に移植を試みて、対処がどれだけ難しいかを確認する必要があります-私の経験では、古代のコードは驚くほど簡単に新しいWindows OSに移植される傾向があります。
gbjbaanb

4

これは、仮想化OSやゲストOSよりも、virtualboxまたはvmwareを使用してホストシリアルポートへのアクセスを提供することに関する問題だと思います。多作のpl2303などの実際のrs-232実装に基づいたUSBからシリアルポートへのアダプターを備えた最新のOS(win 7/8/10またはLinuxディストリビューション)を実行するホストシステムから始めます。

最新のOSをホストとして使用し、virtualboxをインストールし、ゲストVMを作成して、互換性のあるOSをインストールします。重要なのは、ゲストOS上のRS-232ポートをゲストVMに渡すことです。ヌルモデムと端末プログラムを使用して、RS-232ポートがローカルホストOSで動作していることを確認します。

ホストがLinuxの場合、ローカルハードウェアを仮想化するために必要ないくつかの権限があり、ほとんどの場合、ログインアカウントをvboxusersグループに入れることで処理されます。


2

それは管理上の決定です。経営陣は、Windows 3.11をサポートすることで、彼らが稼いでいる金額を判断できる立場にあるべきです。もし彼らが頭脳を持っているなら、彼らはあなたが無料で彼らをサポートしなければ文句を言う顧客が実際にあなたにお金をmakeけないことに気付くでしょう。古いバージョンをサポートするための費用を伝えることでサポートできます。実際の作業だけでなく、新しいテクノロジーを使用できないという点でも。

マシンをサポートする必要があるのは、eBayで交換品を購入できないときです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.