Basic Input/Output System
BIOS ROMには時としてマイクロコードが格納される。マイクロコードを利用するデバイスは、CPU(インテル Pentium Pro、AMD Athlon以降)、SCSIホストバスアダプタ(アダプテック社製品等)、ネットワークインタフェース(マーベル・テクノロジー・グループ社、ブロードコム社製品等)等がある。これらはBIOSブート初期の段階でマイクロコードがデバイスに転送され、デバイスが活性化される。またマイクロコードではないが、FPGAベースのデバイスではロジックをBIOSが書き込んで活性化させる物もある。マイクロコードやロジックは新製品や機能改良によってバージョンアップが必要になる事がある。特にCPUのマイクロコードは新製品が出る都度に新しいマイクロコードが必ずといって良い程作られるので、マザーボードに最新CPUを搭載する為にBIOSアップデートによって最新のマイクロコード導入が必要となる場合がある。グラフィクスカードはマイクロコードを使用するにもかかわらず例外的にBIOS ROMには含まれていない。通常、VGA相当の専用回路でVGA BIOS機能を提供し、OS起動後デバイスドライバを経由してアプリケーション上のシェーダプログラムをマイクロコードにコンパイルしてGPUに転送して実行している。
電源投入時、ハードウェアの初期化およびブートローダーを読み込むプログラムが必要になる。つまり補助記憶装置からファイルの読み込みが行える状態になるまでのプログラムをROMに用意しておく必要がある。これらのプログラムはInitial Program Loader (IPL) やブートストラップローダとも呼ばれる。
プロセッサがリセットされると、リアルモードのアドレス空間1MBの内、最後尾付近のアドレス(0FFFF0h 番地)にある命令を実行する。そのアドレスに記されたジャンプ命令により、BIOSの実行コードの先頭にジャンプして処理が開始される。電源が投入された場合(「コールドブート」)はPower On Self Test (POST) が実行され、リセットボタンが押された場合(「ウォームブート」)はPOSTを省略し、メモリのテストにかかる時間を節約する。
Power On Self Testは、CPU、RAM、割り込み、DMAコントローラなどの搭載デバイスのほかに、チップセット、ビデオカード、キーボード、ハードディスク、光学ドライブなどのハードウェアのシステム構成をテスト、認識、初期化する。次いでBIOSは起動デバイスに指定された記憶装置を探し、ブートローダープログラムの場所を特定して実行、PCにコントロールを委ねる。この過程をブートストラップ、略してブートと呼ぶ。
PC/AT互換機のように、様々な種類のハードウェアが増設可能な場合、初期化手順やハードウェア構成に自由度を持たせておく必要がある。初期化内容などをディップスイッチやソフトスイッチで設定できる場合がある。