PCIパススルー
仮想マシンの話で出てくるよ
ゲストOSから物理的な部品(PCIデバイス)へ直接アクセスするための仕組みだよ
簡単に書くよ
PCIパススルー(読:ピーシーアイパススルー 英:PCI passthrough)とは
コンピュータの中に作られた なんちゃってコンピュータから、本来のコンピュータにくっついている機器や部品を直接扱うための仕組み。
もう少し小難しく書くと
仮想マシン
(コンピュータの中に作った、なんちゃってコンピュータ)において、ゲストOS
(仮想マシンの話における、なんちゃってコンピュータの方のOS)から物理的なPCIデバイスへ直接アクセスするための仕組み
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・仮想マシン
・ゲストOS
・ホストOS
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
仮想マシンは「コンピュータの中に作られた、なんちゃってコンピュータ」です。
コンピュータの中に擬似的に作られたコンピュータです。
仮想マシンの仕組みにおいて、なんちゃってコンピュータ(のOS)を「ゲストOS」と言います。
間借りしているから「ゲスト」です。
なんちゃってコンピュータを動かしている本来のコンピュータ(のOS)は「ホストOS」と言います。
ゲストOSをもてなす立場だから「ホスト」です。
ゲストOSは擬似的に再現されたコンピュータです。
実体を持ちません。
物理的なデバイス(コンピュータにくっつける部品)にアクセスしたいときは、ホストOSさんを経由します。
例えばゲストOSがホストOSさんにくっついている部品、つまり実際のコンピュータにくっついている部品に対して あれこれしたいとしましょう。
このときゲストOSは、ホストOSさんが擬似的に再現した部品に対して あれこれします。
ちょっと小難しい表現を使うと「ゲストOSのドライバ(デバイスを動かすためのソフト)は、ホストOSが擬似的に再現したデバイスに対して あれこれする」のです。
そうすると、ホストOSさんは「あぁ、ゲストOSさんは こんなことがやりたいのね」と分かります。
そうしたら、ホストOSさんが(ゲストOSさんの代わりに)実際の部品に対して あれこれしてあげます。
ちょっと小難しい表現を使うと「ゲストOSのあれこれを察知したホストOSが、ホストOSのドライバによって、物理的なデバイスに対して あれこれする」のです。
流れとしては
ゲストOSのドライバ
↓
ホストOSが擬似的に再現したデバイス
↓
ホストOSのドライバ
↓
物理的なデバイス
となります。
えっ?
専門用語が多くて分かりにくいですか?
それは失礼いたしました。
専門用語を減らして書くと
なんちゃってコンピュータにある、なんちゃって部品を動かすためのソフト
↓
本来のコンピュータが再現した、なんちゃって部品
↓
本来のコンピュータにある、実際の部品を動かすためのソフト
↓
実際の部品
の流れです。
これが、特に何も考えないで仮想マシンを動かしているときの流れです。
ですが、ちょっと待ってください。
ゲストOSさんの気分的には、ホストOSさんに わざわざ代行してもらうのは面倒くさいですよね?
実際の部品と直接やり取りした方が、お手軽だし、手っ取り早いです。
以上を踏まえて
なんちゃってコンピュータから本来のコンピュータにくっついた部品を直接扱うための仕組み
が「PCIパススルー」です。
PCIパススルーを使うことで、ホストOSさんの部分を すっ飛ばせます。
なんちゃってコンピュータにある、なんちゃって部品を動かすためのソフト
↓
本来のコンピュータが再現した、なんちゃって部品
↓
本来のコンピュータにある、実際の部品を動かすためのソフト
↓
実際の部品
を
なんちゃってコンピュータにある、実際の部品を動かすためのソフト
↓
実際の部品
にできるのです。
実際にPCIパススルーをやるには、いろいろ条件があったりするみたいですけどね。
そこら辺の あれやこれやは専門的に解説しているところで情報を補完してください。
ちなみに「PCI」は「パソコンさんの中に追加で部品をくっつけるための規格(のひとつ)」です。
PCIでやり取りする部品に対するアクセスにおいて、ホストOSさんに手伝ってもらう部分をパスしてスルーできるから「PCIパススルー」なのでしょう。
「なのでしょう」とか書いておきながら、根拠は ありません。
ごめんなさい。
一言でまとめるよ
まぁ「PCIパススルー」って単語が出てきたら「なんちゃってコンピュータから、本来のコンピュータにくっついた部品を直接扱うための仕組みなんだな~」と お考えください。
おまけ
■訳してみるよ
「PCI」は「Peripheral Component Interconnect(ペリフェラル・コンポーネント・インターコネクト)」の略です。
「peripheral(ペリフェラル)」の意味は「周囲の」とか「周辺的な」とかです。
「component(コンポーネント)」の意味は「成分」とか「構成要素」とかです。
「interconnect(インターコネクト)」の意味は「相互接続する」とかです。
「pass through(パス・スルー)」の意味は「通り抜ける」とか「通り過ぎる」とかです。
何となく くっつけると
「周囲の構成要素を相互接続する」へ通り抜ける
となります。






