Microsoftは2017年4月11日(現地時間)、WSL(Windows Subsystem for Linux)及びコマンドプロンプトに関する進捗状況を公式ブログでアナウンスした。

同日(日本は12日)にリリースした大型アップデート「Windows 10 Creators Update」に伴い、WSLも更新されている。MicrosoftはLinuxシステムコールの互換性を向上させ、sedやgrep、awkといった基本的なコマンドからEmacsなどのテキストエディター、Node.jsやRubyなどの開発&プラットフォームツールが正しく動作するようになったと同記事でアピールした。なお、WSL上でのX/GUIアプリケーションは基本的に未サポートだが、同社は「実行を防止することはない」と述べている。

Creators Update上のWSLはUbuntu 16.04をサポートしているが、Anniversary UpdateからCreators Updateへ更新した場合は、手動アップグレードが必要だ。Microsoftは「lxrun /unsitall /full /y」によるBUW(Bash on Ubuntu on Windows)の削除と「lxrun /install」による再インストールを推奨している。また、正しく動作しない場合はBash上で「sudo do-release-upgrade」を実行し、ディストリビューションアップグレードの実行方法を紹介した。

新たなWSLでは、ifconfigコマンドによるネットワーク接続の表示や、ICMPのサポートによるpingコマンドのサポートが行われた。さらにLinux上でファイル変更通知を行う際に用いるinotifyをサポートすることで、アプリケーションがファイルシステムの変更通知に登録し、プロジェクトの再構築やWebサーバーの再起動などのアクションをトリガー可能になる。さらにWSL上のinotifyはWindowsファイルシステムもサポートし、例えばVisual Studio Codeを使用して、NTFS上のプロジェクトファイルを保存した際も利用できる。

BUW上でpingコマンドを実行した状態(以下すべて公式ブログより抜粋)

inotifyのサポートにより、Visual Studio Codeでファイルを編集した結果もリアルタイムに反映される

その他にもBash上からWindowsアプリケーションを実行可能にし、Windows(PowerShell)からLinuxのバイナリやコマンド、スクリプトを起動することも可能になった。WindowsとBUWの連携を強化するため、Windowsのシンボリックリンク作成機能を一般ユーザーでも実行可能になったのは大きな変更点に数えていいだろう。さらにNETLINKソケット、TCPソケット、IPv6の改善などが加わっている。

BUW上からメモ帳を起動した状態

Windows PowerShellからLinux上のコマンドを実行した状態

BUWの端末となるコマンドプロンプト側にも改善は加わった。VTシーケンスのサポートを強化し、tmuxやthopといったリッチテキストなUIを持つコマンドにも対応。また、ユーザーフィードバックとして多かった24ビットカラーのサポートや、mc(Midnight Commander)などで利用可能なマウスのサポートも加わっている。Microsoftは今後の目標として、「WSL及びWindowsコンソールの両方に改善の余地がある。機能を充実させるため、今後も改良を加えていく」と述べた。

tmuxコマンドでテキスト端末を分割表示した例

24ビットカラーを表示するスクリプト実行例

mcなどマウスに対応するコマンドは、マウスポインターが現れる

阿久津良和(Cactus)