3月30日(現地時間)、Microsoftは次期Windows 10アップデート「Anniversary Update」でbashを始めとするUNIXコマンドをサポートすることを明らかにしている(関連記事)。気になるのは、その背景やロジックだが、Linuxディストリビューション「Ubuntu」の開発や支援を行うCanonicalの公式ブログ「Ubuntu Insights」で、開発に携わった人物がその概要を説明した。

Canonical Ubuntu Product&Strategy teamのDustin Kirkland氏は、この数ヶ月間、自社とMicrosoftの間で結ばれた極秘プロジェクトに携わってきたことを明かし、「16年ぶりのWindowsは、奇妙な気分だった」と感想を述べた。また、同プロジェクトの「Windows 10のcmd.exe上でUbuntuユーザースペースとbashシェルがネイティブで動作する」という仕組みを耳にしても、理解するまでかなりの時間を要したという。

本機能はLinuxとWindowsのシステムコールをリアルタイムに変換し、コマンドを実行することで実現している。背景にはMicrosoft Researchの技術が存在し、Kirkland氏は「Ubuntu ELFバイナリをWindowsで直接実行できる」と説明しつつ、今回の準備については次のように説明した。

ラッピングしたUbuntuのルートファイルシステムを、Windowsアプリケーションパッケージ(拡張子「.appx」)としてWindowsストアにアップロードしている。その際はXMLファイルの編集や各サイズのPNG形式ファイルを用意しなければならず、非Windows開発者である同氏は、Microsoft Visual Studioの操作に苦戦したという。なお、現在はUbuntu 14.04 LTSを用いているが、近いうちにイメージファイルはUbuntu 16.04 LTSに置き換わる。

Kirkland氏は、20年以上オープンソースの世界に身を置いてきたが、今回の取り組みを「オープンソース開発者にとって夢のような出来事だ。Windows 10デスクトップをオープンソース技術で埋め尽くせる」と説明した。

現在のバージョンでもCPUやメモリー、I/Oパフォーマンスは実機に近い速度を打ち出すという(以下、すべてKirkland氏のブログより抜粋)

ファイルシステムのルートは、「%USERPROFILE%\AppData\Local\Lxss\rootfs」フォルダーが割り当てられる

中身はUbuntu 14.04 LTSのため、apt-getコマンドでパッケージを自由に追加できる

阿久津良和(Cactus)