ページの先頭です

ふたつの世界をつなぐ架け橋 Bash/WSL

2017年7月18日 情報通信研究部 藤本 悠希

2015年7月にWindows 10がリリースされてからちょうど二年が経った。マイクロソフトによるWindows 7からの無償アップグレードプログラムの提供などもあり、日本を含むいくつかの国ではWindows 10のシェアはWindows 7を越えたとする統計もある(*1)。リリース後にも様々な更新が行われており、2017年4月のCreators Updateではペイント3Dといった3D機能の充実やMixed Reality(複合現実)のサポートなど、目を引く機能が追加されている。

こうした中、システム開発者の間で話題になっている新機能のひとつが、Bash on Ubuntu on Windows / Windows Subsystem for Linux(以下、Bash/WSL)である(*2)。Bash/WSLとは、大雑把に言えば、LinuxをWindows上のサブシステムとして動作させる機能である。その特徴として、(1)マイクロソフトによる公式の機能であること(*3)、(2)ネイティブLinuxバイナリが動作すること(Linux用に用意されたツールの実行ファイルがそのまま利用できる)、(3)Windowsシステムとの相互運用機能があること(Windows、Bash/WSL間で相互にツールの呼び出し、出力結果の利用ができる)が挙げられる。

Bash/WSLを用いることにより、Linux上で動作するシステムを、Windows上で開発することが可能となる。もちろん、Linux上で動作するシステムを作るのであればLinux上で開発を行うのが自然な発想ではある。しかし、業務の都合上、文書作成などのシステム開発以外の作業をWindows上で行わざるを得ないケースは多い。また、Windowsの開発ツールに慣れている開発者は、Windows上でLinuxのシステム開発を行いたいという場合もある。こうした時、これまではVirtualBoxなどの仮想化ソフトウェアを使い、Windowsマシン上にゲストOSとしてLinuxを動作させる方法が一般的に用いられてきたが、Bash/WSLの登場により、仮想環境を構築する手間なしに開発を行うことも可能となる。

もうひとつのBash/WSLの用途として、Windows上でのLinuxツール群の利用が挙げられる。例えば、テキスト検索(grep)やファイル比較(diff)、テキスト加工(sed、tr)からエディタ・開発環境(vim、emacs)まで、Linuxには長い間ユーザーを支えてきた歴史あるツール群が揃っている。Linuxツール群に慣れているユーザーがWindows上で開発を行う場合でも、それを使いたいと考えるのは自然であろう。Windowsに移植されているLinuxツールも多いが、ツール利用の際にはそもそもWindows移植版が存在するかどうかを調べる必要があるうえ、インストール作業に手間がかかる、細かい部分で使い勝手が異なるなどの問題がある。Bash/WSLを利用すれば、Linux用のパッケージ管理ツールを利用して簡単にツールの追加が可能であり、基本的に動作もLinux上と変わらない(*4)。

Bash/WSLは、主に開発者・技術者の利用を想定している(*5)。一方で、一般のユーザーにとってBash/WSLは何をもたらし得るだろうか。まず考えられるのは、より多くのLinux由来のツールがWindows上で使用できるようになることである。これまでも多くのLinuxツールがWindowsに移植されてきたが、Bash/WSLの恩恵により、もはや移植は不要となる。Windowsに慣れたユーザーのためにグラフィカルなインターフェイスを提供すれば、立派なWindowsのツールとして通用する。個人的には、これをきっかけとしてより多くの人が充実したLinuxツール群に興味を持つことになればと考えている。強力な機能があるにも拘わらずLinuxツール群が一般のユーザーに浸透してこなかった理由として、ツール自体への難解な印象や、一般のユーザーの間での知名度の低さが挙げられるが、Bash/WSL、そしてそれをベースとしたWindows版ツールの登場により、どちらの問題も解決され、ユーザーの利便性も高まると考えられる。

また、一般のユーザーが知らぬ間にBash/WSLの恩恵にあずかることもあるだろう。Windowsのアプリケーションを開発する際に何十行、何百行とプログラムを書かなければ実現できないことが、Linuxツールを呼び出すことができれば数行で実現できるということはたびたびある。普段ビジネスマンが何気なく使っているWindowsアプリケーションやExcelマクロ/VBAの裏で実はBash/WSLが動いている、といった時代がやってくるかもしれない。

Bash/WSLの登場は、多くの開発者にとって一大事件だと言えるだろう。Windows、Linuxをつなぐ橋はまだ架かったばかりで、Bash/WSLは進化の途上にある。ふたつの世界が結ばれたことで、それぞれの世界にも変化が起こることだろう。今後もBash/WSLの進展から目が離せなくなりそうだ。

  1. *1Desktop windows versions market share in Japan | StatCounter Global Stats
  2. *2Linuxとは、ここでは、Windowsや(Mac)OS Xなどと同様のOSの一種で、システム開発の際やサーバー用のOSとしてよく用いられるもの、と考えていただいてよいだろう。Ubuntuは、Linuxの一種(正確には、Linuxディストリビューションのひとつ)である。
  3. *3本稿執筆時点ではベータ版の位置づけで、利用する際には機能の有効化が必要である。
  4. *4従来、Windows上でLinuxツール群を使う際には、仮想環境を用いる方法やCygwin、MSYS2、Git BashなどのLinuxに類似のシェル環境をインストールする方法があった。詳細な説明は避けるが、前者の方法はWindowsシステムとの相互運用が難しい点、後者の方法はLinuxバイナリが動作しない点などで問題があった。
  5. *5Learn About Bash on Windows Subsystem For Linux

関連情報

この執筆者はこちらも執筆しています

ページの先頭へ