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

Windows 10にLinuxコマンドラインが完全搭載――UbuntuベースのBASH環境がついに実現

Windows 10にLinuxコマンドラインが完全搭載――UbuntuベースのBASH環境がついに実現

公開日:2016年3月31日 12:30 PM EDT
著者:マシュー・ヒューズ(Matthew Hughes)/イングランド・リバプール出身のソフトウェア開発者兼ライター。濃いブラックコーヒーを片手に過ごすことが多く、MacBook Proとカメラをこよなく愛している。ブログは https://www.matthewhughes.co.uk 、Twitterは @matthewhughes。

マイクロソフトは先ごろ、年次開発者カンファレンス「Build」を開催しました。決してありふれたイベントではありません。人工知能(AI)や拡張現実(AR)における目覚ましい進歩を披露し、Windows 10が強力なゲーミングプラットフォームであることを改めて証明しました。しかし、それ以外にももう一つ、多くの人を興奮させている発表があったのです。

サンフランシスコのステージ上で、開発担当ディレクターのケビン・ガロ氏は、BASHシェルがWindows 10に搭載されると発表しました。正確には、「ある意味で」ですが。

そのままのUbuntuがやってくる

「BASHがWindows 10に搭載される」と言うだけでは、この状況を大幅に過小評価することになります。マイクロソフトが取り組んできたのは、それよりはるかに印象的なものだからです。その実体は、Ubuntu 14.04 LTSをベースとしたLinuxサブシステムであり、仮想マシンではありません。これにより、Ubuntuのユーザースペースへアクセスできるようになります。

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

Linuxのシステムコール(「syscall」とも呼ばれ、プログラムがOSカーネルに何かを要求する仕組み)は、マイクロソフトが独自に開発したソフトウェアによって、リアルタイムでWindowsのシステムコールへと変換されます。この違いについては、移植作業を支援したCanonicalのエンジニア、ダスティン・カークランド氏の説明が分かりやすいでしょう。

つまり、移植されているのはBASHと基本的なLinuxユーティリティだけではありません。ほぼすべてが動作します。

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

カークランド氏によれば、TTYを使用する一部のアプリケーション(byobu、screen、tmuxなど)を除けば、ほとんどのものは問題なく動作するとのことです。同氏は対応が着々と進んでいることを保証しており、マイクロソフトがBuild 2016の基調講演でこれを前面に押し出したことを考えれば、最終的には完成度の高い洗練された製品になると期待してよいでしょう。

一般ユーザーにとってのメリットとは?

正直に言えば、この発表に最も喜ぶのは、Linux愛好家とソフトウェア開発者の2グループです。どちらでもない方は「自分に関係あるのか」と思うかもしれません。しかし、ガジェット好きでなくても十分に喜ぶべき理由があるのです。

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

第二に、プログラミングを初めて学ぶ人にとっても大きな利点があります。習得が容易な言語(だからこそ初心者に人気のある言語)ほど、Windowsへの導入が厄介だったりするものです。たとえばPythonを正しくセットアップするには、WindowsのPATH環境変数を手動で追加する必要があります。Rubyと関連ドキュメントやツール群を簡単にインストールしたいなら、RubyInstallerのようなサードパーティ製インストーラーに頼らざるを得ません。

Windows 10にLinuxコマンドラインが完全搭載――UbuntuベースのBASH環境がついに実現

しかしこれからは、コマンドラインに「bash」と打ち込むだけで、Windows特有の面倒な環境構築を気にせず、すぐにRubyやPythonのスクリプトを書き始めることができるのです。

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

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

歴史的に見て、マイクロソフトのコマンドラインツール(失礼、「コマンドプロンプト」というべきでした)は、UNIX系OSのものに比べて見劣りしていました。最大の理由は、Windowsが常にターミナルではなく、グラフィカルインターフェースとメニューによる操作を重視してきたためです。一般ユーザーには好都合ですが、開発者にとってはそうではありません。過去20年間、開発者はより信頼性とセキュリティに優れたLinuxベースのサーバーへの依存を深めてきました。

