ハードウェアアクセスの共通化
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/13 09:22 UTC 版)
「Basic Input/Output System」の記事における「ハードウェアアクセスの共通化」の解説
ハードウェアへのアクセスは主に入出力レジスタの操作で行うが、その動作や配置はハードウェア種によって異なる。また、読み書きのタイミングや順序にも手順がある。このためアクセス手順はアプリケーションで記述するより、ハードウェア種毎にサブルーチンを用意する方が有用でありこれがBIOSである。ISAやPCIなどではボードの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もあり、各アプリケーションが非同期にこれを呼び出すとOSはハードウェアリソース管理が困難になる。このためハードウェア管理はデバイスドライバが一元的に行い、アプリケーションはOSのシステムコールを利用する。 やむを得ずBIOSを呼び出したい場合、専用のシステムコールで可能だが、そのハードウェアがOSに保護されている場合は動作するとは限らない。 組み込みシステムではハードウェアのバリエーションが少なく、BIOSのような中間層インタフェースは持たないためファームウェアと呼ばれることが多い。
※この「ハードウェアアクセスの共通化」の解説は、「Basic Input/Output System」の解説の一部です。
「ハードウェアアクセスの共通化」を含む「Basic Input/Output System」の記事については、「Basic Input/Output System」の概要を参照ください。
- ハードウェアアクセスの共通化のページへのリンク