
私が理解したように、BIOSは1)ハードウェアを初期化し、2)特定の場所にジャンプしてブートローダをRAMにロードします。 BIOSがハードウェア初期化を実行するときは、いくつかのルーチン(正しいレジスタビット、遅延などの設定)を実行する必要があります。私が尋ねる質問は、これらのBIOSルーチンが次のようなものかどうかです。
BIOSルーチンはLinuxカーネルによって呼び出されますか、それともLinuxカーネルドライバが必要なルーチンを再実装しますか?
BIOSはアセンブリ言語で書かれていますか?それとも一種のハードウェア定義言語で書かれていますか?
答え1
時々違うよねほとんどの場合、カーネルはシステムファームウェアを介さずにハードウェアを直接駆動しますが、場合によってはファームウェアが提供する機能に依存します。例えばACPI経由)。
もともとPC BIOSはアセンブリ言語で書かれていました(ソースコードはIBMテクニカルリファレンスマニュアルに含まれています)。最新のPCシステムファームウェアはCで書かれています。千ヌオコア。