Windows 10
 Computer >> コンピューター >  >> システム >> Windows 10

Windows 10がついに本物のLinux環境を搭載――BASHシェルとUbuntuサブシステム徹底解説

Microsoftは年次開発者カンファレンス「Build」を開催し、人工知能(AI)や拡張現実(AR)分野における目覚ましい進展を披露するとともに、Windows 10が強力なゲーミングプラットフォームであることを改めて印象付けました。しかし、会場を最も沸かせたのは、実は別の発表でした。

UbuntuそのままのLinux環境がWindows上で動く

サンフランシスコのステージに立った開発責任者のKevin Gallo氏は、BASHシェルがWindows 10に搭載されると発表しました。ただし、「BASHが使えるようになる」という表現では、この発表のインパクトを大きく見誤ることになります。Microsoftが実現したのは、それをはるかに超えるものだからです。

その正体は、仮想マシンではなく「Linuxサブシステム」。Ubuntu 14.04 LTSをベースとし、Ubuntuのユーザースペースへのアクセスを可能にする仕組みです。

ここで重要なのは、従来の手法とは根本的に異なるという点です。Windows 10は、機能を絞った仮想マシンでUbuntuをエミュレートしているわけではありません。CygwinのようにBASHをWindows向けにコンパイルしたわけでも、JavaScriptで再実装したCASHのようなものでもありません。実際には、互換性レイヤー(コンパチビリティレイヤー)上で動作しています。

具体的には、Linuxのシステムコール(プログラムがOSカーネルに処理を要求する仕組み。通称「syscall」)を、Microsoftが独自に開発したソフトウェアによってリアルタイムでWindowsのシステムコールへ変換しています。この仕組みについては、移植作業を支援したCanonicalのエンジニアDustin Kirkland氏がより詳しく解説しています。

つまり、これは単にBASHと最低限のLinuxユーティリティを移植しただけのものではないのです。ほぼすべての機能が動作します。

ユーザーはPuTTYなどのサードパーティ製ツールに頼らず、標準のLinux SSHクライアントを使えるようになります。コマンドラインからVIMでテキストを編集し、SedやAwkでテキスト処理を行うことも可能です。さらに、apt-getによるパッケージ管理さえ利用でき、数万に及ぶUbuntuバイナリをインストールできます。

Kirkland氏によれば、ほとんどの機能は良好に動作するものの、TTYを使用する一部のアプリケーション(byobu、screen、tmuxなど)にはまだ課題があるとのことです。ただし改善は進んでおり、MicrosoftがBuild 2016の基調講演でこの機能を前面に押し出したことを考えれば、最終的には完成度の高い製品になると期待できます。

一般ユーザーにとって何が嬉しいのか

正直に言えば、この発表を最も喜ぶのは、Linux愛好家とソフトウェア開発者の2つの層でしょう。しかし、どちらにも当てはまらない方にとっても、ワクワクする理由は十分にあります。

第一に、Linuxを実際にインストールすることなく、そのエコシステムに足を踏み入れる絶好の機会となる点です。完全な初心者でも、慣れ親しんだWindows 10の環境から比較的安全に、一般的なLinuxツールの基礎を学べます。

第二に、プログラミングを学び始めたばかりの人にとって大きなメリットがあります。初心者向けとして人気の高い言語ほど、Windowsへの導入が面倒な傾向にあるのです。たとえばPythonを正しくセットアップするには、WindowsのPATH環境変数に設定を追加する必要がありますし、Rubyと関連ドキュメント・ツールを簡単に導入するにはRubyInstallerのようなサードパーティ製インストーラーが必要でした。

しかし今後は、コマンドラインで「bash」と入力するだけで、すぐにRubyやPythonのスクリプト開発を始められます。Windows特有の環境構築の煩わしさに悩まされることはありません。

さらに、入門チュートリアルの多くはMac OS XやLinuxを前提として書かれているため、Windowsユーザーもそうした教材をそのまま活用できるようになります。

Linux on Windows:開発者にとって重要な理由

