64ビットオペレーティングシステムで16ビットアプリを実行できないのはなぜですか?

64ビットオペレーティングシステムで16ビットアプリを実行できないのはなぜですか?

コンピューターが最新の64ビットアーキテクチャを使用し始めると、ユーザーはすぐに、それらの古い16ビットアプリケーションを実行しても機能しないことに気付きました。 64ビットマシンで16ビットアプリを実行できないのはなぜですか?





その質問への答えは、誰に尋ねるかによっては混乱する可能性があります。一つには、16ビットアプリを実行することは実際には不可能ではありません。それはただ難しいです。第二に、この問題の理由は両方のCPUアーキテクチャにあります オペレーティングシステム。





まだ混乱していますか?心配しないでください、あなたは一人ではありません。しかし、この記事の最後に到達するまでに、もう混乱することはありません。





CPUアーキテクチャの歴史

最後に読みたいのは歴史の授業ですよね?心配しないでください、これは短いものです。 64ビットシステムが16ビットアプリをネイティブに実行できない理由を理解することも重要です。

80年代から90年代にかけて生きていたなら、当時誰もが最先端のテクノロジーだと信じていた古い16ビットの恐竜を覚えているでしょう。



当時はそうでした。それらの古いマシンは実行されました Intel 8086 1978年のプロセッサ。プロセッサは、16ビットアドレス指定を使用して1Mbのアドレス空間にアクセスできました。以前のマシンは64Kbのメモリで動作していたため、これは大きな進歩であり、パーソナルコンピューティングの新時代の始まりを示しました。

このモードでは( リアルモード )、一部はRAM用に予約され、残りはBIOSおよびグラフィックカードなどのコンピュータハードウェアによって使用されました。





少し後に、16ビットアドレス指定を使用して16Mbをアドレス指定できる80286プロセッサを備えたCPUアーキテクチャがさらに進歩しました。 286アーキテクチャには、より多くのメモリのアドレス指定だけでなく、マルチタスクも可能にする機能を備えた「プロテクトモード」が付属しています。古い16ビットアプリケーションを「リアルモード」で実行することは必ずしも簡単ではありませんでしたが、それは可能でした。

16ビットの終わり、一種の...

1985年、Intelは次世代プロセッサであるIntel 386を発表しました。これは、一度に32ビットを使用してメモリをアドレス指定でき、なんと4Gbのアドレス指定可能なメモリにアクセスできるIntel初のCPUでした。当時、これはコンピュータユーザーにとって大きな進歩のように思えました。 PCゲームは全盛期を迎えようとしていました。





32ビットアーキテクチャの出現に伴い、の拡張バージョンが登場しました。 保護モード これにより、より多くのメモリにアクセスできるようになっただけでなく、ソフトウェアが16ビットコードか32ビットコードかに関係なくシステムにフラグを立てることができる一連の機能が含まれていました。これは、として知られているものによって可能になりました 仮想86モード 、これは本質的に組み込みの仮想化8086システムでした。

ご覧のとおり、CPUアーキテクチャの進化から次の進化へと、ハードウェア(CPUプログラミング)とソフトウェア(オペレーティングシステムとアプリケーション)の両方が、必要な非常に古いソフトウェアをまだ持っているすべてのユーザーに対して下位互換性を維持していました。走る。これは個々のコンピューターユーザーにとっては便利でしたが、多くの企業や中小企業にとっては、レガシーシステムにとって重要でした。

64ビットアーキテクチャがすべてを台無しにした

アドレス可能なメモリの4GBの制限は、長年にわたって32ビットシステムの松葉杖のままでした。しかし、64ビットプロセッサの発明により、別のブレークスルーがもたらされました。これらのシステムには、新しいモード( ロングモード )最大1600万テラバイトのメモリをアドレス指定できます。これがコンピュータアプリケーションの制限要因になるまでには、おそらく長い時間がかかるでしょう。

ただし、この驚異的な進歩により、大きなトレードオフが発生しました。長い間サポートされていた「リアルモード」または「仮想8086モード」を必要とする16ビットアプリケーションを実行しようとすると、「Program.exeは有効なWin32アプリケーションではありません」というエラーメッセージが表示されました。

それは苛立たしいことでしたが、それは世界の終わりではありませんでした。ユーザー エミュレーターを使用できます また 仮想マシンをインストールする 従来の16ビットアプリケーションをサポートできる32ビットアーキテクチャとオペレーティングシステムを実行しています。

したがって、64ビットシステムで16ビットMS-DOSアプリケーションを実行することは「不可能」ですが、ユーザーが回避策を使用して実行することは不可能ではありません。しかし、なぜこれが起こったのですか?

64ビットアーキテクチャはNTVDMを削除します

何年にもわたって32ビットプロセッサのすべての世代で、システムが古い16ビットDOSアプリケーションを処理するためにオペレーティングシステムに多大な努力が払われました。これは、NTVDMまたはNT仮想DOSマシンとして知られているものを使用して実現されました。

