米Microsoft社は2016年4月6日、WindowsでUbuntuアプリケーションを動かすLinux互換環境「Bash on Ubuntu on Windows」のベータ版提供を始めた。Ubuntuと同じコマンド環境が使える。その実行ファイルは、WindowsとUbuntuとで全く同じ。開発版のWindows 10で利用できる。

 Bash on Ubuntu on Windows(以下UoW)は、Ubuntuの開発を主導する英Canonical社とMicrosoft社が共同開発中のLinux互換環境だ(図1)。ソフトウエア開発者が、Linuxを基盤とするソフトウエアやWebアプリケーションをWindows上で開発する際の環境整備を目的とする。

図1●Windows 10のLinux互換コマンド環境「Bash on Windows on Ubuntu」
図1●Windows 10のLinux互換コマンド環境「Bash on Windows on Ubuntu」
Linuxのコマンドシェルとして広く使われる「bash」を起動できる。米Microsoft社はWindowsカーネルにLinux互換機能を追加。英Canonical社の協力でUbuntuのユーザーランド(Linuxカーネルを除くソフトウエア)を搭載する。画面はWindows 10 Insider Preview 14316に導入したベータ版。
[画像のクリックで拡大表示]

 これまでWindowsでLinuxのツール類を使う場合は、Linuxのコマンドや開発環境をWindowsに移植した「Cygwin」や「MinGW」といったソフトを使う必要があった。これに対しUoWは、Linuxの実行ファイルがOSの機能を呼び出す際の命令を、Windowsカーネルのサブシステムである「Windows Subsystem for Linux」が透過的に変換してWindowsの命令に置き換える。UoWの実行ファイルとLinuxの実行ファイルは同じものだ(図2)。

図2●bashの実行ファイルの比較
図2●bashの実行ファイルの比較
bashの実行ファイルのハッシュ値はWindowsとLinuxとで同じ。同じファイルからは同じハッシュ値が出力される。
[画像のクリックで拡大表示]

Insider Preview版で利用可能

 UoWをインストールするには、Windows 10の「設定」-「更新とセキュリティ」を開き、開発者モードに切り替えて機能を有効にする必要がある(図3)。導入後、Windowsのコマンドプロンプトで「bash」と入力するか、スタートメニューから「bash」を検索して「Bash on Ubuntu on Windows」を起動すると、管理者権限で端末が起動する。

図3●Windows 10のLinux互換環境を有効にする手順
図3●Windows 10のLinux互換環境を有効にする手順
[画像のクリックで拡大表示]
図4●Bash on Ubuntu on Windows環境のDNSサーバーを設定
図4●Bash on Ubuntu on Windows環境のDNSサーバーを設定
2016年4月22日時点では「/etc/resolv.conf」にこの1行を入力する必要がある。

 UoWではUbuntu 14.04相当のLinux環境が利用可能だ。ただDNSサーバーの設定が入っていないためパッケージ管理ツール「apt-get」のネットワークアクセスに失敗する。そこで「/etc/resolv.conf」にDNSサーバーを図4のように設定する。これでapt-getコマンドが使えるようになる。

 あとは普通のUbuntuと同じである *1。ただ最初のベータ版だけに、未対応の機能も多い。不具合の報告は「https://github.com/Microsoft/BashOnWindows/issues」で受け付けている。現在は開発版のみの提供だが、2016年夏のアップデートで通常版のWindowsでも利用できるようになる予定だ。