WSL 2の改善と新機能
「Build 18945」では「WSL 2」が改良され、新機能が追加されています。Windowsアプリケーションから「localhost」を経由して「WSL 2」上で動作するLinuxのネットワークアプリケーションに接続できるようになりました。
また「WSL 2」で使用する「Linux kernel」を指定するなど、仮想マシンの設定を制御するグローバル設定オプションが導入されています。
「Build 18945」の「WSL」に関する変更点は、以下を参考にしてください。
localhostを利用してWindowsからLinuxアプリケーションに接続する
初期リリースの「WSL 2」では、WindowsアプリケーションからLinuxのネットワークアプリケーションに接続するために、リモートIPアドレスを使用する必要がありました。この状況が改善され、Windowsアプリケーションから「localhost」を経由して、Linuxのネットワークアプリケーションに接続できるようになりました。
将来的にLinuxからも接続可能に
また将来的に、Linuxアプリケーションから「localhost」を経由して、Windowsのネットワークアプリケーションに接続できるようになる予定です。今回の「localhost」対応は、Web開発者がブラウザーから自身のWebサイトにアクセスするなど、最も広く利用されるワークフローに優先的に対応したものであり、LinuxからWindowsへのアクセスは今後の対応となります。
WSLグローバル設定
「Build 17093」以降、「WSL」上で動作するディストリビューションの設定を行う「wsl.conf」が導入されました。「Build 18945」では、「WSL 2」上で動作する全Linuxディストリビューションに共通して適用する設定が導入されました。
各Linuxディストリビューションごとの設定
「wsl.conf」では、Windowsドライブの自動マウント設定や、マウントポイントの場所指定、相互運用の有効・無効の切り替えなど、様々な設定が可能です。「wsl.conf」は各Linuxディストリビューションごとに設定する仕組みです。
WSL 2は同じ仮想マシン上で動作する
「WSL 2」では、すべてのLinuxディストリビューションは同じ仮想マシン上で動作します。そのため仮想マシンの設定を一度に適用する仕組みが導入されました。
これが「WSLグローバル設定(WSL global configuration)」です。
この設定は「WSL 2」上で動作する全Linuxディストリビューションに共通して適用されます。
「WSLグローバル設定」は上級者向けに提供される機能であり、「WSL 2」の振る舞いを高度にカスタマイズしたいユーザー向けの設定です。
.wslconfig設定ファイル
WSLグローバル設定は「C:\Users\ユーザー名\.wslconfig」ファイルに記述します。「.wslconfig」のファイルフォーマットは、INIファイルと同種のフォーマットです。
WSLグローバル設定で最も興味深い設定は、Linuxディストリビューションで使用する「Linux kernel」を指定する設定でしょう。
カスタムカーネルを使用するには
「WSL 2」の採用にあたりWindowsでは、自身で開発している「Linux kernel」も一緒に配布しています。しかしあるカーネルモジュールを利用するために、異なるバージョンの「Linux kernel」が必要になることもあります。
このような状況では、カスタムカーネルを利用することができます。
カスタムカーネルの指定
「.wslconfig」ファイルに「kernel」オプションを記述すれば、指定したカスタムカーネルを利用できます。「kernel」オプションに指定されたカスタムカーネルは、WSL 2仮想マシン起動時に読み込まれます。