ブート
電源投入直後、ないしリセットにより、x86は、まずBIOSの存在する 0xFFFF0 番地のメモリにある命令を実行する(ここはx86を使用するどんなコンピュータでも同じである)。このメモリ位置は(リアルモードでの)システムメモリのほぼ最後尾にあたる。そこにはBIOSの初期プログラムの位置へのジャンプ命令が含まれていて、BIOSに制御が渡る。BIOS初期プログラムは Power On Self Test (POST) を実行して必要な機器が正常に動作するかをチェックする。また、同時にそれら周辺機器の初期化も行う。次にBIOSは事前に設定されたデバイスリストを順にあたって、ブート可能な周辺機器を探す。ブート可能デバイスとは、読み込みが可能で、第1セクタの最後尾に 0xAA55 というワード(ブートシグニチャ)があるデバイスである。
そのようなデバイスが見つからない場合、エラーが発生してブート処理は停止する。BIOSがブート可能デバイスを発見すると、そのブートセクタを 0x7C00 というアドレス(Segment:Offset形式では 0000:7C00 だが、一部のBIOSでは 07C0:0000 を使用)にロードして実行する。ハードディスクドライブの場合、ブートセクタはマスターブートレコード (MBR) と呼ばれ、その内容はオペレーティングシステムには依存しない。MBRのコードはパーティションテーブルを調べてアクティブなパーティションを探す。それが見つかったら、MBRのコードはパーティションのブートセクタをロードして実行する。ブートセクタはオペレーティングシステムに依存することが多いが、その機能はカーネルをロードして実行することである。
Linux(例えばSplashtopなど)をOSとして採用している各種機器にはクイックブートと呼ばれる素早い起動が可能なものもある。
多くのコンピュータはコンピュータネットワーク経由でブートを行う機能を持っている。この場合、二次ブートローダ はサーバのディスクに格納されており、それを TFTP のような単純なプロトコルでクライアントに転送する。内蔵ディスクを持たないシンクライアントは、ネットワークブートによって起動される。
実装としてはPreboot Execution Environment(PXE)などが存在する。
カーネルはさらに初期化処理を続行する。アクティブなパーティションがなかったり、アクティブなパーティションのブートセクタが不正だった場合、MBRは第二ブートローダをロードして制御を渡す。第二ブートローダは(多くの場合ユーザーに入力してもらって)パーティションを選択して、そのブートセクタをロードする。パーティションのブートセクタは一般にオペレーティングシステムのカーネルをロードする。
一部システム(特に最近のMacintoshや Microsoft Windows)はインテルのEFIを採用している。EFI準拠のファームウェアを持つ比較的新しいシステムでは、MBR か GPT のあるドライブからブートでき、標準のMBRブートローダを使わない。また、corebootもシステムマネジメントモードを使った過剰に複雑なファームウェア/BIOSを使わずにブート可能である。古い16ビットBIOSインタフェースは一部のx86用OS(Windows 3.1/95/98など)で必要とされていただけだが、そういった古いBIOSシステムをサポートするためブートローダーは16ビットサポートを続けていることが多い。
BIOSとは異なり、UEFI(CSM経由のレガシー ブートではない)はブートセクタに依存せず、UEFIはブートローダー(USBフラッシュドライブまたはEFIシステムパーティション内のEFIファイル)を直接読み込み、OSカーネルはブートローダーによってロードされる。
多くのPCはBIOSチップを搭載していれば、BIOSチップメーカー名、著作権、そのチップのIDなどを起動時に表示する。同時に利用可能なメモリ容量など、そのコンピュータに関する情報も表示する。