その結果、開発者は次第にWindowsから離れていきました。どんな開発者向けカンファレンスやミートアップに行っても、あるいはテックスタートアップのオフィスを訪れても、使用されているデバイスの大多数がAppleのノートPCか、Linuxを走らせるマシンであることはほぼ間違いないでしょう。しかも、一度これらのOSの使い方を覚え、ワークフローを構築してしまえば、簡単には戻りません。

筆者がリバプールのデータサイエンススタートアップScraperWikiで夏季インターンとして働いていた際に一緒だった開発者は、細かくカスタマイズしたVIMエディターと、いくつかの定番(そして少しマニアックな)Linuxユーティリティを中心とした作業スタイルを持っていました。彼が快適にWindowsへ戻れる姿を想像するのは難しいものです。

おそらく、Windows 10上のUbuntuは、こうした開発者たちを再びマイクロソフト陣営へ引き戻すのに十分な魅力となるか、少なくともWindowsプラットフォームからの開発者流出に歯止めをかけることになるでしょう。

また、これはオープンソースコミュニティとの関係で傷ついたマイクロソフトの評判を修復する上でも大きな意味を持ちます。1990年代後半から2000年代前半、マイクロソフトはオープンソースとLinuxに対して公然と敵対的でした。当時のCEOスティーブ・バルマー氏はLinuxを「癌」と呼び、「Embrace, Extend, Extinguish(包囲し、拡張し、駆逐する)」戦略によって、Linux(および競合する一部のプロプライエタリ製品)の排除を図ろうとしていたのです。

しかし、サティア・ナデラ氏がCEOに就任して以降、マイクロソフトはオープンソースコミュニティとの協働に本格的に取り組み、この分野でのイメージ回復に努めてきました。それは功を奏しているようです。

Windows 10でBASHを入手する方法

執筆時点では、BASHは発表されたばかりで、まだ実際に入手することはできません。ただし、今年夏に配信予定の大型更新「Windows 10 Anniversary Update(記念アップデート)」の一部として提供される予定です。「Anniversary Update」であること、そしてマイクロソフトが7月29日にWindows 10を発売したことを踏まえれば、その頃までには登場すると予想されます。

それまで待てないという方は、Windows Insider Program経由で先行体験することが可能です。

Windows 10へのBASH搭載、あなたはワクワクしていますか? Linuxから乗り換えるきっかけになりますか? ぜひ下のコメント欄でお聞かせください。

  1. 意外と知られていない!Linuxで使えるおすすめTwitterクライアント5選

    Ubuntu 10.04は「最初からソーシャル対応」を掲げて登場しましたが、Gwibberを実際に試してみた人なら、少なからずがっかりしたのではないでしょうか。Facebook連携はバグだらけで、Twitter機能も概ね良好なものの、定期的に更新されなくなることがありました。 私と同じように「Gwibberのコンセプトは好きだが、もう少し安定してほしい」と感じている方も多いはず。そこで今回は、問題が改善されるまでのつなぎとして、あるいは単に新しいお気に入りアプリを見つけるために役立つ、Ubuntuで使える代替Twitterクライアントをいくつか紹介します。 なお、TweetDeckなどのA

  2. Linuxでスクリーンショットを撮る8つの方法|おすすめ定番ツールを徹底解説

    何らかの理由でデスクトップの画面を他人と共有したい場面は、誰にでもあるものです。そんなとき、どんな選択肢があるのでしょうか?本記事では、Linuxで定番となっているスクリーンショットツールを8つご紹介します。お使いのディストリビューションに含まれていない場合でも、大半はソフトウェアセンターやリポジトリから入手できます。1. ShutterShutterは古くから親しまれてきた定番ツールですが、Ubuntuの公式リポジトリから除外されて以降、やや存在感が薄れています。豊富な機能を備えていますが、多くのユーザーは、起動後にツールバーの「Selection(範囲)」「Desktop(全画面)」「Wi