オペレーティング システムの実行中の BIOS の機能は何ですか?

オペレーティング システムの実行中の BIOS の機能は何ですか?

BIOS には (電源ボタンを押した後に POST を実行し、ブートローダーを起動し、OS に制御を渡す以外に) オペレーティング システムの実行中に何らかの目的や機能があるのだろうかといつも疑問に思っていました。

オペレーティング システムは実行中に BIOS と通信しますか? 通信する場合、どのように通信しますか?

答え1

現代のOSでは、ほとんどないLinus Torvalds 氏は、そのタスクは「OS をロードして、そこから抜け出すだけ」だと述べたと伝えられています。

MS-DOS などの古いオペレーティング システムでは、割り込みを呼び出すことによって、多くのタスク (ディスク アクセスなど) を BIOS に依存していました。

最近の OS では、ブートローダはすぐに 32 ビットまたは 64 ビット モードに切り替わり、OS カーネルを実行します。カーネルは独自の割り込みハンドラを登録でき、ユーザー空間アプリケーションから呼び出すことができます。カーネルのルーチンは、より移植性が高く (特定のハードウェアに依存しないため)、より柔軟 (OS ベンダーはハードウェアに付属のものを使用する必要はなく、必要に応じて変更可能)、より洗練され (BIOS にプログラムされたコードではなく、任意の複雑なコードを実行可能)、より安全 (OS が共有リソースへのアクセスを制御し、独自の任意の権限スキームを実装してプログラムが互いに上書きするのを防ぐことができるため) になります。

特定のハードウェアとやりとりするために、OS は独自のデバイス ドライバーをロードして使用できます。そのため、OS やアプリケーションがほとんどの BIOS ルーチンを呼び出す必要はまったくありません。実際、セキュリティ上の理由から、BIOS 割り込みは無効になっています。BIOS は 16 ビット リアル モードで動作するため、最新の OS では呼び出すのが難しくなっています。

OS の実行中は BIOS の使用は非常に制限されますが、その機能は依然として周辺的に使用されます。例えば、コンピュータがスリープ状態になると、OSは実行されておらず、最終的にはファームウェアがハードウェアを正しい状態に設定してOSを一時停止および再開することになります。これらの用途は通常、交流ピ完全なBIOSインターフェースへの呼び出しではなく、ACPI呼び出しです。ACPIはBIOSの拡張機能であり、「電源管理と構成ポリシーを決定するためにプラットフォーム固有のファームウェアに依存していた以前の BIOS 中心のシステムとは対照的に、電源管理をオペレーティング システム (OSPM) の制御下に置く」

正式には「BIOS」は特定のファームウェアインターフェースを指しますが、一般的にはコンピュータファームウェア全般を指す用語として使用されています。最近のコンピュータ(特にApple製)では、BIOS(厳密な意味で)がUEFI当然ながら、これらの関数を実装するために呼び出されるのはこれです。

BIOSの役割が時間の経過とともにどのように減少したかの詳細については、ウィキペディア

答え2

BIOS はオペレーティング システムにさまざまなサービスを提供しますが、そのほとんどは電源管理に関連しています。

  • CPUとバスクロックの変更
  • マザーボードデバイスの有効化/無効化
  • 拡張ポート電源制御
  • ディスクへのサスペンドとRAMへのサスペンド
  • イベント設定を再開する

ディスクへのサスペンドは、OS がより速く状態を復元できるため (カーネル状態のみが再ロードされ、プログラム状態は必要に応じてスワップインされるため、RAM 全体を再ロードするよりも大幅に高速です)、ほとんどの場合 OS に実装されていますが、この機能は仕様に残っています。

Suspend-to-RAM は、RAM の初期化とテストをスキップする BIOS に依存しているため、OS では実装できません。そのため、OS は、現在の RAM の内容で再開することを BIOS に伝えるための API を必要とします。このサービスを提供するために、BIOS は OS に特定の RAM 領域をそのまま残すように要求します。

すべての BIOS サービスに対する OS のインターフェイスは、エミュレーター上で実行する必要のある仮想マシン コードの一部であり、ハードウェアに必要な I/O 操作を生成します。サスペンドの場合、これは通常、ハードウェア書き込みの 1 つを実行すると割り込みがトリガーされ、制御が BIOS に渡されるように実装されます。

答え3

UEFI 標準を使用するシステムなど、最新のシステムでは、OS が BIOS を使用する主な領域が 3 つあります。1 つ目は、UEFI ランタイム サービスと呼ばれる一連のサービスです。これらのサービスにより、OS は、BIOS が使用していた時間、起動順序、現在のユーザー セキュリティ プロファイル、マザーボードや DIMM に関する情報など、BIOS だけが知っている情報を取得できます。

2 つ目はシステム管理モードです。これは、高優先度割り込み (SMM) によってアクセスされるメモリの隠しセクション (SMRAM) です。多くの BIOS は、これを使用して、セキュリティの高い OEM 機能を実装したり、ハードウェアの回避策を実装したりします。

3 つ目は ACPI です。ACPI は、OS が業界標準またはデバイス ドライバーを使用して検出できる情報を補強するために、OS が使用する構成、電源管理、ハードウェア データおよびコードを提供します。たとえば、ハード ドライブの電源を制御するための特別な信号があるか、標準でカバーされていないバッテリーと通信するための特別な方法があるかなどです。

ティム

答え4

上で述べたことに加えて、Intelは逆に、ハードウェアへの帯域外アクセスを提供することで、より多くのものを組み込み始めています。アクティブマネジメントテクノロジーBIOS とマザーボードに組み込まれており、OS とは独立して制御できます。これらのボードを使用すると、実際にかなりのことが可能になります。これを組み込みと考えるか、2 番目の OS と考えるかは別の問題ですが、ハードウェアがオンボードで、コンポーネントが BIOS にあるため、私は組み込みにこだわっています。

インテルのマーケティングの戯言

関連情報