| 原作者 | クムラネット |
|---|---|
| 開発者 | レッドハット |
| 安定版リリース |
|
| 書かれた | C、C++ |
| オペレーティング·システム | Linux、Windows、Android(クライアント) |
| タイプ | サーバー、クライアント |
| ライセンス | GPL、LGPL、BSD |
| Webサイト | スパイススペース |
コンピューティングにおいて、SPICE ( Simple Protocol for Independent Computing Environments ) は、仮想環境用に構築されたリモート表示システムであり、ユーザーは、 さまざまなマシン アーキテクチャを使用して、コンピューター サーバー マシン上だけでなく、インターネット 上のどこからでもコンピューティングの「デスクトップ」環境を表示できます。
Qumranetは2007年にクローズドソースの コードベースを使用してSPICEを開発しました。Red Hat, Incは2008年にQumranetを買収し、2009年12月にオープンソースライセンスの下でコードをリリースし、プロトコルをオープンスタンダードにしました。[4] [5]
安全
リモート デスクトップ サーバーへの SPICE クライアント接続は、複数のデータ チャネルで構成され、各チャネルは個別のTCPまたはUNIX ソケット接続を介して実行されます。データ チャネルは、クリア テキスト モードまたはTLSモードのいずれかで動作するように指定できるため、管理者はセキュリティ レベルとパフォーマンスのバランスを取ることができます。TLS モードでは、データ チャネルで送信されるすべてのトラフィックが 強力に暗号化されます。
暗号化に加えて、SPICE プロトコルでは認証スキームを選択できます。元の SPICE プロトコルでは、共有シークレットを使用したチケット ベースの認証スキームが定義されていました。サーバーは RSA公開/秘密キー ペアを生成し、その公開キーをクライアントに送信します。クライアントは公開キーを使用してチケット (パスワード) を暗号化し、その結果をサーバーに送り返します。サーバーはチケットを復号化して検証します。現在の SPICE プロトコルではSASL認証プロトコルも使用できるため、管理者が構成できるさまざまな認証メカニズム (特にKerberos)をサポートできます。
実装
サーバーの実装は 1 つしか存在しませんが、SPICE がオープンソース化されて以来、数人のプログラマーが SPICE クライアント側の新しい実装を開発してきました。
- スパイスプロトコル
- spice-protocolモジュール[6]はSPICEワイヤプロトコルフォーマットを定義します。これはBSDライセンスの下で利用可能であり、LinuxおよびWindowsプラットフォーム間で移植可能です。
- スパイス
- spiceモジュール[7]は、SPICEプロトコルのサーバー側のリファレンス実装を提供します。サーバーは、SPICEサーバーを公開したい任意のアプリケーションにリンクできる動的ライブラリ[update]として提供されます。2013年現在、QEMUはこれを使用して仮想マシン用のSPICEインターフェイスを提供しています。spiceコードベースは、 LGPL v2+ライセンスの下で利用可能です。
- spicec という spice コードベースのクライアント部分は、2014 年 12 月に削除されました。
- スパイスgtk
- spice-gtkモジュール[8]は、 GObject型システムとGTK ウィジェットツールキットを使用してSPICEクライアントを実装します。これは、クライアントプロトコルコードを実装する低レベルライブラリspice-client-glibと、GTKを使用してグラフィカルクライアント機能を提供する高レベルウィジェットセットで構成されています。これはLGPLv2+ライセンスの下で利用可能であり、Linux、OS X、Windowsプラットフォーム間で移植可能です。
- スパイス-html5
- spice-html5モジュール[9]は、 JavaScriptを使用し、 HTML5をサポートするウェブブラウザ内で動作するSPICEクライアントを実装しています。SPICEプロトコルを実装していますが、通常のSPICEサーバーと直接通信することはできません。WebSocketプロキシを介して間接的にサーバーに接続する必要があります。[10]これは、 GPLv3 +とLGPLv3+ライセンスの組み合わせで利用できます。
アプリケーション
SPICE プロトコルは、KVM コードベースの フォークで改良されたリモート デスクトップ機能を提供するために開発されました。
- QEMU/KVM
- QEMU のメンテナーは、2010 年 3 月にすべての QEMU 仮想マシンに SPICE リモート デスクトップ機能を提供するためのサポートを統合しました。QEMU バイナリは、この機能を提供するために spice-server ライブラリにリンクし、ゲスト OS が SPICE プロトコルが提供するパフォーマンス上の利点を活用できるように QXL 準仮想化フレームバッファ デバイスを実装しています。ゲスト OS は、QXL と比較するとパフォーマンスは低下しますが、通常のVGA カードを使用することもできます。[11]
- エクススパイス
- QXLフレームバッファデバイス用のX.Orgサーバドライバにはラッパースクリプト[12]が含まれており、これにより、SPICEプロトコルを介してディスプレイをエクスポートするXorgサーバを起動することができます。これにより、QEMU/KVM仮想化を必要とせずに、リモートデスクトップ環境でSPICEを使用できるようになります。
- 仮想ビューア
- このプログラムは、以前のVNC
virt-viewerサポートの代替として、 spice-gtk クライアント ライブラリを使用して SPICE を使用する仮想マシンに接続します。 - 仮想
- SPICE はoVirt プライベート クラウド管理ソフトウェアに統合されており、ユーザーは SPICE を介して仮想マシンに接続できます。
参照
参考文献
- ^ 「spice 0.14.4リリース」。gitlab.freedesktop.org 。 2022年10月24日閲覧。
- ^ 「spice 0.15.1リリース」。gitlab.freedesktop.org 。 2022年10月24日閲覧。
- ^ 「spice-gtk 0.41リリース」。gitlab.freedesktop.org 。 2022年10月24日閲覧。
- ^ 「Red Hat が SPICE をオープンソース化」Red Hat 2009 年 12 月 9 日2013 年 10 月 25 日閲覧。
- ^ 「プロジェクトウェブサイト」 spice-space.org . 2019年12月25日閲覧。
- ^ 「spice-protocol GITリポジトリ」 cgit.freedesktop.org . 2013年10月25日閲覧。
- ^ "spice/spice". cgit.freedesktop.org . 2023年1月5日閲覧。
- ^ 「spice-gtk GIT リポジトリ」 cgit.freedesktop.org. 2013-10-10 . 2013-10-25閲覧。
- ^ 「spice-html5 GITリポジトリ」 cgit.freedesktop.org . 2013年10月25日閲覧。
- ^ GitHub上の websockify
- ^ 「QEMU/KVM 仮想マシン」。pve.proxmox.com 。2023年 9 月 18 日閲覧。
- ^ 「XSpice README」 cgit.freedesktop.org . 2013年10月25日閲覧。
外部リンク
- 公式サイト
- SPICEプロトコル
