\r\n\r\n

なぜ64ビットOSは16ビットアプリケーションを動かすことができないのか?

64ビットコンピュータで古い16ビットアプリケーションを実行できないのはなぜでしょうか? その理由と、回避策をご紹介します...

コンピュータが64ビットアーキテクチャを採用し始めると、ユーザーは古い16ビットアプリケーションの実行がうまくいかないことにすぐに気がついた。なぜ64ビットマシンは16ビットアプリケーションを動かすことができないのか?

この質問に対する答えは、誰に聞いても混乱するものです。まず、16ビットアプリケーションを動かすことは不可能ではありません。ただ、難しいですね。第二に、この難しさの原因は、CPUのアーキテクチャとOSにある。

心配しないでください。この記事を読み終わる頃には、もう迷うことはないでしょう。

cpuアーキテクチャの歴史

最後に読みたいのは歴史の授業でしょう?心配しないでください、これは短いですから。また、64ビットシステムでは、なぜ16ビットアプリケーションをネイティブに実行できないのかを理解することも重要です。

80年代、90年代に生きていた人なら、当時最先端技術だと誰もが思っていた16ビットの恐竜を覚えているのではないでしょうか。

当時はそうでした。これらの古いマシンは、1978年にインテル8086プロセッサーを搭載していた。プロセッサは16ビットアドレッシングで1Mbのアドレス空間にアクセスすることができた。初期のコンピューターは64KBのメモリーしか搭載していなかったので、これは大きな前進であり、パーソナルコンピューティングの新しい時代の幕開けとなったのである。

このモード(リアルモードと呼ばれる)では、一部がRAMに確保され、残りはBIOSとコンピュータハードウェア(グラフィックカードなど)に利用される。

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

16ビットエンディング、ややあり。

1985年、インテルは次世代のプロセッサーを発表した。インテル初のCPUである「インテル386」は、一度に32ビットを使ってメモリをアドレス指定でき、最大4GBのアドレス指定可能なメモリにアクセスすることが可能だった。当時は、これがパソコンユーザーにとって大きなブレイクスルーとなり、パソコンゲームは全盛期を迎えようとしていた。

32ビットアーキテクチャの登場により、より多くのメモリにアクセスできるようになっただけでなく、ソフトウェアが16ビットコードか32ビットコードかをシステムにマークできる一連の機能を含む、拡張版プロテクトモードが登場したのだ。これは、いわゆるVirtual 86モードによって実装されており、基本的には仮想8086システムを内蔵しています。

このように、CPUアーキテクチャの進化に伴い、ハードウェア(CPUプログラミング)、ソフトウェア(OSやアプリケーション)ともに後方互換性が保たれているため、非常に古いソフトウェアをまだ動かしたいというユーザーもいることでしょう。パソコンユーザーにとっては便利ですが、多くの企業や中小企業にとってはレガシーシステムのために必要不可欠なものです。

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

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

しかし、この大きな進歩は、大きな代償を伴うものでした。長期間のサポートが必要な16ビットアプリケーションを「リアルモード」または「バーチャル8086モード」で実行しようとすると、「program.exeは有効なWin32アプリケーションではありません」というエラーメッセージが表示されることがあるそうです。"

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

つまり、64ビットシステムで16ビットのMS-DOSアプリケーションを動かすことは「不可能」だが、ユーザーが回避策を講じることは不可能ではないのである。しかし、なぜこのようなことが起こるのでしょうか。

64ビットアーキテクチャはntvdmを削除

長年、32ビットプロセッサーの各世代において、オペレーティングシステムは古い16ビットDOSアプリケーションの処理に力を注いできました。NTVDM、つまりNT Virtual DOSマシンを使って行われた。

この32ビットアプリケーションはWindows OS上で動作し、仮想8086を使って16ビットアドレッシングを扱える486アーキテクチャをエミュレートしています。残念ながら、「ロングモード」アドレッシングは、このような状況に安全に適応することはできません。その代わり、DOSアプリケーションの実行をサポートするために、8086プロセッサを完全にエミュレートする必要があります。

マイクロソフトは、初の64ビットOSの迅速なリリースをサポートするために、この取り組みを断念したようだ。マイクロソフトのサポートページには、"16ビットのMS-DOSとMicrosoft Windows 3.xのユーティリティは起動しない "と明記されている。

謝罪もなく、サポートも全くない。

市場にある多くの仮想化製品は、いずれにせよこれを実現しており、マイクロソフトは明らかに、この車輪に再投資することが最善の利益であるとは考えていないようです。

64ビットシステムで16ビットアプリケーションを動作させる方法

64ビットWindowsシステムが16ビットDOSアプリケーションの実行をサポートしていないからといって、これが不可能というわけではありません。少し余分に工具を取り付ければ大丈夫です。

クラシックなDOSゲームが好きな方や、古き良き時代のコンピュータのレトロなアプリケーションを使っている方には、選択肢のひとつになると思います。ここでは、新しいWindowsパソコンで実行できる4つの方法を紹介します。

1 do**oxでレトロゲームをプレイ

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

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

これらのゲームのほとんどは、放棄されたソフトウェアとみなされるほど古いものなので、合法的にダウンロードし、無料で遊ぶことができるのが最大の魅力です。

2 virtualboxでアプリケーションを実行する

windowsxpやwindows7などのOSは16ビットアプリケーションをネイティブで動かすことができるため、仮想マシン上にOSを構築すれば、64ビットシステム上でも同じアプリケーションを動かすことができるのです。

VirtualBoxは、最も有名でインストールが簡単なアプリケーションの1つです。VirtualBoxのセットアップと使用方法について完全なガイドを用意していますので、今すぐこの方法を使い始めることができます。

ただ、インストールするオペレーティングシステムを正しく選択する必要があります。Windows 7以前のOSにこだわれば、古いDOSアプリケーションをすぐにダウンロードして、仮想システムにインストールすることができます。

iii. リナックスを使う

Linuxについて何を言おうとも、ほとんどのLinuxディストリビューションに共通しているのは、16ビットアプリケーションのサポートです。PAEカーネルを使用するディストリビューションでは、4GBの32ビットシステムに制限されないので、システム上でデュアルブートとして適切なLinuxディストリビューションを実行することも選択肢の一つです。

デュアルブートソリューションと仮想マシンの2つのオプションがあります。あるいは、Windowsを完全に捨てて、Linuxを使うこともできます。

4 シミュレーターの使用

古いDOSアプリケーションを実行できるエミュレータは、DOSBoxだけではありません。エミュレータも良いものがたくさんあります。特にゲーマーであればなおさらです。

クリスチャンは、コモドール・アミガ、ラズベリー・パイ、アンドロイド、そしてクラシックなスーファミをあらゆるPCでエミュレートする方法を解説しています。

これは氷山の一角に過ぎない。ネットで検索すれば、さまざまなエミュレータのライブラリが見つかり、想像できる限りのレトロアプリケーションを実行することができます。マイクロソフトは古い16ビットアプリケーションを見捨てたかもしれないが、まだ選択肢はある。

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

64ビットマシン上で16ビットアプリケーションを動かすことが不可能であると考える理由はありません。不可能かもしれませんが、ご覧の通り、この課題を達成するためのソリューションはたくさんあります。

  • 2021-03-26 10:39 に公開
  • 閲覧 ( 80 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