リアルモードとは
リアルモードは、コンピューターのマイクロプロセッサのメモリアドレス指定スキームおよび動作状態です。 リアルモードでは、プログラムがアクセスできるメモリ(通常、ランダムアクセスメモリ(RAM))は、ハードウェア、ソフトウェア、または基本入出力サービス(BIOS)によって管理またはバッファリングされません。 つまり、プログラムは、メモリの用途に関係なく、到達可能なすべてのメモリアドレスにアクセスでき、メモリロケーションの読み取りと書き込みのすべての側面を単独で管理する必要があります。 リアルモードの使用には、アクセス可能なメモリの量が1メガバイトに制限されているという事実など、いくつかの制限があります。これは、このモードのプロセッサではアドレスの長さが20ビットのみであるためです。 実用的な観点から、コンピューターソフトウェアはリアルモードを使用しなくなりました。これは、保護モードと呼ばれる、より安全で、拡張可能で、より柔軟なアドレス指定モードに置き換えられたためです。
コンピューターの中央処理装置(CPU)はリアルモードをアクティブにできます。モードのほとんどの側面は、本質的にかなりアトミックであるため、アセンブリ言語で記述されたアプリケーションで通常見られる問題を実際に処理します。 元の8086アーキテクチャに基づくプロセッサチップは、電源を入れるとリアルモードで開始され、以前のハードウェア用に作成されたプログラムを実行できるようになりますが、これにはエミュレーションソフトウェアの成功が必要になる場合があります。 保護モードは、2011年現在、実際のアドレス指定にほぼ完全に置き換わっており、実際のアドレス指定を使用できるプログラムをコンパイルできるコンパイラーがほとんどなく、それを実行できるメインストリームオペレーティングシステムがさらに少なくなっています。
リアルモードのメモリは基本的に、16ビットセグメントアドレスとセグメント内の4ビットオフセットで構成されるアドレスを使用して自由にアクセスできる単一の線形のバイトシーケンスであり、結合すると完全な20ビットアドレスになります。 プログラムは、メモリ内の任意のポイントにアクセスし、その場所にあるものに関係なく、何でも読み書きできます。 つまり、適切な管理と知識がなければ、実際のアドレス指定モードを使用するプログラムは、オペレーティングシステムとシステムBIOSを簡単に上書きしたり、物理的なハードウェア割り込みをトリガーしたり、周辺機器に誤って信号を送信したりする可能性があります。 これにより、システムがフリーズまたはクラッシュするだけでなく、データの損失やハードウェアの物理的損傷を引き起こす可能性もあります。
プロセッサアーキテクチャが進歩すると、ほとんどすべてのソフトウェアで保護モードが最終的にリアルモードに置き換わりました。 時間が経つにつれて、1 MBを超えるRAMにアクセスできず、システムバスの20ビット以上を使用できなくなったため、実際のアドレス指定モードの使用は不要になりました。コンピューター。 実際のアドレス指定は、重大なセキュリティリスクももたらします。 実際のアドレッシングモードを使用するプログラムを作成するいくつかの方法の1つは、アセンブリ言語を使用して、起動時に自動的に保護モードに切り替えない特別なディスクオペレーティングシステム(DOS)でプログラムを実行することです。