ビルド14316から評価できるようになったWindows Subsystem for Linux(WSL)は、現在、β版という位置付けです。そのため、本稿ではインストール方法や詳細な機能の説明はしません。既にInsiderプログラム参加者であって、試してみたいという方は、以下のマイクロソフトの公式ブログを参考にしてください。
WSLというよりも、ユーザーが直接対話操作することになる「Bash on Ubuntu on Windows」と言った方が分かりやすいかもしれません。マイクロソフトはWindowsの機能の1つとしてWSLを提供します。WSHは、Linuxディストリビューションの中でも人気のあるUbuntuの開発元Canonicalとの協力で開発されているようです。そして、Linuxのシェル環境として、CanonicalからBash on Ubuntu on Windowsがダウンロード提供されます。将来的には、他のディストリビューションのシェル環境も利用できるようになるかもしれません。
Bash on Ubuntu on WindowsはUbuntuのBashシェル環境ですが、Linuxの標準的なコマンド(ls、grep、awk、sed、sshなど)やユーティリティー(openssl、aptなど)、perl、gccなどの開発環境のバイナリを提供します。現在、SSH接続などのためにopensslで作成する証明書が必要な場合、Windowsではいろいろとツールを準備しないといけません。Bash on Ubuntu on Windowsでopensslをすぐに実行できるというのは、うれしい限りです。
また、「apt」コマンドを使用して、Ubuntuの標準リポジトリからバイナリパッケージを取得してインストールすることもできます(画面3、画面4)。例えば、インストール時に幾つかエラーが出ますが、「Apache2 HTTP Server」は次の3行のコマンドを実行するだけでインストールおよび起動することができました。
apt-get install apache2 mkdir -p /var/lock /etc/init.d/apache2 start
WSLおよびBash on Ubuntu on Windowsは、Windows上で直接Linux向けにコンパイルされたバイナリをユーザーモードで実行できます。Hyper-Vで動くLinux仮想マシンではありませんし、Cygwinのようなエミュレーションでもありません。
これには驚くかもしれませんが、古くからのWindowsを知っている方なら「前にも似たようなテクノロジーがあったじゃないか」と思っているでしょう。ただ、当時はLinuxではなく、UNIXとの相互運用性のためのPOSIX(Portable Operating System Interface)サブシステムと、UNIX(BSDおよびSVR5)の標準的なコマンド、ユーティリティー、開発環境でした。
Windows NTにはPOSIXサブシステムが標準搭載されており、Windowsカーネル(NTカーネル)上でUNIX互換環境としてPOSIX環境を提供していました。その後、POSIXサブシステムは「Interix」に置き換えられ、有償の「Services for UNIX(SFU)」(後に無償化)としてユーティリティーやSDK(Software Development Kit)とともに提供されるようになりました。
Windows Vista(Ultimate/Enterpriseエディションのみ)/Windows Server 2008以降では、「UNIXベースアプリケーション用サブシステム(Subsystem for UNIX-based Application(SUA)」という機能名に変更されました(画面5)。
その後、SUAはWindows 7/Windows Server 2008 R2までサポートされましたが、Windows 8/Windows Server 2012で削除されました。以下のドキュメントに説明されているように、SUAが提供されなくなったWindows 8/Windows Server 2012からは、「Hyper-Vの仮想マシンでLinuxを動かす」「CygwinのPOSIXエミュレーションに切り替える」「MinGWやMinGW-W64(Win32 APIヘッダを提供するGNUツール群)を利用してUNIXアプリケーションをWindowsに移植する」といった方法が紹介されています(画面6)。
このようにWSLは、かつてSFUやSUAと呼ばれていたものが、モダン(現代風)になってよみがえったという感じなのです(図1)。Webの開発者に人気なのは、今はUNIXではなく、オープンなLinuxですから。
Copyright © ITmedia, Inc. All Rights Reserved.