BIOS(POSTの実行、ブートローダーの起動、電源ボタンを押した後のOSへの制御の受け渡しを除く)に、オペレーティングシステムの実行中に何らかの目的や機能があるかどうか、いつも疑問に思いましたか?
オペレーティングシステムは実行中にBIOSと通信しますか?
最近の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は 「オペレーティングシステム(OSPM)の制御下で電源管理を提供するBIOS拡張機能であり、以前のBIOS中央システムは、電源管理を決定するためにプラットフォーム固有のファームウェアに依存していました。構成ポリシー」 。
正式には「BIOS」は特定のファームウェアインターフェイスを指しますが、この用語は一般にコンピュータファームウェア全般を指すために使用されます。最近のいくつかのコンピューター(特にApple ones))はBIOS(sensu strictu)を [〜#〜] uefi [〜#〜] に置き換えました。もちろん、これらの機能を実装するために呼び出されるものです。
BIOSの役割が時間とともにどのように減少したかについての詳細は、 Wikipedia を参照してください。
BIOSはオペレーティングシステムにいくつかのサービスを提供します。そのほとんどは電源管理に関連しています。
OSはより高速に状態を復元できるため、ほとんどの場合OSにサスペンドツーディスクが実装されています(カーネル状態のみが再ロードされ、必要なときにプログラム状態がスワップインされます。これはRAM全体を再ロードするよりもはるかに高速です)。機能は仕様に残ります。
RAM初期化とテストをスキップするBIOSに依存しているため、OSがSuspend-to-RAMを実装することはできません。そのため、OSがBIOSに現在のRAMコンテンツで再開しました。このサービスを提供するために、BIOSはOSに特定のRAM領域をそのまま残すように要求します。
すべてのBIOSサービスのOSのインターフェイスは、エミュレーターで実行する必要のある仮想マシンコードの一部であり、ハードウェアへの必要なI/O操作を生成します。サスペンドの場合、これは一般的に実装されているため、ハードウェアの書き込みの1つを実行すると割り込みがトリガーされ、BIOSに制御が移ります。
UEFI標準を使用するシステムなど、OSが最新のシステムでBIOSを使用する3つの主要な領域があります。 1つ目は、UEFIランタイムサービスと呼ばれる一連のサービスです。これらのサービスにより、OSは、BIOSが使用していた時間、ブート順序、現在のユーザーセキュリティプロファイル、マザーボード、DIMMに関する情報など、BIOSだけが知っている情報を取得できます。
2つ目はシステム管理モードです。これは、高優先度の割り込み(SMM)によってアクセスされるメモリ(SMRAM)の非表示セクションです。多くのBIOSはこれを使用して、高セキュリティのOEM機能を実装するか、ハードウェアの回避策を実装します。
3つ目はACPIです。 ACPIは、OSが業界標準またはデバイスドライバーを使用して検出できる情報を補強するために、OSが使用する構成、電源管理、ハードウェアデータおよびコードを提供します。たとえば、ハードドライブの電源を制御するための特別な信号や、標準でカバーされていないバッテリーと通信するための特別な方法があります。
ティム
最近のOSは、主にロードのみにBIOSを使用しますが、特に以下のようないくつかの用途があります。
上記で述べたことに加えて、Intelは反対方向にスイングし始め、 Active Management Technology を介してハードウェアへの帯域外アクセスを提供することにより、BIOSとマザーボードに組み込み、 OSとは独立して制御されます。これらのボードを使用すると、実際にはかなりのことができます。それが作り付けであるか第二のOSであるかを考えるかどうかは別のものですが、それはボード上のハードウェアとBIOSのコンポーネントを持っているので、作り付けに固執しています。