LinuxカーネルはBIOSを介してハードウェアにアクセスしますか、それともハードウェアと直接対話しますか?

LinuxカーネルはBIOSを介してハードウェアにアクセスしますか、それともハードウェアと直接対話しますか?

私が理解したように、BIOSは1)ハードウェアを初期化し、2)特定の場所にジャンプしてブートローダをRAMにロードします。 BIOSがハードウェア初期化を実行するときは、いくつかのルーチン(正しいレジスタビット、遅延などの設定)を実行する必要があります。私が尋ねる質問は、これらのBIOSルーチンが次のようなものかどうかです。

  1. BIOSルーチンはLinuxカーネルによって呼び出されますか、それともLinuxカーネルドライバが必要なルーチンを再実装しますか?

  2. BIOSはアセンブリ言語で書かれていますか?それとも一種のハードウェア定義言語で書かれていますか?

ベストアンサー1

  1. 時々違うよねほとんどの場合、カーネルはシステムファームウェアを介さずにハードウェアを直接駆動しますが、場合によってはファームウェアが提供する機能に依存します。例えばACPI経由)。

  2. もともとPC BIOSはアセンブリ言語で書かれていました(ソースコードはIBMテクニカルリファレンスマニュアルに含まれています)。最新のPCシステムファームウェアはCで書かれています。千ヌオコア

おすすめ記事