web-dev-qa-db-ja.com

UEFIはBIOSを「置き換え」、「ファームウェアに接続」しますが、BIOS ==ファームウェアなのでWTF?

グーグルで「UEFI定義」を探すと、次のことがわかります。

Unified Extensible Firmware Interface(UEFI)は、コンピューターのファームウェアをオペレーティングシステム(OS)に接続するソフトウェアプログラムの仕様ですUEFIは最終的にBIOSを置き換えることが期待されています

了解しました。BIOSに置き換わり、コンピューターのファームウェアをOSに接続します。しかし、BIOSとは何ですか? BIOS、つまり「コンピュータのファームウェア」はもうありませんか? (これを参照 SU Answer

したがって、UEFIおよび次のような他の画像のすべての定義( wikiページ から述べられている)は次のように結論付ける必要があります 全く無意味 完全に不正確?

UEFI Graph

(...この図で、ファームウェアがBIOSを意味する場合、UEFIは何を再び置き換えることになっていますか?)

3
lapin

この分野では、さまざまな人々がさまざまな方法で用語を使用しているため、100%の合意はなく、混乱を招く可能性があります。そうは言っても…….

  • ファームウェア-この用語は通常、マザーボードまたはその他のハードウェアデバイスのチップに保存されているソフトウェアを指します。 (SSD、USBフラッシュドライブ、および同様のフラッシュストレージは注目すべき例外です。このようなデバイスに保存されているソフトウェアは、SSD自体を制御するファームウェアを除いて、ファームウェアではありません。)マザーボード、一部(すべてではない)のプラグインカード、​​ハードディスク、ルーター、スイッチ、およびその他の多くのコンピューターコンポーネントにはすべてファームウェアがあります。最近のデバイスには、ソフトウェアでアップグレード可能なファームウェアが搭載されていることがよくあります。古いファームウェアを更新されたファームウェアに置き換えるプログラムを実行できます。
  • [〜#〜] bios [〜#〜]-この用語は通常、次の2つの方法のいずれかで使用されます。
    • 狭義-狭義に適用、[〜#〜] bios [〜#〜]は、1980年代から最近までの元のIBM PCまたはそのクローンに組み込まれたファームウェアを指します(およそ2011年)。このタイプのBIOSは、16ビットコードと一連の制御インターフェイスを使用して、コンピューターがDOS、Windows、OS/2、Linux、およびその他のOSを起動できるようにします。これは、このBIOSを、Apple IIs、Apple Mac、または最新のEFI)などの他のコンピューターで使用されるファームウェアと区別する非常に特殊な機能のセットです。ベースのPC。
    • 広く-最も広く使用されている場合、[〜#〜] bios [〜#〜]は、コンピューターのマザーボード上のファームウェアを指します。これは、10年前のx86 PC、最新のPC、Apple IIなど)である可能性があります。個人的には、元のIBM PCとそのクローンが非常に支配的になっているため、この使用は嫌いです。 「BIOS」という用語が使用されている場合、一般的にはBIOSの観点から考えられます。したがって、この用語が別のタイプのファームウェアに関連して使用されている場合、IBMPCスタイルのBIOSについて誤った想定をします。
  • [〜#〜] efi [〜#〜]-EFI(またはEFIバージョン2.xであるUnified EFI [UEFI])は、コンピュータのマザーボード用の最新タイプのファームウェアです。共有した図ではファームウェアとは別に示されていますが、EFIは通常、マザーボード上のチップに格納されているため、ほとんどの人はファームウェアの一部と見なしています。ただし、ハードディスクからロードされたプログラムとして実行することはできます。また、ファームウェアの基本的なハードウェア初期化コードに依存しています。つまり、EFIはファームウェアの全体ではありません。 (対照的に、古いスタイルのPC BIOSはこの初期化を行います。)初期のx86/x86-64実装の中には、BIOSを使用して低レベルのハードウェア初期化を行うものもありますが、EFIはBIOSを置き換えることを目的としています。最近のほとんどのEFIは、このようにBIOSに依存していませんが、ひねりがあります。互換性サポートモジュール(CSM)は、BIOSベースのコンピューター用に設計されたブートローダーをEFIで実行できるようにするEFIコンポーネントです。したがって、ほとんどのEFIベースのx86-64システムは、BIOSブートローダーまたはEFIブートローダーのいずれかを使用して起動できます。この機能は間違いなく役立つ場合もありますが、 私のこのページ で詳しく説明しているように、他の場合よりも多くの問題を引き起こす可能性もあります。

したがって、[〜#〜] i [〜#〜]がこれらの用語を使用する方法[〜#〜] bios [〜#〜][〜#〜] efi [〜#〜]は2つの異なるタイプですファームウェアの。 ( OpenFirmwarewiki )のような他のものもあります。)ただし、[〜#〜] bios [〜# 〜]firmwareは、特にマザーボード上のファームウェアを参照する場合、多かれ少なかれ同義語です。このシステムでは、EFIはBIOSの一種です。私はこの2番目のアプローチが嫌いです。なぜなら、人々はPCの最初の30年の歴史に基づいて、たとえばブートローダーがハードディスクのMBRにあるという仮定を引きずり込む傾向があり、EFIベースのコンピューターには当てはまらないからです。残念ながら、多くのPCメーカーは、[〜#〜] bios [〜#〜]firmwareを同義語として使用しています。

また、チェックアウトすることもできます この質問とそれに対する私の答え これは関連していますが、あなたの質問と同一ではありません。

4
Rod Smith