WinodwsでLinuxが動く、Bash on Windows

現在の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からファイルを操作することができます。
スポンサーリンク

フォローする