米国時間2025年9月25日付にてリリースされた「Parallels Desktop 26.1.0」では、新たに実装された機能の一つとして、ゲストOS拡張機能「Parallels Tools for Linux」のドライバーレスバージョンがあります。
この「Parallels Tools for Linux」のドライバーレス版は、インストール時の問題、及びカーネルの互換性問題を最小限に抑えるように設計されており、導入後の安定性の向上やセキュリティリスクの低減等に貢献していますので、以下にその内容等を簡単に纏めてみたいと思います。
Table of Contents
「Parallels Desktop for Mac」における「Parallels Tools for Linux」のサポート状況
まず大前提として「Parallels Desktop for Mac」におけるゲストOS拡張機能「Parallels Tools for Linux」は、「open-vm-tools(VMware Fusion、VMware Workstation)」、「Guest Additions(VirtualBox)」のようにオープンソース化されていません。
ソースコードが公開されている「open-vm-tools」「Guest Additions」では、OSベンダー側が迅速に対応し、自らのOSにプリインストールして配布する事が可能となっています。同梱されていない場合にも、パッケージ管理システムを通じてインストールする事によって、ほぼOSのリリースと同時に即時対応となっています(「Ubuntu 20.04 LTS(Focal Fossa)」以降では、インストール時に「open-vm-tools」が自動的にダウンロードされ、そのままインストールされる事となります)。
一方で、クロースドなプロプライエタリーでの開発にて提供しているParallelsは、Linux(ゲストOS)に対する「Parallels Tools」の対応が遅れがちとなる傾向にあり、正式にサポートされるまでは、マウスカーソルの解放にキーコンビネーション(「control」+「option(alt)」)を要したり、解像度がウインドウサイズに追従せずに不適切なスケーリングで表示される等、操作性が損なわれる事となっていました。
この問題に対する解決策として、米国時間2019年8月12日付にてリリースされた「Parallels Desktop 15 for Mac」において、Linux(ゲストOS)に対するサポートが大きく改善されました。
具体的には、「Parallels Desktop 15 for Mac」において準仮想化デバイスのフレームワーク「virtio(virtio-gpu)」がサポートされ、比較的新しいLinux(ゲストOS)において、ゲストOS拡張機能「Parallels Tools for Linux」のインストールを伴わすして、スライディングマウス(マウスシンクロナイズ)、ダイナミックレゾリューション、マルチディスプレイ(マルチモニター)機能が利用可能となりました。
この改善によって、「Parallels Tools for Linux」が対応しているLinux(ゲストOS)においても、同拡張機能がインストールされる前(特にゲストOSの新規インストールプロセス等)のユーザエクスペリエンスが改善されています。
「Parallels Desktop 26.1.0」において「Parallels Tools for Linux」のサポートが新たなステージへ
そして「Parallels Desktop 26.1.0」では、Linux(ゲストOS)に対して、インストール時の問題、及びカーネルの互換性問題を最小限に抑えるように設計されたドライバーレス(ドライバー不要)の「Parallels Tools for Linux」が導入されました。
現時点で得られる情報は限定的ではありますが、新たな「Parallels Tools for Linux」では、ホストOS、ゲストOS間をソケットを用いて通信する「Virtio Socket(virtio-vsock)」が使用され、従来までの主要なアプローチとなっていたダイナミックカーネルモジュール(Parallels Tools Gate driver)が不要となっています。
解消されたダイナミックカーネルモジュール(動的なカーネルモジュール)のデメリット
上記で説明した通り、「Parallels Tools for Linux」のドライバーレス(ドライバー不要)版では、動的なカーネルモジュール(Parallels Tools Gate driver)を不要とした事が大きな変更点として挙げられていますが、これによって従来までのどのようなデメリットが解消されたのでしょうか。
カーネルモジュールは、必要な機能だけを選択的にロードできるというモジュール化のメリット(カーネルの軽量化、柔軟な拡張性)と引き換えに、表裏一体の関係として以下のようなデメリットも想定されています。
- セキュリティリスク:デバイスドライバー等のモジュールが悪意を持って作成されたり、脆弱性が含まれていたりした場合には、root権限を奪われる等、システム全体が乗っ取られる危険性がある(脆弱性がセキュリティホールとして、システム全体に影響を及ぼす危険性がある)
- システムの不安定化・クラッシュのリスク:カーネルモジュールはカーネルと同じメモリー空間(カーネル空間)で動作するため、モジュール内のバグやエラー、或いは誤ったコードがシステム全体を不安定にしたり、誤動作等でクラッシュを引き起こしたりする危険性がある
- パフォーマンスの低下:動的なモジュールとしてダイナミックにロードする機能は、カーネルにダイレクトに組み込む静的なリンクと比較した場合に、僅かではあるがパフォーマンスが低下する可能性がある
- デバッグ・管理の複雑さ:カーネル空間でのデバッグは一般的なユーザー空間よりも難易度が高いため、モジュール間の依存関係を理解して、適切に管理する必要がある
- root権限が必要:モジュールのロードやアンロードには管理者以上のroot権限が必要となり、不用意な操作がシステム全体に影響を及ぼす危険性がある
- 互換性の問題:カーネルのバージョンが上がった際に、古いモジュールが動作しなくなる等、互換性の問題が生じる事がる
上記のデメリットを解消し、よりセキュアに、よりステイブルに進化したドライバーレス版の「Parallels Tools for Linux」は、「Parallels Desktop for Mac」におけるLinux(ゲストOS)のサポートを新たなステージへ導いたと言えるでしょう。