web-dev-qa-db-ja.com

BIOSにはある種の一般的な「ドライバ」がありますか

BIOSは、ドライバーなしでI/Oデバイスをどのように制御しますか?

たとえば、BIOSにグラフィックカード用のドライバがない場合、コンピュータの起動中に画像はどのように表示されますか。

インストールされているハードウェアに関係なく、BIOSが基本的な機能を実行できるようにする、すべてのBIOSおよびハードウェアに標準であるある種の汎用ドライバーはありますか。

どんな助けでもいただければ幸いです。

ありがとう。

22
RJSmith92

BIOSにはある種の一般的な「ドライバ」がありますか

BIOSは、ドライバーなしでI/Oデバイスをどのように制御しますか?

標準。すべてのコンポーネントは基本的なインターフェースを実装しており、BIOSはそれを使用するようにプログラムされています。もちろん、これはbasicインターフェイス(BIOSの「B」の略)であるため、ハードウェアの全機能を利用することはできません。これは、ハードウェアに直接アクセスできるドライバーを介して実装するソフトウェアに任されています。

当初、BIOSメーカーは、互換性が必要な場合にデバイスが使用することが期待される一連の API を作成しました。彼らは「 interrupts 」を介してこれを行いました。これは、デバイスがプログラムにinterruptを通知する方法です。何かが起こった、またはその逆。

たとえば、BIOSにグラフィックカード用のドライバがない場合、コンピュータの起動中に画像はどのように表示されますか。

起動前表示の場合、ビデオアダプタのファームウェアは [〜#〜] vesa [〜#〜] (Video Electronics Standards Association)を実装します。これは、アクセスを簡素化するために作成された標準です。ディスプレイハードウェア。 BIOSは、提供されている標準機能を使用してビデオハードウェアにアクセスする方法を知っています。これは、DirectXがハードウェアへの高レベルAPIとして実装された方法と多少似ているため、プログラマーはすべてのハードウェア構成を考慮する必要がありませんでした。

どのハードウェアがインストールされていても、BIOSが基本的な機能を実行できるようにする、すべてのBIOSとハードウェアにまたがるある種の汎用ドライバーはありますか。

ある種。これはドライバーではありませんが、標準API;デバイスの初期化やデータの入出力などの基本的なことを行うために使用できるプログラミング関数のセット。

メーカーが製品を販売したい場合は、互換性を持たせるために、少なくとも標準APIを実装していることを確認する必要があります。このようにして、システムはハードウェアを検出でき、ブートクリティカルなデバイスの場合、それらに完全にアクセスする方法を知っているソフトウェアドライバーがロードされるまで、基本レベルでそれらにアクセスできます。

13
Synetech

PCのBIOSは、8ビットCP/MシステムのBIOSと同様の機能を果たすことを目的としており、PCが80年代半ばに引き継がれる前に普及していました。 BIOSは、いくつかのデバイス(画面、ディスク、テープ、COMポート)への入出力を行うための最小限のブートローダーとハードウェア依存の低レベルルーチンを含むことを目的としていました。これを行うための知識はROM-ドライバーは必要ありません。もちろん、このROMでサポートされる追加のハードウェアもありません。(電源管理やACPIなどは、90年代に登場しました。 PCがユビキタスプラットフォームとしての地位を確立した後。)

(CP/M「ファイルシステム」はBDOSと呼ばれるディスクからロードされたコンポーネントにありました-同様に、FATファイルシステムとそのインターフェイスの知識は2つの隠しファイルMSDOS.SYSまたはIO.SYSの(少なくとも1つ)にあります-一部ではありませんBIOS ROMの。)

ただし... PC BIOSは、CP/Mとは異なり、拡張カードに含めることができる「オプションROM」の概念をサポートしていました。したがって、BIOSを拡張するための最小限のメカニズムが少なくともありました。 CGAで始まるビデオカード(CGAの前身であるMDAもそれを行った可能性があります)には、BIOSインターフェイスにI/O機能を拡張または追加するオプションROM)があります(これが表示される理由です)。 BIOSが起動する前のNVidiaメッセージ。)ハードコントローラとSCSIカードも同様です。これらはすべて引き続き機能します。古いネットワークカードの多くには、ブートROM用のソケットがあります。

また、80年代に誕生したPCクローンメーカーは、互換性のあるBIOSインターフェイスだけを提供しないことをすぐに決定しましたが、タイマーチップなどのすべての低レベルハードウェアを含むPCプラットフォーム全体をコピーする必要があったことにも注意してください。 、割り込みコントローラーなど(IBM独自のものがほとんどなかったため、これは比較的簡単でした。)これは、BIOSの処理が遅く、プログラマーがハードウェアに直接アクセスしたためです。特にゲームの場合はそうです。

したがって、オプションROMとPCプラットフォームを形成する標準ハードウェアのこのコンセンサスの間、およびPCの進化を通じて下位互換性が維持されているという事実の間で、ドライバーなしでディスプレイを使用したい場合は、次のことができます。

  • ビデオハードウェアのオプションROM)によって「フック」される可能性のある標準のBIOSインターフェイスを使用します
  • または、システム内のハードウェアについて推測し、基本的なハードウェアに直接アクセスします

すべてのPCディスプレイハードウェアは、起動時に「VGA互換」モードで動作します。元のIBMVGAアダプターには、以前のEGA、CGA、およびMDAカードと互換性のあるモードがありました。つまり、BIOSまたはOSの外部で実行されているものは、慣例により、1985年と同じように、ディスプレイに接続されているのと同じメモリを読み書きできると想定できます。

22
LawrenceC