PC BIOSの概念は、IBM PCが引き継ぐ前に8ビットZ-80 "S-100"バスベースのコンピューターで一般的なオペレーティングシステムであるCP / Mから派生しています。
CP / Mは、ハードウェア依存機能がROM(BIOS)にあると予想していました。ブートローダーによってディスクからロードされた別の部分は、CP / Mファイルシステム(BDOS)をサポートし、その後コマンドプロセッサまたは「シェル」(CCP)をサポートするソフトウェアでした。CP / Mがサポートすることが期待されていたハードウェアはそれほど多くありませんでした:プリンターまたはモデムを接続できるディスクドライブ、ディスプレイ、シリアルポートまたは2つ(COMまたはAUXポート)。
PC BIOSはCP / Mと同様の基本的なブートストラップ機能を実行し、DOSはBIOS機能を使用して基本的な入出力を意図どおりに実行しました。プログラマーは遅いため、これらの機能をバイパスすることになりました。これにより、互換性のあるインターフェイスを備えたBIOSを提供する代わりに、80年代半ばにPCクローンメーカーがプラットフォーム全体を再作成しました(IBMが元のPCを非常に詳細に文書化および文書化したため)。
この時点で、最新のOSの場合、システムを起動する以外にBIOSは必要ありません。しかしながら ...
90年代初頭から、電源管理の概念が定着し、BIOSがこれを任されました。APMは、DOSなどのシングルタスクOSでは正常に動作しますが、WindowsやLinuxなどの真のマルチタスクOSでは動作しません。この頃、386は真のマルチタスクをサポートするIntel CPUである全力を発揮していました。DOSとBIOSは、このCPUの新しい機能に対応して更新されませんでした。ほとんどのIntel CPUは、元のPC-BIOSが設計されたレガシー16ビット互換モードで実行されるためです。そのため、最新のOSは、おそらく初期の起動段階を除き、BIOSのCP / Mのような入出力機能をほとんど無視/バイパスします。
最終的にACPIが開発されましたが、ほとんどはBIOSの一部であり、電源管理と(多くの場合ラップトップ)プラットフォーム固有のものの構成をサポートしていました。ACPIは、休止状態、スリープ、またはシャットダウンの最終的な電源切り替え状態も処理します。
そのため、最近ではACPIであり、BIOSのようなものをPCの必要性を維持しているのはEFIです。包括的な概念は、ACPIがプラットフォームまたはマザーボード固有のものとOSの間のインターフェースであるため、OSの別個のビルドではありませんマザーボードの種類ごとに作成する必要があります。
Linuxを実行するARM CPU(および携帯電話ハードウェア)を収容する開発ボードには、この問題があります。通常、U-bootなどのブートローダー専用ファームウェアが付属しますが、OSはほとんどの場合、各ボードを個別のプラットフォームとしてサポートする必要があります。