本連載でも紹介したが(https://ascii.jp/elem/000/004/415/4415912/)、紹介当時プレビュー版だったWSLコンテナーが安定版となり、Windows 11 Ver.26H2のタイミングで配布が開始された。
26H2では、wsl.exeコマンドを使ってアップデートすると、WSLコンテナーに対応し、wslc.exeが付属したWSLを入手できるはずだ。なお、概要に関しては上述の記事を参照してほしい。
26H2とともに安定版の配布が開始されたWSLコンテナー
原稿執筆時点では、WSLの安定版バージョンはVer.3.0.1で、プレビュー版としてVer.3.0.2が配布されている。評価は安定版(Ver.3.0.1)で行なった。安定版のLinuxカーネルのバージョンは6.18.40.1。なお、WSLのLinuxカーネルの安定版は、10月7日にリリースされた6.18.54.1。wsl.exeのupdateコマンドでは、なぜか最新の安定版はインストールされなかった。
前回も簡単に解説したが、WSLコンテナーではAPIが用意され、wslc.exeだけでなく、ユーザーが開発したプログラムからコンテナの管理、制御ができる。
WSLコンテナーは、従来からWSL制御をしているwslservice.exeを拡張して、コンテナー機能を追加した。コンテナーの起動や制御用にwslcsession.exeを用意した。Linux側には、コンテナーフレームワークのmobyを使い、docker同等を実現している
APIを実際に実行するのは、「wslservice.exe」というCOMコンポーネント。wslc.exeは、これを直接操作するが、ユーザープログラムからは、C言語、C++、C#の3つの言語用のライブラリが用意され「wslcsdk.dll」を介して「wslservice.exe」を利用する。
wslservice.exe自体は、Win32側からWSLを制御するためのAPI全体を含み、WSLコンテナー専用という訳ではない。wsl.exeなどもwslservice.exeを介してWSL環境を制御、利用する。
一般的なLinuxのコンテナと違い、WSLコンテナーは、WSLと同じく軽量ユーティリティー仮想マシンを使ってコンテナ環境を実現している。このため、コンテナ内との通信には、ハイパーバイザー(Hyper-V)のソケット(hvsocket)を使う。このときのAPIはHTTPをベースにしたRESTスタイルである。この軽量仮想マシンとは「wslcsession.exe」で通信する。
現在のWSLは、オープンソースとしてGitHubで公開されており、WSLコンテナー関連のコードも見ることができる。
APIのドキュメントに関しては、以下のページから見始めるといいだろう(https://github.com/microsoft/WSL/blob/master/doc/docs/api-reference/index.md)。
WSLコンテナーでwslcsession.exe経由でコンテナーを制御するのがmobyと呼ばれるモジュールだ。mobyはdockerのベースとなる、コンテナ用フレームワークで、オープンソースプロジェクトとして公開されている。
●モビープロジェクトの紹介: ソフトウェアのコンテナ化の動きを前進させる新しいオープンソースプロジェクト
https://www.docker.com/ja-jp/blog/introducing-the-moby-project/
●Moby
https://mobyproject.org/
DockerのLinuxコンテナーは仮想マシンを使わず、Linuxカーネルの機能により、Linuxの中に独立した実行環境を作る。ただし、仮想マシンのように完全に分離されているわけではなく、作成したコンテナー内のシステム環境設定が親となるLinux環境に影響しないようにしてある。
このため、カーネルは共有するものの、異なるディストリビューション環境をコンテナ内に作ることが可能だ。WSLコンテナーは、このあたりに関しては、Dockerなどと同じくLinuxカーネルの機能を使い、そのためにmobyが使われている。
正式公開となったWSLコンテナーだが、wslc.exeコマンドの機能などをみると、Docker同等というわけではなく、最低限を提供しているという状態だ。このため、Dockerを含めて、サードパーティーやオープンソースプロジェクト、Microsoft自身が制御コマンドやGUIを提供できる状態にある。次回は、WSLコンテナーのストレージなどを詳しく見ていくことにする。
本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
-
第548回
PC
Windows 11 Ver.26H2の配布が開始 すでに5回目のメジャーアップデートで「次」も気になる頃合い!? -
第547回
PC
Windows 11におけるファイルとフォルダの削除の仕組みについて -
第546回
PC
Windows 11でBluetoothオーディオ共有(Auracast)を試してみる -
第545回
PC
PowerShellにおけるwinget -
第544回
PC
Windows 11 Ver.26H2プレビュー公開 さらにその次のWindowsも少し見えてきた -
第543回
PC
「WMIC」が消滅 コマンドが消える「WMI」とはそもそも何? -
第542回
PC
PowerToysの最新版では、今使っているアプリの複数ウィンドウをショートカットで切り替えられる便利機能が追加 -
第541回
PC
AIを組み込んだWindowsターミナル「Intelligent Terminal」をインストールして試してみる -
第540回
PC
Windows 11に付属の新しいOutlookでアカウント設定をする -
第539回
PC
Microsoft製の新しいWindows用日本語入力「Copilot Keyboard」を使う - この連載の一覧へ











