プラグアンドプレイ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
プラグ・アンド・プレイ (Plug and Play, PnP)は、つないだら (Plug)、(ユーザが何か特別なことをしなくても)プレイ (Play)できる、という意味で、パーソナルコンピュータに周辺機器や拡張カード等を接続したときに機器の設定を自動的に行う仕組みのことである。
パソコンの使い勝手 (ユーザビリティ)を向上させる技術の1つで、この考え方や機能をもつパソコンは1980年代にもいくつかの機種で存在していた。「プラグ・アンド・プレイ」という言葉は1995年に登場したWindows 95の主要な機能の1つとして紹介され、この言葉が定着した。
目次 |
[編集] 概要
初期のパソコンは、周辺機器を接続してもすぐには使えず、機器を動かすための設定をユーザ自身が行わなければならないことが多かった。これは、例えばプリンタの印字濃度の調整といったようなユーザに近い理解しやすい水準のものではなく、もっと機械に近いI/Oポートや割り込みの設定といった専門的なものだった。機器の設定にはハードウェアやオペレーティングシステムに関する知識がある程度必要になるため、コンピュータに詳しくないユーザにとっては使い勝手を悪化させる一因になっていた。
プラグ・アンド・プレイは、周辺機器等や拡張カード等をパソコンに接続した際に、ハードウェアやオペレーティングシステムが自動的に機器を認識してリソースの割り当てやデバイスドライバの導入などの作業を行い、ユーザが何もしなくても機器を使えるようにする仕組みを指す。
しかし、この概念を実装した初期のOSでは、想定した動作を行わない事の方が多かったため、Plug and Pray (つなぎ、そして祈れ)であると揶揄されることもあった。
[編集] 歴史
プラグ・アンド・プレイとは、Windows 3.1の次の世代のオペレーティングシステムとなるWindows 95の主要機能の1つとして登場した概念・規格・用語である。
しかし、多くのパソコンやパーツのメーカーがひしめくPC互換機市場では各社が足並みをそろえる事も容易ではなく、登場からしばらくの間は混乱が続いた。Windows 95時代のパソコンは、周辺機器を接続するコネクタも現在(2005年)のような USB や IEEE1394 ではなく、AT/PS/2ポートやRS-232C、パラレルポート等のレガシーデバイスを使用していた。 また、PCによってはプラグ・アンド・プレイに対応しない古い規格のハードウェアを用いているものもあり、プラグ・アンド・プレイがうまく動作しないものもそれなりにあった。
その後、周辺機器や拡張カードを接続するインターフェイスの世代交代やオペレーティングシステムの改良が進んだことで、Windows 98SEやWindows 2000が登場する頃には、この種の問題はほぼ改善された。
Linuxでは、その用途が本来エンドユーザー向けのデスクトップ環境を第一義とはしていない面や、安定したレガシーデバイスやデファクトスタンダードで固めたハードウェア構成を指向する傾向も強かった事などから、多彩な周辺機器に柔軟に対応しなければならないエンドユーザー向けの分野では大きく遅れをとっていたが、2000年代に入りKNOPPIXなどハードウエアの認識機能の改良を進めたディストリビューションも出現してきている。
[編集] プラグ・アンド・プレイのルーツ
本来のプラグ・アンド・プレイという規格・用語はPC/AT互換機とWindowsによるものであるが、これらの概念や実装は実は一朝一夕にして成立・普及した訳ではなく、30年におよぶパーソナルコンピュータの歴史の中には、その前史とも言えるいくつかの環境や実装が点在する。
[編集] MSXによる実装
1980年代半ばに登場したMSXでは、システムのメモリ管理にスロットという概念を利用し、ROMカートリッジ(同時代の一般的なゲーム機のROMカセット等と同等と考えて良い)を単にソフトウェア供給媒体として利用するのみならず、拡張ハードウェアもこのスロットを用いて増設し、ハードウェアにはBIOS(現在のシステムに例えるならばデバイスドライバに相当)やアプリケーションなどのソフトウェアを搭載したROMを内蔵することで、スロットに物理的にハードウェアを増設し、電源投入と同時にドライバおよびアプリケーションのインストールも自動的に完了するという、本来の意味におけるプラグ(挿入)&プレイ(実行)が実現されており、現在までに存在するパーソナルコンピュータ・システムとしては、唯一と言ってさえほぼ差し支えの無い「真のプラグアンドプレイ環境」を実現していた。
MSXと比較すると、現在のパーソナルコンピュータ環境におけるプラグアンドプレイはその実「プラグ&インストール&プレイ」であり、ユーザーがハードウェアやドライバ、アプリケーション等のインストールを行わなければ使用できないという意味では、むしろユーザビリティの側面ではMSXから後退しているとする見方さえ可能である。(ただし、現在の巨大化したシステムでは、バグの訂正や頻繁なアップグレード等に対応するため、ハードウェアに固定されたROM媒体を同梱して大規模なソフトウェアを供給するという手段そのものが既に現実に即していない、という事情は勘案する必要がある)
MSXのこの構造は、コンシューマエンジニアリングの側面から見ても秀逸なものであり、MSXにおけるスロットは現在のPCにおけるPCIバス等に相当する拡張手段でありながら、エンドユーザー(一般消費者)はマシンの蓋を外すなどしてデリケートかつグロテスクな基板にアクセスする必要など無いばかりか、拡張カード類の基板も全てがスロットモジュールの樹脂製のカートリッジに覆われており、機械の都合など意識せずとも「挿して電源を入れれば動く」という環境を1980年代に実現できていた点は特筆に価する。
MSXの環境では、その初期(MSX1の時代)こそ本来テープ版のゲームを安易な手段をもってROM化したごく一部のROMカートリッジ版の製品において、システムにディスクドライブインターフェイスが存在した場合のワークエリアの変動を考慮していないために動作しなくなるといったマイナーな問題も発生したが、このようなわずかな例外を除き、幾つものメーカーが参入した市場でありながら、BIOSによってハードウェアへのアクセスの抽象化を図っていたMSXでは、重篤な相性問題をほぼ押さえ込むことに成功していたという点も特筆できよう。
[編集] Apple IIによる実装
このMSXのさらにルーツ的存在と言えるものとして、1970年代末に登場したアップルのApple IIを挙げることもできる。Apple IIでも、(MSXより、さらに)原始的なプラグ・アンド・プレイに似た仕組みが整備されていた。これには、当時のパーソナルコンピュータ市場の主流でありながら設定トラブルの多かったS-100バスシステムを教訓に、これらとは全く互換性のないゼロからの設計を行うことによって、前史的なプラグアンドプレイに類似する仕組みを整備することが可能であったことを抜きにして語ることはできない。
Apple IIの拡張カードにも、原始的な基本制御プログラムを書き込んだROMを搭載し、カードが差し込まれたスロットをプログラム (BASICのプロンプト) から PR#n
(出力)、IN#n
(入力) と指定するだけで使えるようになっていた。Apple IIのスロットは後のIBM互換機用ISAバスとは異なり、それぞれのスロットが識別できる仕組みがあり、同じカードを複数挿してもそれぞれのカードが識別できるシステムになっている。 また一部のカードではアプリケーションソフトまで書き込まれており (例えば、アプリケーション配布メディアとしてROM基板として使ったSwyftcardなど。これはMSXであればROMカートリッジで供給されているだろう)特定キーを押下することで起動するが、これは極めて例外的な存在であった。
当時はプラグ・アンド・プレイという造語は存在していおらず、これによって実現される環境も、現在のものとは程遠い、原始的な代物ではあった。しかし、当時の貧弱な環境ではこれでも十分なシステムであった。
[編集] Macintosh による実装
Apple IIの後継に当たる Macintoshは、当初は拡張スロットに相当する機能は持っていなかったが、1987年のMacintosh IIシリーズから拡張スロットとしてNuBusが採用された。それまでの多くの拡張スロットがマイクロプロセッサからの信号を分岐する様な、ハードウェア構成に直結した実装だったが、NuBusは適切なデバイスドライバが用意されればプロセッサに依存しない汎用的な実装規格であった。また、スロットごとにリソースを調停する機能を持ち、現在のPCIバス (Peripheral Component Interconnect Bus)とほぼ変わらないプラグアンドプレイ機能を実現していた。 1991年に発売されたCentris/Quadraシリーズ以降は高速化されたNuBus90が採用されたが、1995年に発表されたPowerMacintoshシリーズでより高速なPCIバスが採用された。
[編集] 実例
プラグ・アンド・プレイが標準的に実現されているインターフェース規格には、以下のようなものがある。
- PCカード/CardBus/ExpressCard
- PCI/AGP/PCI Express
- USB
- IEEE1394
- eSATA
これらに先んじて、半自動的なプラグ・アンド・プレイを実現していたインターフェース規格には、以下のものがある。
また、以下のレガシーなインターフェース規格にも、後付けでプラグ・アンド・プレイが実現された。