2009-05-06 11 views
4

Linux 2.6では、プロテクトモードからリアルモードに移行するにはどうすればよいですか?Linux 2.6では、プロテクトモードからリアルモードに移行するにはどうすればよいですか?

+7

なぜですか?あなたのLinuxがインストールされていても十分なクラッシュはありませんか? – paxdiablo

+1

あなたは正確に何を達成しようとしていますか?あなたが求めていることは本当に可能ではありませんが、もう少し文脈を与えれば、誰かがあなたが必要とするものを達成する別の方法を示すことができるかもしれません。 – jalf

答えて

10

あなたはしません。

カーネルはリアルモードではまったく機能できませんし、ビオスコールも(賢明に)できないので、何もできません。

DosEMUがv86モードを使って "リアルモード"コードを実行する方法を見てみることもできますが、それだけです。

+1

私はそれが悪い考えであることに同意しますが、それは技術的に可能です... –

+0

それは技術的に可能ですか? i386はプロテクトモードに入ってからリアルモードに切り替える方法がないことを覚えているようですが、間違いかもしれません。 –

+1

これは技術的に可能であり、ほとんどのBIOSとブートローダが必要です。実際のモードに似たGDTでセグメントを設定して、プロテクトモードビットをオフにするだけです。問題は、あなたがユーザーモードでそれをすることができず、カーネルが役に立たないことです、あなたはおそらくv86を望んでいます。 – rpjohnst

1

ELKS Linuxポートはリアルモードを実行できますが、2.6付近にはありません。

2

実際にハードウェアでリアルモードが必要な場合は、FreeDOSもご覧ください。

2

ブート/スタートシーケンスの最初の段階で、カーネルがリアルモードから保護モードに切り替わり、戻ってこない。 詳細については、How Boot Loaders Workを参照してください。

リアルモードを必要とするプログラムがある場合は、v86 modeがあります。 Someworkはこれを64ビットモードでサポートしています。

1

カーネルの一部としていくつかのコード行を書くことで、プロテクトモードからリアルモードに切り替えることができます。

主なものは、後にCR0レジスタにPEビットを無効にされ、我々は適切なGDT、LDT、IDTをロードする必要があります。 詳細はhttp://www.sudleyplace.com/pmtorm.htmlのリンクをたどってください。

+0

リンクをありがとう。しかし、プロテクトモードからリアルモードに切り替えるための簡単な命令がありますか?/ dev/sdaの最初の512バイトを0000:0700にロードし、JMPをそのアドレスにロードしますか? – WinEunuuchs2Unix

関連する問題