Basic_Input/Output_System
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

「BIOS」はこの項目へ転送されています。生物学研究に関する国際組織(BiOS)については「en:Biological Innovation for Open Society」を、その他のバイオスについては「バイオス」をご覧ください。
ROM形式で提供されるBIOSの例(アダプテック社製SCSIカード、AHA-2940よりBIOS ROM部拡大撮影)1980年台のDell 310コンピュータに使用されていた1組のAMD BIOSチップ。

Basic Input/Output System(ベーシック インプット/アウトプット システム、頭字語:BIOS(バイオス))とは、ファームウェアの一つで、コンピュータに搭載されたプログラムのうち、ハードウェアと最も低レベルな入出力を行うためのプログラムである。

大きく意味合いとして

IBM PC XTから搭載されている仕組み。UEFIとは同列の概念。

一般的なコンピュータハードウェア資源に入出力するプログラム。UEFIやIBM PC XTやMSXなどのBIOSの上位概念。

がある。
概要

BIOSはパーソナルコンピュータ(PC)に組み込まれており、電源投入と同時に実行される。ハードウェアを初期化し補助記憶装置からブートローダーを呼び出す。またキーボードディスプレイなどの入出力装置をプログラムから利用するためのサービスを提供する。プログラムはハードウェアに直接アクセスするのではなく、これらサービスを利用する事でハードウェア差を気にしなくて良くなる。ただし近代的なオペレーティングシステム (OS) はこの抽象化層を使用せず、OSのデバイスドライバで直接制御する場合が多い。

IBM PC/XTのオリジナルのBIOSにはユーザインタフェースが無く、基板上のジャンパスイッチで設定した。システム不具合時はエラーメッセージとブザー音で通知した。近代的なPCでは、起動時に特定のキーを押すことで設定プログラムが起動し、画面とキーボードで設定を行える。

1980年代より1990年代中盤まで主流であったMS-DOSディスク、キーボード、画面表示などBIOSのサービスに依存していた。Microsoft Windows NTLinuxプロテクトモードで動作中のOSでは一般にOSのロードと起動までを担い、起動後はBIOS割り込みルーチンを使用しない。

BIOSはマザーボード不揮発性メモリに格納され、デバイスとチップセットインタフェースを担う。初期のモデルではEP-ROM等に格納され、BIOS書き換え時はマザーボードからチップを取り外し、専用装置で書き換えた後、再装着する必要があった。近代ではフラッシュメモリに格納され、取り外しなしでも書き換えが可能である。これにより更新やバグ修正が容易になった代わりにRootkitに脆弱になる可能性が生じた。

2010年からUnified Extensible Firmware Interface (UEFI) に移行されている[1]。UEFIはBIOSの技術的問題に対処することを目的とした後継である[2]
用語と歴史

「/* C P / M B A S I C I / O S Y S T E M (B I O S) COPYRIGHT (C) GARY A. KILDALL JUNE, 1975 */[...]/* B A S I C D I S K O P E R A T I N G S Y S T E M (B D O S) COPYRIGHT (C) GARY A. KILDALL JUNE, 1975 */」

ローレンス・リバモア研究所 (LLL) に提供されたCP/M 1.1または1.2のPL/Mソースコードより、BDOS.PLMのファイルヘッダー抜粋。 [3]

ゲイリー・キルドールCP/Mの用語として1975年に初めてBIOSを用いた。OS起動時にマシン固有のハードウェアにアクセスする部分を記述していた。後に他機種にも使われ、PC/AT互換機でもデファクトスタンダードとなった。

MS-DOSやPC DOSDR-DOSに存在するファイル "IO.SYS"、"IBMBIO.COM"、"IBMBIO.SYS"、"DRBIOS.SYS" などを"CP/M BIOS" になぞらえて "DOS BIOS" と呼ぶ場合がある(一般にCP/M対応機のROMには簡素なブートローダーしかない)。

PS/2でIBMはBIOSをリアルモードとプロテクトモードに分割した。リアルモード部は既存のOS(DOS等)との互換性を目的とし "CBIOS" (Compatibility BIOS) と呼び、OS/2などのマルチタスクOSのために作成された部分を"ABIOS"(Advanced BIOS)と呼んだ。
ユーザーインタフェース

IBM PCとXTの時代には設定のユーザーインタフェース (UI) はマザーボード上ディップスイッチであった。それ以降は画面に表示されたメニューをキーボードで操作するインタフェースである。マウス(ポインティングデバイス)による操作が出来るものもある。以降80286CPU搭載機までは電池でバックアップされたCMOSに保存されていた。IBM ATではビデオカード、メモリーサイズ、ハードディスクを設定するには、ROMのプログラムではなく "reference diskette" という特別なディスクを挿入して行わなければならなかった。

PC/AT互換PCではセットアップユーティリティで各種設定をする。この方式は1990年代から変わっていない。ユーザーは画面に表示されたメニュー形式のインターフェースをキーボードで操作する。ブートに失敗した場合にはテキストメッセージが表示され、ユーティリティで設定を修正する、無視して続行する等のユーザーフレンドリーな表示が可能である。またBIOS設定は電池でバックアップされたRAMではなくフラッシュROMに格納するものもある。

設定画面をBIOSと称する向きもあるが厳密には誤りである。
ハードウェアアクセスの共通化

ハードウェアへのアクセスは主に入出力レジスタの操作で行うが、その動作や配置はハードウェア種によって異なる。また、読み書きのタイミングや順序にも手順がある。このためアクセス手順はアプリケーションで記述するより、ハードウェア種毎にサブルーチンを用意する方が有用でありこれがBIOSである。ISAPCIなどではボードのROMにBIOSプログラムがあり、これはメモリ上に展開されてアプリケーションから利用される。マザーボード側のBIOSをSystem BIOS、拡張カードのBIOSを拡張BIOSと区別して呼ぶことがある。

また同種のハードウェアでも操作方法が異なる場合もある。これに対処するためBIOSの呼び出しインタフェースは共通化されており、アプリケーションはBIOSサービスを呼ぶだけで複数のデバイスに対応できる。このような共通インタフェースはアプリケーションバイナリインタフェース(ABI)と呼ばれる。

例として、PC/AT互換機のVGA BIOS(Video BIOS、ビデオバイオスとも)は、共通化されたABIを呼び出す事でハードウェアの違いを意識せず文字、画像の表示を可能にした。これはビデオカードのROMに実装された拡張BIOSである。同様にハードディスク、フロッピーディスク、キーボードなどさまざまな入出力処理を行うBIOSが存在するが、これら基本的なものはSystem BIOSでありマザーボードのROMに実装される。

しかし、上記が有効なのはOSがシングルタスク型の場合であり、マルチタスクOSではデバイスドライバが処理を行う。特にリエントラントが考慮されていないBIOS[4]もあり、各アプリケーションが非同期にこれを呼び出すとOSはハードウェアリソース管理が困難になる。このためハードウェア管理はデバイスドライバが一元的に行い、アプリケーションはOSのシステムコールを利用する。

やむを得ずBIOSを呼び出したい場合、専用のシステムコールで可能だが、そのハードウェアがOSに保護されている場合は動作するとは限らない。

組み込みシステムではハードウェアのバリエーションが少なく、BIOSのような中間層インタフェースは持たないためファームウェアと呼ばれることが多い。
起動

電源投入時、ハードウェアの初期化およびブートローダーを読み込むプログラムが必要になる。つまり補助記憶装置からファイルの読み込みが行える状態になるまでのプログラムをROMに用意しておく必要がある。これらのプログラムはInitial Program Loader (IPL) やブートストラップローダとも呼ばれる。


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

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