web-dev-qa-db-ja.com

コンピューターのBIOSをシミュレートして仮想的にプログラムするためのオープンソースソフトウェアはありますか?

Linuxで実行できるVirtual-boxのようなオープンソースソフトウェアを探していますが、BIOSをプログラムする可能性があります(パーソナルBIOSプログラムを使用してください)。

コンピューターの起動プロセスを(実用的な方法で)理解し、x86リアルモードをより深く操作したいと思います。また、周辺機器と通信するためのさまざまなメカニズム、つまりキーボードやハードドライブなどのデバイスの制御について理解し、I/Oモードと割り込みについても理解したいと思います。

7
Karim Manaouil

X86プロセッサと周辺機器をエミュレートできる仮想マシンエミュレータがいくつかあります。それぞれにBIOSが付属しており、そのうちのいくつかにはオープンソースBIOSが付属しています。 [〜#〜] qemu [〜#〜] を確認する必要があります。これは、ホストとは完全に独立して動作します(エミュレートされたマシンがホストと同じアーキテクチャ)。 QEMUには PC-BIOS が付属しています。

X86リアルモードで作業したい場合は、 Dosbox もご覧ください。

Coreboot もあなたの興味を引くはずです。これはx86用のオープンソースBIOSです。

BIOSを見ると、ハードウェア機能が大幅に進化した30年以上の歴史から受け継がれたすべての癖を含め、x86プロセッサがどのように起動するかについての洞察が得られます。理解したいのが周辺機器との通信方法であるかどうかを確認するのは最善ではありません。そのためには、オペレーティングシステムカーネルのデバイスドライバー(Linux、または MINIX などのより単純なドライバー)を確認してください。

また、ARMやMIPSなどの他のCPUアーキテクチャを調べて、OSとハードウェアの相互作用で一般的なものとPCアーキテクチャに固有のものを理解することをお勧めします。