このページの本文へ

前へ 1 2 次へ

Macはもう不要!? - "UNIX使い"狙い撃ちの「Windows Subsystem for Linux」を検証する(前編)

2016年08月29日 10時00分更新

文● 海上忍(@u_shinobu)、編集●ハイサイ比嘉

  • この記事をはてなブックマークに追加
  • 本文印刷

 Build 2016で発表され話題となった「Windows 10でネイティブ動作するbash」(「Windows Subsystem for Linux」)。ベータ版という位置付けだが、先日Windows 10 Anniversary Updateに含まれる形で提供が開始され、いよいよユーザーに身近な存在となった。その概念から導入の実際、ネイティブLinux環境との違いなどについて、2回にわたりレポートする。

「Windows Subsystem for Linux」の衝撃

 MicrosoftがWindows 10向けに提供する「Windows 10 Anniversary Update」は、2015年11月公開の「Threshold 2」以来10ヵ月ぶりとなる大型アップデート。生体認証機能をサポートする「Windows Hello」や音声アシスタント「Cortana」など多くの機能が強化され、規模としてはThreshold 2をしのぐといっていい。

 そのうち本稿で採り上げるのは、UNIX系OSで広く利用されているシェル「bash」がネイティブサポートされたこと。Ubuntu Linuxをサブシステムで動作させる機構が追加されたため、bashのみならずLinuxのコマンドをWindows(実際にはコマンドプロンプト)から透過的に利用できるようになったのだ。

「bash」などLinuxのプログラム(コマンド)がWindows 10上でネイティブ動作する

 これまでもWindowsにはCygwinやMSYS2などUNIXシェルが動作する環境は存在したが、それらが依存するPOSIX互換レイヤーがオーバーヘッドを生じるうえ、ディレクトリ構造がWindowsともUNIXとも異なってしまうなど"クセ"があり、WindowsでUNIX由来の機能/コマンドをスムースに利用する仕組みが存在しなかった。

 一方、対比されることが多いOS X(macOS)といえば、ネイティブのBSDレイヤーを持ちSingle UNIX Specificationの認証を受けた「UNIX」であり、LinuxなどのPC-UNIXとソースコードレベルで高い互換性を備える。LAMP(Linux+Apache+MySQL+{PHP|Perl|Python})という言葉があるように、WEBアプリ開発環境をLinux上で構築することが一種のトレンドとして存在するが、同様の環境をOS X上で構築することは難しくない。Windowsでこれを実現しようとなると、仮想マシンを用意したりCygwinに手を入れたりひと苦労で、結構な数のデベロッパーがMacに移行したこともうなずける。

 Windows 10 Anniversary Updateに含まれる「Windows Subsystem for Linux」は、まさにそこを意識した機能といえる。仮想環境でもPOSIX互換レイヤーでもなく、サブシステムとしてUbuntu Linuxを動作させれば、ほぼネイティブにLinuxの機能(バイナリ)がWindowsから呼び出せる。Build 2016での発表以来、シェル「bash」がネイティブ動作することばかりクローズアップされているが、bashはあくまで"窓口"に過ぎず、その本質はLinuxをWindowsサブシステムで動作可能にしたことにある。

Windows Subsystem for Linuxの概念図(MSDN/Channel 9より)

「Ubuntu On Windows」のセットアップ

 繰り返しになるが、Windows 10上でネイティブ動作するbash、およびLinuxのプログラム(コマンド)を手に入れるには、Windows 10 Anniversary Updateを適用し、その後「Ubuntu on Windows」のセットアップを行なうという手順になる。

 誤解のないように補足しておくと、Ubuntu Linuxをネイティブ動作させるためのサブシステム(Windows Subsystem for Linux)はWindows 10 Anniversary Updateにオプションの形で含まれるが、Ubuntu Linuxのイメージファイルは後から追加することになる。

 セットアップは若干煩雑で数回のシステム再起動を伴うが、いったん済ませてしまえば次回以降はコマンドプロンプトから「bash」を実行するだけでLinuxとしての機能を呼び出せる。まずは、作業を進めてみよう。

前へ 1 2 次へ

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン