しかし、上記が有効なのはOSがシングルタスク型の場合であり、マルチタスクOSではデバイスドライバが処理を行う。特にリエントラントが考慮されていないBIOSもあり、各アプリケーションが非同期にこれを呼び出すとOSはハードウェアリソース管理が困難になる。このためハードウェア管理はデバイスドライバが一元的に行い、アプリケーションはOSのシステムコールを利用する。やむを得ずBIOSを呼び出したい場合、専用のシステムコールで可能だが、そのハードウェアがOSに保護されている場合は動作するとは限らない。組み込みシステムではハードウェアのバリエーションが少なく、BIOSのような中間層インタフェースは持たないためファームウェアと呼ばれることが多い。起動.PC/AT互換機のように、様々な種類のハードウェアが増設可能な場合、初期化手順やハードウェア構成に自由度を持たせておく必要がある。初期化内容などをディップスイッチやソフトスイッチで設定できる場合がある。BIOS拡張.IBMPCおよびAT互換機の場合、ハードディスクやビデオカードはBIOSを拡張、追加機能を提供するオプションのROMを搭載している。拡張部のプログラムはOSが補助記憶装置から読み出される前に実行される。これらプログラムはハードウェアのテストと初期化を行い、BIOSに新しいサービスを提供あるいは既存のものを上書きする。例えばSCSIコントローラーは接続されたドライブにアクセスするBIOSを提供し、ビデオカードではマザーボードに搭載されたBIOSのビデオカードに取って代わる。BIOS拡張ROMはPC全体のコントロールを取得でき、事実上何でも行うことができる。呼び出し側のBIOSに制御権を返さないこともありうる。原理的にはOSまたはアプリケーションを丸ごと搭載する事も出来る。また、ネットワークからブートするような全く違うブートプロセスにすることもできる。IBMPC互換機ではBIOS拡張ROMを搭載したアダプタカード(やROMチップ)を着脱することで、動作を全く違うものに変更できる。