米Microsoftの開発者向けカンファレンス「Build 2016」(3月30日~4月1日開催)では、Windows 10上でUNIXのシェル「bash」を実行するデモンストレーションが披露された。この機能は、2016年夏にリリースする「Anniversary Update」からサポートするという。

Windows上でbashが動作し、Linuxユーザーには見慣れたディレクトリ構成が表示されている (Build 2016の基調講演動画より)

MicrosoftのMike Harsh氏は公式ブログで概要を説明しているが、さらに詳しい情報はAzure方面で有名なMicrosoft Web Platform and ToolsプリシンバルプログラムマネージャーのScott Hanselman氏が書いたブログ記事から読み取れる。

bashをはじめとするコマンドは開発者向け機能としてWindowsストアから提供し、ユーザーは「設定」の <更新とセキュリティ> → <開発者向け> にある設定を <開発者モード> に切り替えることで取得可能。Hanselman氏によれば、Windows 10上のUbuntu仮想マシンが動作し、その上でawkやsed、grep、viといった「ホンモノのUNIXコマンド」が使用できる。また、aptコマンドを使ってrubyなど他のコマンドを取得することも可能だ。

Canonical Ubuntu Product and Strategy teamのDustin Kirkland氏もブログで、「bashを起動するとcmd.exeのコンソールが起動し、/bin/bashを実行。すべてのユーザー領域にアクセスできる」と説明している。本件はBuild 2016開催前日から噂に上っていたが、一部のユーザーは懐疑的な見方をしていた。ハイパーバイザー型仮想マシンかDockerに代表されるコンテナーではないかと。

だが、Kirkland氏は「Ubuntu ELFバイナリをWindowsで直接実行できる」と説明。具体的にはMicrosoft Researchの技術を用いて、LinuxとWindowsのシステムコールをリアルタイムに変換し、コマンドを実行する仕組みだ。気になるのはWindowsのフォルダーへのアクセスだが、Cygwinと同じようにmntコマンドでCドライブなどにそのままアクセスできる。なお、bashを起動した際のルートディレクトリは「%USERPROFILE%\AppData\Local\Lxss\rootfs」フォルダーが割り当てられるようだ。また、現在はUbuntu 14.04 LTSを用いているが、近いうちにUbuntu 16.04 LTSに置き換わる。

こちらは別の環境で動作するbash。wgetやsshの接続を試していた(Kirkland氏のブログより)

さて、Windows 10 Insider Preview ビルド14251では、「lxcore.sys」「lxss.sys」が見つかったことが話題となった。カンのよい方ならお気付きのとおり「Lxss」は「LinuX Sub System」の略と推察できる。Build 2016のセッション「Running Bash on Ubuntu on Windows!」では、「Windows Subsystem for Linux」という呼称を用いているが、ほぼ同等と考えて構わない。本機能は近いうちにWindows 10 Insider Previewユーザーが実際に試せるようだが、Harsh氏のブログにあるとおり完全ではない。例えばbashのシェルスクリプトが停止するケースがまだ見られるそうだ。このあたりはAnniversary Updateまでに解決するだろう。

openやforkといったシステムコールを吸収する「Windows Subsystem for Linux」を実装し、bashなどのUNIXコマンドを実現している (Build 2016のセッションスライドより)

個人的には長年世話になったCygwinをアンインストールできる日を迎えられると、Microsoftのチャレンジを心から歓迎している。CEOがSatya Nadella氏に変わってからのMicrosoftはオープンソース周辺に関して、Microsoft AzureはLinuxをサポートし、SQL Server for Linuxの開発を表明するなど努力を続けてきた。

そして今回のクライアントOSによるオープンソースへのコミットは、OSやプラットフォームという垣根が無意味になったことの裏返しと述べると言い過ぎだろうか。Build 2015でプラットフォームの垣根を抜き取り、Build 2016で現実的なアプローチを行った。この路線が実を結べば来年のBuild 2017でも、我々が驚くようなプランを見せてくれるだろう。

阿久津良和(Cactus)