BIOSは1970年代に発売されたPC用でシングルユーザー・シングルタスクのOSであるCP/Mで採用されたハードウェア間の相違(ハードウェア依存部分)を吸収する仕組みです。
【概略一例】
この仕組みは広く利用されるに至り、後にOSが、その機能のほとんどを吸収、ROMの登場後、BIOSはROM上に置かれ、電源投入時にCPUが既定の位置にあるBIOSを呼び出すようになっています。
BIOSは、CPUによってロードされた各種内蔵機器やI/O機器のPOST/Power On Self Testの後、普通は、短時間ではあるものの画面の隅などにBIOS設定画面を表示する為のキーバインドを表示し、当該キーが押下されなければ自動的にHDD/FD/BD/CD/DVD/USB機器などのブート(起動)可能なデバイス(ブートデバイス・ブータブルデバイス)を検索します。
単独または優先のブータブルデバイスがHDDでない(HDD以外の)場合、ブータブルデバイスである当該外部メディアが起動、HDDである場合、HDDのMBRを読み込み、メインメモリ上にコピー、そこから処理を続行、1つ、または、各パーティションのPBRを読み込み、処理を継続します。
これでもおおまかな流れでしかなく、BIOSは起動前に実に様々な処理を行っている為、実際にOSが利用可能になるまでには結構時間がかかるわけですが、主な機能概要としては、以下のようになります。
この時、既に個別に設定変更した場合はもちろんのこと、OSやBIOSのバージョン、その対応などにより、利用可能なデバイスやデフォルトの起動順を含む設定値も異なりますが、HDD/FD/BD/CD/DVD/USB機器などの起動メディア及び複数指定する場合、その起動順を指定することができ、FD/BD/CD/DVD/USB機器といった外部メディアでは、当該ドライブにメディアが入っていない場合、スルーするケースが多いと思いますが、中にはエラーで止まってしまうケースもあるかもしれません。
スルーする場合、(起動順に関わらず普通HDDは指定済みなはずであり、)その後にHDDがブートデバイスとして設定されていれば、メディアの有無によるマルチブート状態と言え、仮にエラーになる場合には、やり直して当該メディアをセットしてから起動するか、必要なければ、BIOS設定画面で当該メディアの起動順をHDDより後にするか起動対象から外します。
セキュリティ面からすると外部メディアからの起動ができるとそこから管理者権限やroot権限を取得して様々なことが出来てしまう為、BIOSでパスワードの設定をするか、外部メディアによる起動は一時的なものとし、最終的に起動デバイスを一定のセキュリティ対策を施したHDDのみにしておくことが、一般には推奨されます。
尚、起動可能(ブータブル/bootable)デバイスがFDの場合、初期のころはMS-DOSなどのOS起動用、後には、MS-DOSなど最小限のOS起動含め、ブートできないCD/DVDなどを呼び出す為の起動ディスクであり、BD/CD/DVD/USB機器である場合は、OSやソフトウェアのインストールディスク、Liveメディア、リカバリディスクなどが、HDDである場合は(CPU→BIOS→MBR経由で)単一のOS、または、OSを選択する為のマルチブートメニューが(PBR経由で)起動します。
よってBIOSの起動及び起動順設定でHDDだけが選択されている場合、HDDが最優先されている場合、HDDの起動順は他より後で且つ、外部メディアが入っていない場合といった結果的にHDDから起動する場合、そのブートデバイスであるHDDの第1セクタを読み込むまでが近年のBIOSの機能となります。
ちなみにブートローダの使い方によっては比較的古いPC・マシンにおけるCDブートやUSBブートなどBIOS未対応のデバイスでブートすることが可能な場合もあります。
BIOSの設定は、変更が可能でBIOS設定メニューの表示方法は、PCによって多少異なりますが、一般にPCの電源を入れた直後(OSが起動する前に)、一定のキー(例えば[Del]/[F2]/[F8]/[F10]/[F12]など)を押すことで表示することができます。
PC用のハードウェアへの依存部分を吸収する術として利用されるBIOSであってもハードウェア、特にCPUに依存する部分の存在やOSやそのバージョンによってはOSの方が遥かに処理の速いSCSI機器の自動認識機能(、OSによっては無縁のMS-DOS互換機能)の内の一部などをより効率的にしたり、起動スピードの高速化を図ったりするオープンソースのファームウェアがあります。
こうしたファームウェアには、Sun Microsystemsが開発したOpenBootやFirmwoks社開発のOpenFirmwareがあり、これらはIEEEにより標準化されています。
そのOpenBootやOpenFirmware、Codegen社のSmartFirmwareなどは後にオープンソースとしてリリースされ、OpenBIOSプロジェクトで管理されています。
これは、(OracleによるSun買収後のOracle SolarisやOracle Linux、それ以前にオープンソース化されたOpen Solaris搭載マシン、IBMのThinkpadがlenovoに買収されたことによる影響はわかりませんが、)SunのSolaris、Apple Mac OS X、IBMなどで採用されました。
この部分のオープンソース化は、プラットフォームに依存せずに実装可能である為、マザーボードなどPC内装品においては、共通化を図ることができ有用でもありますが、PC用途で圧倒的なシェアを持つIntel x86系では、マザーボードが従来のBIOSにのみ対応している為、Intel x86系を採用するPCで基本的にプリインストールOSとして搭載されたWindowsではマザーボードが対応しないことには利用できないのが現状のようです。
Microsoft社が、BIOSのセキュリティ強化版として謳う、BIOSとブートローダをも含めたUEFI/EFIは、後で無効にできるとは言うものの、同社とPCメーカーの関係によっては、実質他のOSに入れ替えたり、マルチブートしたりできなくなる懸念があることなどから、歓迎されていません。
同社においては、当時Mac OS X上でWindowsをゲストOSとすることが可能な仮想マシンメーカーを買収後、Virtual PCとしてリリース、競合からの自社OSシェア死守という対策とはいえ、後にVirtual PCを無償化すると同時にMac OS Xを対象から外したという微妙な対応とっているだけに、そもそも圧倒的な市場シェアとプリインストール機が一般的であることからBIOSが読み込むMBRにも微妙な点があることもあって、こうした懸念もぬぐい去ることは難しいと言えるでしょう。
もっともこうした対策も、そもそもコンピュータ自体が抽象化、論理化、仮想化によって著しい発展を遂げてきた経緯や古くから仮想マシンや仮想OSが存在していたこと、まして近年、VMware、VirtualBox、QEMU、KVM/QEMU、Bochs、Xen、Virtual PC、Hyper-V・・・といった多くの仮想マシンを作成可能な仮想化ソフトウェアがあり、ホストOSをPC-UNIX/Linux、WindowsをゲストOSとできるものもあり、UNIXベースまたはUNIX認定されたMac OS X、Intel製プロセッサを使用したMac OS Xなら尚の事、それら仮想マシンも動作する為、実効性はほとんどないと言ってもよいでしょう。