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


78

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

オペレーティングシステムは実行中にBIOSと通信しますか?


回答:


72

最新の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中央システムとは対照的に、オペレーティングシステム(OSPM)の制御下で電源管理を可能にする BIOS拡張機能です。

正式には「BIOS」は特定のファームウェアインターフェイスを指しますが、この用語は一般的にコンピューターファームウェアを指すために一般的に使用されることに注意してください。最近のいくつかのコンピューター(特にAppleのコンピューター)はBIOS(sensu strictu)をUEFIに置き換えました。これはもちろんこれらの機能を実装するために呼び出されるものです。

BIOSの役割が時間とともにどのように減少したかについての詳細は、Wikipediaを参照してください


15
システムクロック(時刻)による最小限の相互作用があります。
–MSalters

7
これについて本当によろしいですか?ファン制御、前述のシステム管理モード、プロセッサ速度を制御するACPI全体などはどうですか?
アレクサンダー

32
試してみて、マシンの実行中にBIOSチップをはんだ付けすることができます。
JohnnyFromBF

5
@イアンはなぜ自分のためにそれを難し​​くします。ソケット付きBIOSを備えた古いボードを見つけて、チップを引っ張るだけです。代わりに、IIRCの最近のオーバークロックボードには、ハードウェアスイッチがあり、2つのBIOSを切り替えることができます。Bイメージをフラッシュし、Aで起動し、実行中にBに切り替えます。
ダンニーリー

17
@イアン私はそれをやった。BIOSのフラッシュ中に電源が切れた後、起動しませんでした。まったく同じハードウェアを搭載した20台のマシンがあり、それらは老朽化していました。その後、両方のBOISチップが完全に正常に機能しました。確かに、それはDOSであり、フラッシュソフトウェアを実行していました。それでも印象的だと思います。(私が覚えている限りとして、両審議会は、Pentium 4は、互換性のある、ギガバイトはブランドだった)
イーキンコチ

32

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

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

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

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

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


17

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

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

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

ティム


9

最新のOSはBIOSを主に読み込み専用に使用していますが、次のようないくつかの用途があります。

  • 電源ボタンへの反応(4秒後にPCをシャットダウンします
    )。
  • ノートパソコンの画面の明るさ設定を変更する
  • ラップトップのバッテリーイベント
  • サスペンション

描画の直前に色の値を変更することで明るさを実現できると思いました。
コールジョンソン

3
@ColeJohnson:いいえ:少なくともThinkpadでは、実際にはバックライトの明るさが変わります。
機械式カタツムリ

1
明るさはハードウェアで制御されたパルス幅変調信号であり、高周波数で明るい白色LEDのオンとオフを切り替えます。このライトは、1つの主要なバッテリー消費者です

1

上記で述べたことに加えて、Intelは、OSに依存せずに制御できるBIOSおよびマザーボードに組み込まれたActive Management Technologyを介してハードウェアへの帯域外アクセスを提供することにより、他の方向にスイングし、さらに組み込みを始めています。これらのボードを使用すると、実際にかなりのことができます。組み込みまたは第2 OSのどちらを使用するかは別ですが、ボード上にハードウェアとBIOSのコンポーネントがあるため、組み込みに固執しています。

インテルマーケティングマニア

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.