Windows 10のBashでGUIアプリを動かす方法!Xmingを使った設定ガイド
はじめに
「Windows」と言うべきところを、あえて「Linux」と言いたくなる――そんな時代がやってきました。従来、Windows上でLinux環境を構築するには、VirtualBoxやVMwareといった仮想化ソフトに頼るしかありませんでした。しかし現在のWindows 10には、Ubuntuがネイティブ実装されています。これは嬉しい進化です。
実際に動作を確認してみると、その完成度に驚かされます。ただし、ひとつだけうまくいかなかった点があります。それはグラフィカルアプリケーションの起動です。WSL(Windows Subsystem for Linux)のUbuntuイメージにはグラフィック関連のコンポーネントが含まれておらず、X11サーバー関連のパッケージをインストールしても単体では起動できません。GUIアプリを表示するには、外部のXサーバーが必要になります。本記事ではその具体的な方法を解説します。
Xmingのセットアップ
XmingはWindows向けのXサーバーソフトウェアです。これを使えば、WSL側のディスプレイ出力をエクスポートし、GUIアプリケーションを起動できるようになります。仕組みはVNCなどにやや似ていますが、まったく同じものではありません。「似ているようで違う」という表現がぴったりです。Windows 10でBash(WSL)の初期設定が済んでいることを前提に、まずはこのプログラムをインストールしましょう。
インストールが完了したらXmingを起動します。Windowsファイアウォールが有効になっている場合、接続許可を求めるダイアログが表示されます。これは当然の挙動で、Xmingはサーバーとして動作し外部からの接続を受け付けるためです。セキュリティのため、ここではローカル(プライベート)ネットワークのみ許可しておきましょう。Linuxのコマンドや設定、あるいはXephyrに関する記事を読んだ経験があれば、この概念はより理解しやすいはずです。
百聞は一見に如かず
準備が整ったら、Xmingがシステムトレイで起動していることを確認します。次に、FirefoxやVLCなどのGUIアプリを試しに起動してみましょう。ただし、アプリに対して「ディスプレイがどこにあるか」を明示的に伝える必要があります。方法はいくつかありますが、最も簡単なのは以下のコマンド形式です。
DISPLAY=:0 <ソフト名>
それでは、実際のスクリーンショットをご覧ください。このギャラリーには、Windowsドライブへアクセスして音楽ファイルを開く手順も含めています。デフォルトではホームディレクトリしか見えませんが、ファイルシステムの階層を上っていくと、/mnt配下にWindowsドライブのマウントポイントが現れます。WINEと少し似た挙動ですね。
完璧といえるのか?
残念ながら、まだ完璧とは言えません。この手法にはいくつかの課題があります。まず、3Dアクセラレーションが利用できません。また、サウンドカードやカメラなどのハードウェアにもアクセスできません。WSLはユーザーモードのみの実装であり、現段階ではハードウェアへ直接アクセスできないためです。パフォーマンス面でも課題が残ります。
さらに、グラフィック周りにはさまざまなバグや依存関係の不足も存在します。筆者の環境では、最初VLCがPulseAudioの設定不備によりクラッシュしました。依存パッケージを追加インストールした後は起動するようになりましたが、今度は音が出ませんでした。Firefoxからはnamespaceサンドボックスに関する警告が出ましたが、動作自体は問題ありませんでした。
DISPLAY=:0 vlc
VLC media player 2.1.6 Rincewind (revision 2.1.6-0-gea01d28)
[0x1217f08] pulse audio output error: PulseAudio server connection failure: Connection refused
Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting.
Aborted (core dumped)
Sandbox: unexpected multithreading found; this prevents using namespace sandboxing.
まとめ
以上、もうひとつテーマをマスターしました。楽しいものです。この技術は可能性をどんどん広げていますし、まだベータ版にすぎません。スタック全体が成熟すればさらに魅力的なものになり、もしドライバーまで組み込まれれば、ユーザーはより高いパフォーマンスとハードウェアのフル活用を享受できるでしょう。現時点でも、Bashに加えてXmingを併用すれば、そこそこの安定性でGUIアプリをテストできます。ただし、動作保証はないに等しく、やや動作のもっさりした体験になる点は覚悟しておきましょう。
個人的には、WSLはWindows 10の中でも最も新鮮な機能のひとつだと感じています。現時点で決定的な用途があるわけではありませんが、考えてみれば、MicrosoftのOSとしては史上初めて、他のどのWindowsリリースよりもLinuxの世界に近づいた存在だと言えます。なかなかエレガントな試みです。今後も継続的に検証とチューニングを行っていく予定です。柔軟性、セキュリティ、そして未知の可能性が私を強く惹きつけてやみません。さらなる情報にご期待ください。
それでは、また。
-
Windows 11でアプリをアーカイブする方法|設定手順とメリット・注意点を徹底解説
誰もが「使うつもり」でアプリをダウンロードしながら、そのまま忘れてしまう経験があるのではないでしょうか。使わなくなったアプリでも、ストレージ容量を占有し続け、インターネット接続の帯域を無駄に消費します。Microsoftはこうした問題を防ぐために「アプリのアーカイブ」機能を搭載しました。なお、この機能はMicrosoft Storeからダウンロードしたアプリにのみ対応しています。 アプリのアーカイブ機能とは?何のためにあるのか アプリのアーカイブとは、あまり使わないアプリを削除しつつ、そのファイルや設定を保存しておける機能です。アーカイブされたアプリを再度開きたい場合は、WindowsがMi
-
Windows 10でBashを使おう!WSLで本物のLinux環境を実現する方法
そう、Windows 10は決して特別なOSではありません。リリース当初のレビューでも、Anniversary Updateに関する記事でも述べてきたように、良くも悪くも「平均的」な存在です。 しかし、興味深いのはBASHが実行できるという点です。そう、本物のLinux環境が、仮想マシンなしで動くのです。Picoカーネルドライバーを使用し、LinuxシステムコールをNT APIへ変換してLinuxカーネルをエミュレートする、ユーザーモードでのUbuntu実装です。この仕組みは「Windows Subsystem for Linux(WSL)」と呼ばれ、ネイティブに近い形で動作します。私たち技術