Basic_Input/Output_System
[Wikipedia|▼Menu]
これらのプログラムはInitial Program Loader (IPL) やブートストラップローダとも呼ばれる。

プロセッサがリセットされると、リアルモードのアドレス空間1MBの内、最後尾付近のアドレス(0FFFF0h 番地)にある命令を実行する。そのアドレスに記されたジャンプ命令により、BIOSの実行コードの先頭にジャンプして処理が開始される。電源が投入された場合(「コールドブート」)はPower On Self Test (POST) が実行され、リセットボタンが押された場合(「ウォームブート」)はPOSTを省略し、メモリのテストにかかる時間を節約する。

Power On Self Testは、CPU、RAM、割り込みDMAコントローラなどの搭載デバイスのほかに、チップセット、ビデオカード、キーボード、ハードディスク、光学ドライブなどのハードウェアのシステム構成をテスト、認識、初期化する。次いでBIOSは起動デバイスに指定された記憶装置を探し、ブートローダープログラムの場所を特定して実行、PCにコントロールを委ねる。この過程をブートストラップ、略してブートと呼ぶ。

PC/AT互換機のように、様々な種類のハードウェアが増設可能な場合、初期化手順やハードウェア構成に自由度を持たせておく必要がある。初期化内容などをディップスイッチやソフトスイッチで設定できる場合がある。
BIOS拡張

IBM PCおよびAT互換機の場合、ハードディスクやビデオカードはBIOSを拡張、追加機能を提供するオプションのROMを搭載している。拡張部のプログラムはOSが補助記憶装置から読み出される前に実行される。これらプログラムはハードウェアのテストと初期化を行い、BIOSに新しいサービスを提供あるいは既存のものを上書きする。

例えばSCSIコントローラーは接続されたドライブにアクセスするBIOSを提供し、ビデオカードではマザーボードに搭載されたBIOSのビデオカードに取って代わる。

BIOS拡張ROMはPC全体のコントロールを取得でき、事実上何でも行うことができる。呼び出し側のBIOSに制御権を返さないこともありうる。原理的にはOSまたはアプリケーションを丸ごと搭載する事も出来る。また、ネットワークからブートするような全く違うブートプロセスにすることもできる。IBM PC互換機ではBIOS拡張ROMを搭載したアダプタカード(やROMチップ)を着脱することで、動作を全く違うものに変更できる。

マザーボードのシステムBIOSはブートに必要なキーボード、ディスプレイ、ストレージなどのコードを内蔵している。アダプタカード(SCSI、RAID、ネットワークインタフェースカード、ビデオボードなど)は独自のBIOSを搭載しており、これらはシステムBIOSを置き換える。マザーボードに組み込まれたオンボードデバイスでも動作は同様である。それらのROMはBIOSのフラッシュメモリ上でも別々のコードになっているため、システムBIOSと同時または別々にアップグレードすることもできる。

あるアダプタカードがブート時に必須でありかつシステムBIOSがこれをサポートしていない場合、オプションROMが必要となる。また、オプションROMがあればストレージドライバがなくてもブート途中にデバイスにアクセスできるようになる。RAMやハードディスクを占有する必要もない。また、デバイスとドライバが必ずセットであるためインストールが不要という利点もある。

システムBIOSと拡張ROMの内容を調べるには多数の手法とユーティリティがあり、一例としてはマイクロソフトのDEBUG や Unix系dd (UNIX)がある。
初期化

マザーボード上のBIOSはPOSTを完了した時点で、ほとんどのバージョンの場合オプションROMモジュール(BIOS拡張ROM)を探しに行き実行する。BIOSは"Upper Memory Area"空間(x86リアルモードでは0xA0000以上のアドレス空間)をスキャンして、発見されたROMのコードを順次実行する。ISA カード上のROMを探す場合、BIOSは0x0C0000 から 0x0F0000 の空間を2 KiB 毎の領域でスキャンして"0x55""0xAA"という連続した2バイトのシグネチャを探してROMのプログラムのエントリポイントを知り、先頭512バイトのブロックのチェックサムを算出して、ROMのチェックサムと一致すればBIOSはそのエントリーアドレスに制御を移す。するとBIOS拡張ROMは拡張機能の初期化ルーチンの実行を始める。

この時点で拡張ROMは実行を引継ぎ、一般的には対象ハードウェアのテストと初期化、ブート後のアプリケーションから利用する割り込みベクターの登録を行う。拡張ROMはユーザー設定インタフェース(診断情報の表示その他)や必要な動作のためにBIOSとそれまでに読み込まれたBIOS拡張ROMのサービスを利用する。

オプションROMは一般的には初期化プロセスの完了時にはBIOSに制御を返す。制御を返されたBIOSは、さらにオプションROMがないかメモリ空間の末尾までサーチを進め、見つけた順に呼び出す動作を繰り返す。
BIOSに分類されるプログラム
VGA BIOS
ビデオサブシステム(主にテキストと低解像度グラフィクス)
VESA BIOS
ビデオサブシステム(
SVGAグラフィクス)
SCSI BIOS
ディスクI/Oサブシステム(拡張SCSIもこの形態をとる)
APM BIOS
初期のパワーマネジメントシステム。後に改良されてACPI BIOSの一部となる。
PCI BIOS
I/Oサブシステム。後にACPI BIOSの一部となる。
ACPI BIOS
@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}現在主流となっている[独自研究?]パワーマネジメントシステム及びI/Oサブシステム
SMBIOS
システムマネジメントBIOS。BIOS内のデータ構造の配置・アクセス方法の規格。SMBIOSを参照。
オペレーティングシステムサービス
プロセッサのマイクロコード更新

IntelのP6マイクロアーキテクチャ世代以降では、プロセッサのマイクロコードに対するパッチをBIOSに含めることができる。マイクロコードはシステムが起動する度に更新される。この仕組みのない時代にはCPUのバグがあるとCPUの差し替えになり、過去の事例ではPentium FDIV バグによるCPUのリコールが発生したことがある。
識別

デルなどが提供する一部のBIOSは "SLIC" (software licensing description table) という電子署名を内蔵している。(一部ではBIOSタトゥー(刺青)と俗称される) SLICはACPIテーブルに挿入されており、実行コードは含まない。

コンピュータメーカーはWindowsやマイクロソフト製アプリケーションをバンドルするにあたりSLICをもとに認証する例があり、またWindowsソフトウェアを含むシステムリカバリーディスクもこれを利用する。SLICありのシステムでは、コンピュータ製品を対象にしたOEMプロダクトキーでソフトウェアが予めアクティベートしてあり、BIOSのSLICに書かれたXML形式のOEM証明書と照合することで自動アクティベートが実現されている。ユーザーがWindowsのクリーンインストールを行う場合には、OEMキーとSLIC認証の両方が揃っていないとアクティベーションを回避できないが、本来はOEMにより予めカスタマイズされたイメージでリストアするべきものであるため状況としては考えにくい。海賊版Windowsでは、アクティベーションを回避するためにSLICを編集するかエミュレートしている。
オーバークロック

一部のBIOSではオーバークロック機能を提供する。これはCPUのクロック周波数をメーカーの保証値より高く引き上げるものである。しかしながらオーバークロックはコンピューターの冷却不足による信頼性の低下と寿命の短縮を招く深刻な悪影響がある。

不適切なオーバークロック設定は部品のオーバーヒートを招き、機械的にコンピュータを壊してしまうこともありうる。
近年の使われ方


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:40 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef