Power On Self Test

Power On Self Test（POST）とは、コンピュータやプリンター、ルーターなどの電源を入れたときブートの前に行われる処理を指す。用語は違っても、同様のシーケンスは全てのコンピュータアーキテクチャに存在する。IPL（Initial Program Load）、ブート、ブートストラップなどと呼ばれる処理の前に行われる。POST という用語はPC/AT互換機で使われ、一般化した。ブート前の処理を行うコードを指すこともあるし、処理そのものを指すこともある。
一般的な処理の流れ.
電源を入れると、POST は BIOS によって制御され、さらにビデオやSCSIなどの周辺機器の初期化はそれ専用のプログラムが分担する。そのような特定機能を分担するプログラムは、ビデオBIOS、SCSI BIOS などと呼ばれ、全体としてなどと呼ばれる。
BIOS が POST 実行中に行う処理は次のようになる。
BIOS は、CPUがリセットされたときにPOSTを起動する。CPUがリセット後に最初に実行しようとするメモリ位置をリセットベクタと呼ぶ。ハードリブートの場合、ノースブリッジがそのコードフェッチ要求をBIOSのあるシステムフラッシュメモリに向けさせる。ウォームブートでは、BIOSはRAM内の適切な位置に置かれているので、ノースブリッジはそのRAM上の位置にリセットベクターを向けさせる。
最近のBIOSでは、POST実行で最初に何故起動されたのかを特定しなければならない。例えばコールドブートなら、全機能を実施しなければならないだろう。しかし、システムが電力節約モードやクイックブートといったものをサポートしている場合、BIOS は標準の POST におけるデバイス検出工程をしなくて済み、既にあるシステムデバイステーブルを使ってデバイスを設定できる。
POST の処理は本来は非常に単純だったが、PCの発展と共に複雑化してきた。POST 実施中、BIOS はハードウェアやOSがサポートすることを期待されている様々な（そして時に相互に排他的な）各種標準規格を考慮しなければならない。しかし、ユーザーから見える POST と BIOS は、従来とほとんど変わらないメモリテスト画面と設定画面でしかない。
基本構造.
PC/AT互換機の場合、主BIOSは二つの部分に分けられる。POST部分（POSTコード）は上述の処理を行い、POSTがOSのために構築する環境がいわゆるランタイムBIOS（ランタイムコード）である。基本的にPOSTコードは役目が終わると、OSに制御が渡される前にメインメモリ上から消されるが、ランタイムコードはメモリに常駐する。このような分け方は単純化しすぎかもしれないが、もちろんPOST処理中にもランタイムコードが使われる。
エラー通知法.
本来の IBM BIOS は POST 処理中にエラーを検出すると、固定のI/Oポートアドレス 80 にエラーを示す番号を出力する。ロジックアナライザを使うか、専用の POST カード（ポート 80 の内容を表示するためのカード）を使うと、問題がどこにあるのかが分かる。表示器を搭載したマザーボードもある。なお、OSが動作している間は、そのI/Oポートを監視しても無意味である。例えば Linux はポート80をI/Oタイミングの調整に使用する。その後、BIOS ベンダー各社はマザーボード上にあるスピーカーを使って、一連のビープ音でエラーを通知するようになった。
POST AMI BIOS ビープコード.
出典: AMIBIOS8 Check Point and Beep Code List, version 1.9, 2007年10月11日更新
コンプティア A+ Core Hardware 試験での POST ビープコード.
コンプティアの実施する A+ Core Hardware 試験で特に出てくる POST ビープコードは以下の通り。
Macintosh の POST.
Appleの Macintosh にもコールドブート時のPOST処理がある。致命的なエラーが発生すると、Macintosh ではチャイム音が鳴らない。
1998年まで.
1998年までに製造された Macintosh では、POST 処理が失敗すると「死のチャイム」と呼ばれる音とともに停止する（音そのものは機種によって異なり、ビープ音だったり、車が衝突する音だったり、ガラスが割れる音だったり、音楽だったりする）。画面には泣き顔の Macintosh のアイコンが表示され、16進の文字列が2行表示され、それが問題特定の手掛かりとなる。
1998年から1999年.
1998年に登場した iMac では、それまでとは大幅な変更が加えられた。初期化時に致命的なエラーが発生すると、以下のようなビープ音が発せられる。
1999年以降.
上記ビープコードは、1999年10月に変更された。さらに、機種によっては同時に電源LEDが点滅する。