RS3でアップデートされるWindows Subsystem for Linux
Fall Creators Update(以下、RS3)でもWindows Subsystem for Linux(以下、WSL)のアップデートが予定されている。
WSLは、Preview版のビルド16251(7月26日配布)から正式版となり、「Windowsの機能」(コントロールパネルの「プログラムと機能」→「Windowsの機能の有効化または無効化」)にあった「Beta」の表記が消えた。また、Windows Server 2016のWindows Insider Preview版でもWSLが提供されるようになった。
マイクロソフトによれば、RS3以降のWSLのアップデート内容としては、
・互換性の向上
・シリアルポートのサポート(COMデバイスをttyデバイスと接続)
・ファイルシステム改良(SMBプロトコル、FAT32対応、USBドライブ対応、性能向上)
・OpenCLへの対応(GoogleのTensor flowが動作)
・サーバー機能(開発用およびDevOps向け)
といったことが挙げられている。
RS3は現在Windows Insider PreviewでPreview版が公開中だが、これを用いることで、改良されたWSLが利用できる。たとえば、現在のPreview版では、Linux内でWindows側のファイルを扱うためのdrvfsが認識されており、Linux側からmountコマンドを使ってWindows側やネットワーク経由で他のWindowsマシンの共有ファイルをマウントできる。
もっともPreview版のWSLやコンソールは機能的には改良されているものの、バグが混入し、RS2で到達していたレベルから落ちてしまうこともある。Preview版とはそういうものではあるが、WSLをある程度利用しているユーザーからするとツライ部分もある。
たとえば、RS3 Build 16257では、RS2で動作していたコンソール分割アプリケーションのbyobuが正しく動作しなくなった。
byobuは、tmuxなどのターミナル分割ソフトウェアで、その対応は、RS2の目標の1つだった(https://blogs.msdn.microsoft.com/commandline/2016/06/08/tmux-support-arrives-for-bash-on-ubuntu-on-windows/)。調べて見ると、byobuでステータスバーの描画に失敗するのは、ユニコード文字列の文字幅の判定方法に起因する問題らしい。RS2とRS3ではこのあたりが改良されたようだ。以下のコマンドにより、環境変数を設定することで、少なくとも表示の問題を回避できbyobuを正しく動作させることが可能だ。
export VTE_CJK_WIDTH=1
Insider Preview向けのWindowsストアで
Linuxディストリビューションが配布開始
もう1つの話題として、Insider Preview向けにWindowsストアで、WSLで利用できるディストリビューションの配布が開始されたことがある。
今年5月のBuild 2017では、「Fedora」「SUSE」「Ubuntu」の3つのLinuxディストリビューションの対応が発表されたが、原稿執筆時点では、「OpenSUSE Leap 42」と「SUSE Linux Enterprise Server 12」(有償ソフトウェアだが、1年間の開発者向け無料サブスクリプションが付属)およびUbuntuがWindowsストアで配布されている。
Windowsストアで配布されているSUSEとUbuntuは、RS2に付属しているWSLとはちょっと違う。ここでは区別のため前者をストア版WSL、後者をデスクトップ版WSLと呼ぶ。簡単にいうとストア版WSLもデスクトップ版も同じ技術を使って実現されているが、ストア版は、デスクトップ版をベースにUWP Desktop Bridge(Project Centennial)を使って、UWPのパッケージ形式であるAPPX化したものだ。このため、両者はファイルやフォルダの利用方法が違っている。また、こうした違いがあるため、両者は共存可能だ。
大きな違いとしてストア版WSLは、Bash.exeから起動するのではなく、UWPアプリと同じく、スタートメニューやタイルから起動する。ストアアプリであるため、コマンドラインからは起動できない。コマンドプロンプト(CMD.EXE)からBash.exeにコマンドを渡し、さらに結果をCMD.EXE側で受けるといった使い方はできない。ただし、Windowsとの相互運用性はあるため、ストア版WSL内からWindowsプログラムを起動することは可能だ。
もう1つは、デスクトップ版WSLで利用可能だったLXRUNコマンドは、ストア版WSLでは利用できない。UWPアプリと同じになるため、アップデートは自動的に行なわれ、このときユーザー環境などはそのまま引き継がれることになると考えられる。
また、インストール先は、UWPアプリと同じく、C:\Program Files\WindowsApps以下になる。
WSLでは、Linux側のファイルシステムをVolFSとして実現しているが、その元になるファイルシステムイメージは、インストールフォルダにある「Install.tar.gz」である。これは、GZIPで圧縮された(.gz)、tar形式のアーカイブファイルである。該当のインストール先フォルダには、このほかに「アプリマニフェスト」(AppxManifest.xml)やexe実行ファイルなどがある。また、「AppxBlockMap.xml」は、Windowsストアのストリーミングインストールを行う場合のファイルだ。
なお、このVolFSは、UWPアプリのローカル情報を記録するフォルダである「%userprofile%\AppData\Local\Packages\パッケージ名」以下に格納されている。具体的には、
%userprofile%\AppData\Local\Packages\パッケージ名\LocalState\rootfs
にVolFSのベースになるフォルダが作られている。なお、WSLでは、VolFSをWindows側から直接アクセスすることを想定していないため、エクスプローラーでここを直接操作するのは避けること。
Packagesフォルダは、多数のフォルダがあるが、エクスプローラーの検索欄で「*suse」や「*canonical」を指定して検索するといいだろう。各フォルダの下にある「LocalState」にマウントされるファイルシステムに対応したフォルダがある。このうちrootfsがWSL内の「/」以下のrootfsとなっている。
この連載の記事
-
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る - この連載の一覧へ