この32ビットアプリケーションはWindowsオペレーティングシステムで実行され、仮想8086を使用して16ビットアドレス指定を処理できる486アーキテクチャをシミュレートしました。残念ながら、「ロングモード」アドレス指定ではこれに安全に対応できませんでした。代わりに、DOSアプリケーションの実行をサポートするためだけに完全な8086プロセッサをエミュレートする必要がありました。

Microsoftは、最初の64ビットオペレーティングシステムの迅速なリリースをサポートするために、この取り組みをやめることを明確に決定しました。 Microsoftは、サポートページで、「16ビットMS-DOSおよびMicrosoft Windows3.xユーティリティは起動しない」と明確に述べています。

申し訳ありません。それは単にサポートされていません。

とにかくこれを達成できる仮想化製品が市場に多数出回っているため、マイクロソフトは明らかに、車輪の再発明が最善の利益であるとは感じていませんでした。

64ビットシステムで16ビットアプリケーションを実行する方法

16ビットDOSアプリケーションの実行が64ビットWindowsシステムでネイティブにサポートされていないからといって、それが不可能であるとは限りません。セットアップするには、いくつかの追加ツールをインストールする必要があります。

あなたが楽しむなら 古典的なDOSゲーム または、古き良きコンピューティング時代のレトロなアプリケーションを使用する場合は、オプションがあります。新しいWindowsマシンでそれらを実行する4つの方法があります。

1.DOSBoxでレトロゲームをプレイする

PCで古いDOSアプリを実行する最も簡単な方法の1つは、エミュレーターを使用することです。それらの中で最も人気のあるものの1つは DOSBox

マウスの左ボタンが機能しないWindows10

クリスチャンはDOSBoxをインストールして設定する方法を詳しく説明しました 古いレトロゲームを実行する Windowsマシンで。

これの素晴らしいところは、これらのゲームのほとんどが非常に古いので 彼らはアバンダンウェアと見なされます 、だからあなたは合法的にそれらを無料でダウンロードしてプレイすることができます。

2.VirtualBox内でアプリを実行します

WindowsXPやWindows7などのオペレーティングシステムは16ビットアプリケーションをネイティブに実行できるため、これらのオペレーティングシステムのいずれかを使用して仮想マシンを構築することにより、64ビットシステムで同じアプリケーションを実行できます。

このための最もよく知られていてセットアップが簡単なアプリケーションの1つは VirtualBox 。完全なガイドがあります VirtualBoxを設定して使用する方法 、そのため、今すぐこのアプローチの使用を開始できます。

インストールする適切なオペレーティングシステムを選択してください。 Windows 7以前を使い続けると、仮想システムに古いDOSアプリをすぐにダウンロードしてインストールできます。

3.Linuxを使用する

Linuxについてどう思うか、ほとんどのLinuxディストリビューションが正しいことの1つは、16ビットアプリケーションのサポートです。 PAEカーネルを使用したディストリビューションでは、4 GBの32ビットシステムに制限されないため、システムでデュアルブートとして適切なLinuxディストリビューションを実行することも別のオプションです。

これを行うための2つのオプション:デュアルブートソリューションまたは仮想マシン。または、Windowsを完全にダンプして、 Linuxで行く 。あなたのために働くものは何でも。

4.エミュレーターを使用する

古いDOSアプリを実行するために利用できるエミュレーターはDOSBoxだけではありません。同様に機能する優れたエミュレーターがたくさんあります。これは、ゲーマーの場合に特に当てはまります。

クリスチャンは、 コモドールフレンド 、 に ラズベリーパイ 、 NS アンドロイド 、さらには 古典的なSNES どのPCでも。

これは氷山の一角にすぎません。オンラインで検索すると、さまざまなエミュレーターのライブラリ全体が見つかり、想像できるほぼすべてのレトロなアプリを実行できます。 Microsoftは、昔から古い16ビットアプリケーションをあきらめていたかもしれませんが、それでも選択肢はあります。

16ビットをあきらめないでください

あなたがそれだと思うべき理由は何もありません 無理だよ 64ビットマシンで16ビットアプリケーションを実行します。ネイティブでは不可能かもしれませんが、ご覧のとおり、タスクを実行するための解決策はたくさんあります。

共有 共有 つぶやき Eメール YouTubeよりも優れている12のビデオサイト

こちらがYouTubeの代替ビデオサイトです。それらはそれぞれ異なるニッチを占めますが、ブックマークに追加する価値があります。

次を読む
関連トピック
  • ゲーム
  • テクノロジーの説明
  • エミュレーション
  • ウィンドウズ10
  • 64ビット
著者について ライアン・デューブ(942件の記事が公開されました)

ライアンは電気工学の理学士号を取得しています。彼は自動化エンジニアリングで13年間、ITで5年間働いており、現在はアプリエンジニアです。 MakeUseOfの元編集長であり、データの視覚化に関する全国会議で講演され、全国のテレビやラジオで取り上げられました。

RyanDubeのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください