検索
連載

Windows 10で動く「Bash」を試す Mac使いの開発者にもアピールする?鈴木淳也の「Windowsフロントライン」(1/3 ページ)

Windows 10の次期大型アップデート「Anniversary Update」が「Bash」をサポートすることとなった。プレビュー版を試しつつ、Bash対応の背景を探る。

Share
Tweet
LINE
Hatena
※本記事はアフィリエイトプログラムによる収益を得ています

 2016年3月末に行われた米Microsoftの開発者会議「Build 2016」では、Windows 10に今夏配信が開始される次期大型アップデート「Anniversary Update」の新機能の1つとして、「Bash on Windows」が紹介された。

 この機能は、4月6日(米国時間)にWindows Insider Programの「Fast Ring」ユーザーに向けて配信が始まったWindows 10 Insider Previewの「Build 14316」で早速サポートされている。まだ未完成の新機能ではあるが、今回は実際にインストールして使ってみた。

Bash on Windows
2016年夏のアップデートに向けて、いち早くWindows 10プレビュー版に導入された「Bash on Windows」
Build 14316
4月6日(米国時間)に配信が開始されたWindows 10 Insider Preview「Build 14316」でBashが利用可能になった

「Bash on Windows」は何がすごいのか

 「Bash」と言えば、UNIXやLinuxではおなじみのコマンドシェルで、Mac OS Xにも標準搭載されている。これをWindows上で利用可能にするのが「Bash on Windows」だ。実際のところ、BashをWindows上で利用するにはさまざまな方法があり、それ自体はさほど珍しくない。

 従来より提供されているメジャーな手段としては、Linuxライクな実行環境をWindows上に再現する「Cygwin」のほか、仮想マシン(VM)を使ってLinuxディストリビューションそのものを走らせてしまう方法がある。

 ただし、前者はパフォーマンス的な問題があり、後者はOSイメージ1つ分のシステムリソースを余分に消費するため、ノートPCやタブレットなどの利用ではやや厳しいという問題がある。こうした問題を解決すべく、Bashをより自然な形で実装し、Linuxバイナリをそのままネイティブ実行可能な環境を提供するのがBash on Windowsとなる。

 Ubuntu Insightsでダスティン・カークランド氏が解説しているが、Bash on WindowsではLinuxカーネルが存在せず、Ubuntuのバイナリが直接Windows上で動作している形態を採っている。

 またCygwinのように各種ツール群をWindows上で動作させるために再コンパイルするようなことはなく、UbuntuのELF(Executable and Linkable Format)形式のバイナリファイルを直接Windows上で実行できるという特徴がある。つまり、VMのようなリソース食いの仕組みを使うことなく、Ubuntuをほぼそのままの感覚でWindows上のBashで利用できるというわけだ。

 「Building Apps for Windows Blog」の投稿によれば、仕組み的にはWindowsカーネル内に「Windows Subsystem for Linux(WSL)」というサブシステムを新たに構築し、ユーザーモード上で動作するUbuntuが必要に応じてサブシステムに対して「syscall」を行うことで、Linuxバイナリのネイティブ実行をサポートしているようだ。

 注意点としては、WSL自体がまだβ版で実験的な仕組みであること、そしてGUIなどの仕組みの利用は現時点でサポートされていない点だ。また、あくまで開発者らが(オープンソース系の)ツールを活用して必要な作業を進めるために提供される仕組みであり、Linuxサーバとして恒常的にプロセスを動作させる用途は想定していない点にも注意したい。開発者や一部プロフェッショナルがツール利用や実験場として活用することを想定した仕組みだ。

Bash on Windows概要
Bash on Windowsで最大の特徴は、カーネル内の「Windows Sybsystem for Linux(WSL)」とUbuntuが連携することで、Linuxの各種バイナリが高速動作する点にある

 前口上はこの程度にして、まずは早速インストールしてみよう。

       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る