歴史的に、Microsoftのコマンドラインツール(正確には「コマンドプロンプト」)は、UNIX系OSのそれに比べて見劣りしていました。最大の原因は、Windowsが常にGUIやメニューによる操作を重視し、ターミナル操作を軽視してきたことです。一般ユーザーには優しい設計ですが、過去20年にわたり信頼性とセキュリティに優れたLinuxサーバーに依存してきた開発者にとっては、大きな不満の種でした。

その結果、開発者は次第にWindowsから離れていきました。開発者カンファレンスやミートアップ、テック系スタートアップのオフィスを訪れれば、使用されている端末の大半がApple製ノートPCかLinuxマシンであることに気づくはずです。しかも、一度これらのOSに慣れ、ワークフローを構築してしまった開発者がWindowsに戻る可能性は低いでしょう。

筆者自身、リバプールのデータサイエンス系スタートアップScraperWikiで夏期インターンとして働いていた際、高度にカスタマイズされたVIMエディタと、複数のLinuxユーティリティを軸としたワークフローを持つ開発者と一緒に仕事をしたことがあります。彼が快適にWindowsへ移行する姿は想像しがたいものでした。

とはいえ、Windows 10上のUbuntuは、そうした開発者をMicrosoft陣営へ呼び戻すきっかけになるかもしれません。少なくとも、Windowsプラットフォームからの開発者流出に歯止めをかける効果は期待できそうです。

同時に、これはオープンソースコミュニティに対するMicrosoftのイメージ回復にも大きく寄与します。1990年代後半から2000年代初頭、MicrosoftはオープンソースやLinuxに公然と敵対的でした。当時のCEO Steve Ballmer氏はLinuxを「癌」と呼び、「Embrace, extend, extinguish(抱き込み、拡張、駆逐)」戦略で競合を潰そうともしました。

しかしSatya Nadella氏がCEOに就任して以降、Microsoftはオープンソースコミュニティとの協調路線へ大きく舵を切り、イメージの立て直しに注力してきました。そしてそれは、成功しているように見えます。

Windows 10でBASHを入手する方法

執筆時点では、BASHは発表された段階であり、まだ実際に入手することはできません。ただし、同年夏に配信予定の「Windows 10 Anniversary Update(周年アップデート)」に含まれる予定です。Windows 10が7月29日に発売されたことを考えると、その時期までに提供されると見込まれます。

待ちきれない場合は、Windows Insider Programに参加すれば先行して試すことが可能です。

Windows 10へのBASH搭載を楽しみにしていますか? この機能があればLinuxから乗り換えますか? ぜひコメント欄で教えてください。


  1. Windows 10のコマンドプロンプトでディレクトリを変更する方法|cdコマンドの使い方を徹底解説

    コマンドプロンプト(Command Prompt)は、Windowsに搭載された非常に便利なユーティリティの一つです。さまざまなコマンドを実行したり、エラーのトラブルシューティングを行ったりできるため、Microsoftユーザーコミュニティでは「CMD」という名称で広く親しまれています。テキストベースのユーザーインターフェースを通じて、高度な管理操作も実行可能です。本記事では、コマンドプロンプト(CMD)でディレクトリを変更する手順を、初心者にもわかりやすくステップごとに解説します。 CMDを使えば、複数のウィンドウを行き来することなく、直接ディレクトリを操作できます。その鍵となるのが「cd」

  2. Windows 10で管理者としてコマンドプロンプトを開く5つの方法

    Windowsのコマンドプロンプト(cmd.exeまたはcmdとも呼ばれます)は、ウィンドウにコマンドを入力することでプログラムの実行、設定の変更、ファイルへのアクセスができるアプリケーションです。GUIアプリの代わりにコマンドラインを使用する必要がある場面は多く、その多くのコマンドを実行するには管理者権限が必要となります。この記事では、Windows 10で管理者としてコマンドプロンプトを開くための、簡単かつ迅速な5つの方法を詳しく解説します。 Windowsコマンドプロンプトとは コマンドプロンプトは、入力されたコマンドを実行するための最も強力なツールの一つです。Microsoftによっ