最初にドライバーをインストールせずに、BIOS はどのようにしてフラッシュ ストレージから読み取るのでしょうか?

最初にドライバーをインストールせずに、BIOS はどのようにしてフラッシュ ストレージから読み取るのでしょうか?

新しいサムドライブを接続するたびに、ポップアップが表示されInstalling Device Driver、しばらくすると自動実行ダイアログがポップアップ表示されます。

では、起動可能なフラッシュ ドライブから別の OS をインストールする場合、OS 自体に比べて非常に初歩的であると思われる BIOS は、デバイス ドライバーをインストールすることなく、どのようにしてフラッシュ ドライブからデータをすばやく読み取るのでしょうか (それも起動の最初に)。


編集: Linux (私の場合は Ubuntu 12.04) でもデバイス ドライバーをインストールする必要がなく、ドライブが Nautilus で自動的に開くことに気付きました。これはどのように機能するのでしょうか?

答え1

過去 20 年間で、特定のハードウェアの側面は非常に標準化されたため、これらのドライバーをファームウェア (Linux の場合はカーネル) に実際に埋め込むことが容易になりました。USB ストレージに使用されているドライバーを見ると、メーカーやサイズなどに関わらず、ほとんど常に同じです。

同じことは、ほとんどのUSBキーボードやその他の一般的な入力デバイスにも当てはまります。隠蔽周辺動物のクラス。


Linux がドライブの内容を自動的に表示する方法については、大まかに次のようになります。

  1. カーネルは新しく接続されたデバイスを登録します。dmesg接続後にこれを確認するには、
  2. ドライブは、 に​​示すように自動的にマウントされます。通常、#1 にリストされているデバイス ノードに一致するmount -l内容で始まる行が表示されます。/dev/sdc1 on /media/username/Something...
  3. デスクトップ環境はユーザー名のこの新しいマウントポイントを認識し、そのマウントポイントのファイル マネージャーを開きます。

答え2

「ドライバーのインストール」という一連の作業は、Windows でのみ発生します。実際は「新しいデバイス インスタンスの登録」に近いものです。他のオペレーティング システムでも、もちろんプロセスは基本的に同じですが、管理方法が異なります。たとえば、複数の類似デバイスを処理するには、2 つの方法があります。デバイスごとに独立したドライバー インスタンスを実行するか、1 つのインスタンスで複数のデバイスを処理できます。

満たさなければならない要件がいくつかあります。ドライバーは、カーネル (またはカーネルにドライバーをロードするプログラム) が自動的に見つけられる場所に存在する必要があります。Linux/lib/modulesのような状況です。ドライバーが利用できない、またはカーネルに組み込まれていない場合、デバイスは使用できません。

UEFI や BIOS などのファームウェアの場合、これらは自己完結型である必要があるため、ドライバーは組み込まれます。

Jarmund がすでに述べたように、入力デバイスとストレージ デバイスへのインターフェイスは、今日ではほぼ標準化されています。ほぼすべての USB ストレージ デバイスを使用するには、1 つのドライバーで十分です。これが、BIOS と UEFI によってキーボード、マウス、USB ストレージなどを使用できるようにする方法です。

関連情報