ブート
そうするとCPUはブートローダを実行して、オペレーティングシステムを外部記憶メディア(例えば紙テープあるいは磁気ディスク装置)からロードすることができた。例えば、IBM 650、DEC PDP-5、PDP-8、初期のPDP-11、Altair 8800 などの初期のマイクロコンピュータなどがスイッチを使っていた。フロントパネルのスイッチ群は直接CPUに命令列を渡すのにも使われた。例えば、PDP-1 はハードウェアにローダーを組み込んでいて、オペレータが "load" ボタンを押すだけで紙テープリーダからプログラムをメモリにロードすることができる。この紙テープリーダにはブートローダーが格納されており、それを実行すると二次ブートローダーまたはオペレーティングシステムを外部ストレージ媒体(紙テープ、パンチカード、ディスク装置など)からロードする。
ブートローダの擬似コードは以下の8個の命令に単純化できる。
P レジスタに 9 をセット
紙テープ読取装置の準備ができているかチェック
もし準備できていなかったら、2 へジャンプ
紙テープ読取装置からアキュムレータに 1バイト読み込む
テープが終了したら 9 へジャンプ
アキュムレータの内容を P レジスタが指すアドレスに書き込む
P レジスタに 1 を加算
2 へジャンプ
他のプロセッサは異なるブートモードを持つ。
CPUやマイクロコントローラのブート方法として以下のような技法がある。
TI OMAP や一部のDSPは、ブートROMを内蔵しており、単独で洗練されたブートシーケンスを実行でき、NANDフラッシュ、SD、MMCカードなど各種ソースからブートプログラムをロードできる。各種デバイスへの対応を回路で実現するのは困難であり、その代わりにブートROMを集積している。ブートROMであれば、複数のデバイスからのブートを試行することもできる。また、UART、SPI、USBなどから診断プログラムやブートローダをロードすることもできる。不揮発性メモリ上のブートソフトウェアが何らかの原因で消去されてしまった場合なども、この機能を使って復旧することができ、製造直後に不揮発性メモリにプログラムを格納するのにも使える。
JTAGなどのハードウェアデバッグ用インタフェースを使ってシステムの制御を獲得することもできる。そのようなインタフェースを使ってブートローダーを不揮発性メモリ(フラッシュなど)に書き込むことができる。また、デバッグ用インタフェースを使ってRAMに診断コードやブートコードをアップロードすることもでき、アップロードしたコードをプロセッサに実行させることができる。ブートROMを集積していないプロセッサで、不揮発性メモリの内容が消去された場合、これを使って復旧を図る。
一部のマイクロコントローラはブート可能な不揮発性メモリにブートコードを書き込むことができる単純なプロトコルのインタフェースを用意している。
古いPCではフロッピーディスクドライブ、ZIPドライブ、LS-120ドライブなどに限定されていた。
一般にユーザーがBIOSでブート順を設定することができる。1番目をDVDドライブ、2番目をハードディスクと設定した場合、BIOSはまずDVDドライブからのブートを試みる。そしてDVDがセットされていないなどの理由でブートに失敗するとローカルなハードディスクからのブートを試みる。DVDにLinuxの Live CD を入れておけば、ハードディスクにLinuxをインストールしなくともLinuxを起動することができる。これがマルチブートの一例であり、ユーザーはPOST実行後にどちらのOSを起動するかを選択できる。この場合は、電源投入時に(あるいはリセット時に)CDを入れておくか否かで起動するOSを選択しているが、一般的にはキーボードを使ってBIOSブートメニューを表示させて選択する(一般に F11 または ESC を押下)。