Basic Input/Output System
ハードウェアへのアクセスは主に入出力レジスタの操作で行うが、その動作や配置はハードウェア種によって異なる。また、読み書きのタイミングや順序にも手順がある。このためアクセス手順はアプリケーションで記述するより、ハードウェア種毎にサブルーチンを用意する方が有用でありこれがBIOSである。ISAやPCIなどではボードのROMにBIOSプログラムがあり、これはメモリ上に展開されてアプリケーションから利用される。マザーボード側のBIOSをSystem BIOS、拡張カードのBIOSを拡張BIOSと区別して呼ぶことがある。
また同種のハードウェアでも操作方法が異なる場合もある。これに対処するためBIOSの呼び出しインタフェースは共通化されており、アプリケーションはBIOSサービスを呼ぶだけで複数のデバイスに対応できる。このような共通インタフェースはアプリケーションバイナリインタフェース(ABI)と呼ばれる。
例として、PC/AT互換機のVGA BIOS(Video BIOS、ビデオバイオスとも)は、共通化されたABIを呼び出す事でハードウェアの違いを意識せず文字、画像の表示を可能にした。
また次回以降の起動時にこのメモリの内容にしたがってハードウェアが初期化される。このパラメータ設定を行うソフトウェアや設定画面を BIOS Setup(バイオスセットアップ)と呼び、CMOS Setup(シーモスセットアップ)とも通称される。
プラグアンドプレイは、ハードウェアのメモリマップや割り込み要求信号 (IRQ) をプログラマブルに変更できる機能で、従来はジャンパーピンなどで設定していたものを、BIOSプログラムが起動時に一定の手順で自動的に設定するものである。BIOSのパラメータ設定を容易にするために登場した機構であるが、ISAのPnPデバイスでは一部不完全で問題が発生することがあり、手動で設定が必要な場合がある。その際に、設定を変更するにもメニュー設定画面表示までBIOS起動が進行しないことがあり、そうなると問題解決はかえって複雑になる。
マザーボードリソースの設定も、動作クロックや電源電圧といったハードウェアに密接した設定もメニューから変更可能な場合がある。基本的には自動設定もしくは初期値が適切な値をとるが、自動での設定がうまくいかない場合等に備え、任意の設定を行うことも可能にしてあるものもある。中にはハードウェアの定格動作に反するオーバークロックといった仕様に基づいた設定としては不適切な状態にすることも可能であり、その設計マージンや個体差によって、起動できない状況も発生する場合もある。それが設定の範疇と故障を起こさないものであれば、後述のように設定を初期値に戻すことで、再度起動する状態に戻すことが可能である。