Latest evidence-based health information
Apps

Windows 10のUbuntuベースのBashシェルは実際にはどのように動作するのか

Windows 10のUbuntuベースのBashシェルは実際にはどのように動作するのか
Windows 10のUbuntuベースのBashシェルは実際にはどのように動作するのか

LinuxのBashシェルがWindowsに登場します。これは、MicrosoftとUbuntuの開発元Canonicalの協力によるものです。Windows 10のスタートメニューに「bash」と入力するだけで、完全なLinuxコマンドライン環境がすぐに利用できます。

多くの開発者は、Windowsでは動作しないことが多い様々なユーティリティにアクセスできるLinux、さらにはBashシェルを搭載したMac OS Xを好みます。WindowsにBashシェルを追加することは、MicrosoftがLinux開発者にとってWindowsの魅力を高めようとしているもう一つの方法です。MicrosoftのAzureクラウドホスティングサービスもLinuxサーバーを実行できることをご存じでしょうか。

仮想マシンやコンテナではない

これまでもWindowsでBashを使うことはできましたが、重い仮想マシンを使うか、どこかのリモートサーバーで実行されているBashセッションにリモートアクセスする必要がありました。また、Windows用に再コンパイルされた様々なLinuxツールを搭載した、ハック的なソリューションであるCygwinも存在します。多くの人が、Windows 10の噂されていたLinux互換性はこのようなものだと考えていました。しかし、それは間違いでした。Windows 10はもっと素晴らしいのです。

このソリューションはWindowsストアで入手可能なアプリとなり、デスクトップ上のプログラムとしてユーザー空間で実行される完全なUbuntuイメージを提供します。Linux用にコンパイルされたプログラムは、Windows用に再コンパイルすることなくそのまま実行できます。Ubuntuのapt-getコマンドを使ってプログラムをダウンロード・インストールするだけで、すぐに動作します。開発者はBashスクリプトを作成し、Windows上で実行できます。報告によると、Ubuntu Linuxで同じユーティリティをネイティブに実行するのと同等の速度だそうです。

これはすべて、1月にWindows 10ビルド14251にひっそりと追加された新しいサブシステムのおかげです。lxcore.sysとlxss.sysファイルは、新しい「Windows Subsystem for Linux(WSL)」を形成します。

Canonicalのダスティン・カークランド氏はこの技術に感銘を受け、次のように説明しています。「Microsoftの優秀な開発者チームは、Microsoftの研究技術を応用し、LinuxのシステムコールをWindows OSのシステムコールにリアルタイムで変換する技術を開発しました。Linuxマニアの方々にとっては、これはいわば『wine』の逆、つまりWindowsでネイティブに動作するUbuntuバイナリのようなものだと思っていただければと思います。」 

Windows 10 上の Ubuntu で Apt-get を実行します。 ダスティン・カークランド

Apt-get は Ubuntu と同じように動作し、同じソフトウェア パッケージにアクセスできます。

これは開発者ツールセットであり、完全なLinuxシステムではない。

Microsoftのソリューションは驚くほど優れています。Linuxと全く同じユーティリティがWindowsシステム上で直接実行できます。Bashはサンドボックス化されていますが、シェル経由でファイルシステムにアクセスし、コンピューター上のファイルやフォルダを操作できます。LinuxユーティリティとWindowsプログラムの両方が同じファイルセットにアクセスできます。

しかし、いくつかの制限があります。リリース時点ではベータ版の技術であり、すぐに全てが正常に動作するとは限りません。 

Microsoftは、「これは、あらゆるシナリオとプラットフォーム向けのコードの作成とビルドを支援する開発者ツールセットです」と述べています。これは完全なUbuntu仮想マシンではありません。Linuxのようにサーバーをホストすることはできません。必要な場合は、MicrosoftのHyper-Vテクノロジー、VirtualBox、VMware、または同様のツールを使って、いつでも仮想マシンにLinuxをインストールできます。

グラフィカルなLinuxデスクトップも期待しないでください。「私たちもコマンドラインのみに取り組んでいます」と、MicrosoftのRuss Alexander氏はビデオで述べています。「これは開発者のためのものです。」

最後に、これらのBashツールはWindowsツールと直接連携できません。PowerShellからBashコマンドを実行したり、Bash内からWindowsコマンドを実行したりすることはできません。つまり、残念ながらBashスクリプトを使ってWindowsコマンドを自動化することはできません。BashコマンドラインツールはWindowsと同じファイルにアクセスできますが、それだけです。

Windows 10 上のファイルにアクセスする Bash。 マイクロソフト

Bash コマンドは、通常の Windows ファイル システムと対話できます。

入手方法は次のとおりです

この機能はまだリリースされていませんが、近々リリースされる予定です。今年の夏にリリースされるWindows 10 Anniversary Updateの安定版に搭載される予定です。それまでは、Windows 10の最新の不安定版「Redstone」を入手するには、Insider Previewトラックに登録する必要があります。

Ubuntu 14.04 LTS ベースの Bash アプリケーションはまもなく Windows ストアに追加され、続いて Ubuntu 16.04 LTS が 4 月 21 日にリリースされると、Ubuntu 16.04 LTS ベースのアプリケーションも追加されます。

もっと詳しく知りたいですか?現在、多くの情報が公開されています。Microsoftの発表では基本的な内容が網羅されており、同社のScott Hanselman氏が背景情報を解説しています。CanonicalのDustin Kirkland氏は、Linuxに精通した読者向けに解説しています。また、Hanselman氏、Kirkland氏、そしてこのプロジェクトに携わった他のメンバーを紹介する、30分間の有益なビデオもご覧いただけます。

Otpoo

Health writer and researcher with expertise in evidence-based medicine and healthcare information.