現在のWindows 10では、Windows上でLinuxを動かす、Bash on Windowsという機能が搭載されています。
本記事では、この機能の導入手順や、その仕組み、使い所について解説します。
Windows 10 Creaters Updateで検証しました。
コンテンツ
Bash on Windowsとは
Bash on Windowsとは、Windows上でLinuxのシェルであるBashを動かせるというアピールで登場しました。実際には、Windows上でbashのみならず、Linux環境が丸ごと稼働します。WindowsとLinuxが両方同時に使える環境が構築できるというわけです。
導入手順
Windows Subsystem for Linuxを追加
コントロールパネル → プログラムと機能 → Windowsの機能の有効化または無効化 より、”Windows Subsystem for Linux (Beta)” を有効にします。
開発者モードへ移行
設定 → 更新とセキュリティ → 開発者向け より、「開発者モード」へ移行します。
Ubuntuのインストール
コマンドプロンプトを開き、bash
を実行します。初回実行時には、Ubuntuのダウンロード・インストールが開始されます。Linuxでのユーザー名とパスワードが尋ねられますが、これはWindowsのものとは独立したもので、任意のものが設定できます。
利用する
インストールが完了したら、コマンドプロンプトから bash
を実行することで、Linux環境へ入ることができます。
現状では、コマンドラインインターフェースからのみLinuxが利用できます。
GUIが利用できないとはいえ、Linuxの豊富なCLIプログラムが利用できるので、おもに開発用途には便利に使えるものと思います。本番環境には適していません。
仕組み
有効化するWindows機能の名称からわかるように、Bash on Windowsは “Windows Subsystem for Linux” という仕組みで実現されています。サブシステムとは、Windowsカーネルの上に載せられた、特定の環境を実現するためのシステムです。Win32環境ですら、サブシステムとして実装されています。
Bash on Windowsでは、Linux由来の実行ファイルがそのまま利用できます。Windowsのために特別に用意された実行ファイルではありません。
仮想マシンとの違い
Windows上で別のOSを動かす場合、仮想マシンと呼ばれる仕組みを使うのが主流です。これは、パソコンのハードウェアをまるごと再現し、その中で別OSを動かすものです。Oracle Virtual BoxやVMware Workstationなどが有名です。
Bash on Windowsは仮想マシンとは異なり、ハードウェアレベルではなく、Linuxカーネルレベルでの仮想化を行ないます。LinuxのカーネルAPIをWindowsカーネルのAPIへ変換し、実行するのです。
この仕組みの利点は、仮想化する範囲が限定されるため、仕組み自体が軽量で、パフォーマンスが期待できることです。また、LinuxとWindowsの連携を取りやすいという利点もあります。
各種ファイルパス
- Linuxにおけるルート “/”
- Windowsの
C:\Users\username\AppData\Local\lxss\rootfs
Windowsからファイルを操作(作成や編集など)すると、Linuxから正常に認識されなくなります。 - Linuxにおけるホームディレクトリ “/home/username”
- Windowsの
C:\Users\username\AppData\Local\lxss\home
Windowsからファイルを操作すると、Linuxから正常に認識されなくなります。 - WindowsにおけるCドライブ
- Linuxの
/mnt/c
WindowsおよびLinuxからファイルを操作することができます。