Microsoft Windows Subsystem for Linux(WSL)とは?Windows上でLinuxバイナリを直接実行する仕組みを解説

著者:Brien Posey|公開日:2020年11月16日
WSL(Windows Subsystem for Linux)とは
Microsoft Windows Subsystem for Linux(WSL)は、Windows 10上でネイティブな64ビットLinuxバイナリ(ELF64形式)をWindowsカーネル上で直接実行できるようにする、Microsoft製コンポーネント群です。
Windows 10でWSL機能を有効化すると、Linuxのbashシェルを実行して、Windowsカーネル層の上で動作するUbuntuユーザーモードイメージをインストールできます。インストール後は、Ubuntuパッケージリポジトリから各種ソフトウェアを実行したり、grep・sed・awkといった定番のLinuxコマンドラインユーティリティを使いこなしたり、Linuxファイルシステム内を操作したり、CLIツールでスクリプトを実行したりすることが可能になります。
WSLのアーキテクチャ
WSLは、Linuxインスタンスを管理するユーザーモードのセッションマネージャーサービス、Linuxシステムコールを処理する最小限のPicoプロセス、そしてLinuxカーネルをエミュレートするPicoドライバーによって構成されています。このアーキテクチャ全体により、LinuxのシステムコールがWindowsカーネルへ渡され、そこで処理される仕組みが実現しています。
WSLはどんな人に向いているのか
WSLは主に、Windows環境で作業するLinux開発者のための機能です。例えば、GitHubなどで公開されているLinuxやオープンソースツールを日常的に利用しながらも、開発や検証用の本格的なLinuxマシンを用意するのが難しいWeb開発者が代表例として挙げられます。WSLがあれば、RubyやPythonといった主要な開発言語や定番のLinuxツールを、Windows上でそのまま活用できます。
WSL 1とWSL 2の違い
Microsoftは、WSL 1と、それより新しいWSL 2という2つのバージョンを提供しています。どちらもWindowsとLinuxの統合を実現し、軽量かつ高速な起動が特長です。また、VMwareやOracle VM VirtualBoxといったサードパーティ製ハイパーバイザーとも共存して動作します。
両者の大きな違いのひとつは、WSL 2が管理型の仮想マシン(VM)上で動作する点です。VMの管理は自動化されているため、IT担当者が仮想マシン特有の設定や運用作業を気にかける必要はありません。
もうひとつの重要な違いは、WSL 2が完全なLinuxカーネルを実行する点です。このカーネルはMicrosoftが独自に構築したもので、Windows Updateを通じて常に最新の状態に保たれます。
Microsoftは通常、WSL 2の利用を推奨しています。WSL 1よりも高いパフォーマンスを発揮し、システムコール互換性が100%であるため、Dockerなどのアプリケーションも問題なく動作するからです。ただし、プロジェクトをWindowsファイルシステム上に配置する必要がある場合や、WindowsとLinux両方のツールを使ったクロスコンパイルが求められるケースでは、引き続きWSL 1を選択することになります。
WSLに関するよくある質問(FAQ)
Q. VM上のLinuxではなく、なぜWSLを使うべきなのか?
LinuxはVM経由でもWindows上で実行できますが、WSLには2つのメリットがあります。第一に、本格的なVMと比較して、CPU・メモリ・ストレージといったリソースのオーバーヘッドが大幅に少ないこと。第二に、Windows環境とLinux環境を同時に稼働できるため、開発者は同一のファイルに対してWindowsアプリケーションとLinuxユーティリティの双方を柔軟に使い分けられることです。
Q. WSLには制限事項はあるのか?
WSLにはいくつかの制限があります。まず、すべてのLinuxアプリケーションをサポートしているわけではなく、あくまでもbashおよび主要なLinuxコマンドラインユーティリティを扱うためのツールとして設計されています。記事公開時点では、GnomeやK Desktop Environment(KDE)といったLinuxのGUI環境はサポート対象外でした(※その後のWindows 11のWSL 2ではGUIアプリの実行が可能になるなど、対応範囲は拡大しています)。また、当初はUbuntuディストリビューションのみがサポート対象でしたが、現在ではDebian、openSUSE、Kali Linuxなど複数のディストリビューションをMicrosoft Storeから導入できます。
さらに、公開当時のWSLはWindows 10専用で、Windows Serverでは利用できませんでした(※現在では新しいバージョンのWindows Serverでも利用可能です)。WSLはRedisなどの一部のLinuxサーバーアプリケーションを実行できますが、本格的なLinuxサーバーアプリケーションのホスティングを目的としたものではありません。
Q. WSLがサポートするファイルシステムは?
WSLは2つのファイルシステムを採用し、Linuxのファイル規約をサポートしつつ、Windowsファイルとの相互運用性を実現しています。ひとつは「VolFs」と呼ばれるファイルシステムで、Linuxのアクセス権限、他のファイルへのリンク、Windowsでは通常受け付けられない文字を含むファイル名、Linuxのディレクトリ構造などをサポートします。ただし、VolFs上のファイルはWindowsアプリケーションとの相互運用性を持ちません。この役割を担うのがもうひとつの「DriveFs」で、有効なWindowsファイル名の保証、Windowsセキュリティの適用、大文字小文字を区別するファイル名のサポートなどを提供します。DriveFsのディレクトリ構造により、ユーザーは同じファイルに対してWindowsツールとLinuxツールのどちらでも自由にアクセスできます。
WSLに関する関連記事
- WindowsにおけるPowerShell vs. Bash比較のポイント
- MicrosoftがLinuxとWindowsの壁を取り払った理由
- Windows Subsystem for Linux の概要
- WSLのインストール手順ガイド
- Windows版Bashが新たなLinuxベース攻撃の扉を開く可能性
IT運用・インフラ管理をもっと深く知る
- tmuxセッションでリモート接続を管理する方法(Damon Garn著)
- Microsoft Windows 10とは?(Rahul Awati著)
- Windows Terminalアプリを使うメリット徹底解説(Anthony Howell著)
- PowerShell vs. Bash:押さえておきたい主な違い(Brien Posey著)
-
Apple Musicで「ステーション」を作成する方法|iPhone・Macでの手順を解説
Apple Musicは、SpotifyやGoogle Play Musicに対抗して登場した音楽ストリーミングサービスです。3,000万曲以上の楽曲をストリーミング・ダウンロードで楽しめるほか、専門チームが手掛けた厳選プレイリストも充実しています。ラジオステーションでは豊富なミュージックビデオライブラリも視聴可能ですが、コンテンツが膨大すぎて「何を聴こうか迷ってしまう」という悩みもあるのではないでしょうか。 好きな曲、アルバム、アーティストをもとに、新しい音楽をどんどん発見できたら素敵だと思いませんか?Apple Musicの「ステーション」機能ならそれが実現できます。この記事では、その作成
-
Macで機密ファイルを安全かつ完全に削除する方法
Windowsと同様に、OS X(macOS)にも、ハードドライブ上のデータを安全に消去するためのツールが標準で搭載されています。ただし、これらのツールが有効に機能するのは従来のHDD(ハードディスクドライブ)の場合です。近年のMacに搭載されているSSD(ソリッドステートドライブ)では、データの安全な削除がはるかに複雑になるため、後述するツールの多くは期待どおりの効果を発揮できません。当サイトでは以前、ファイルの保護・暗号化に使えるAppleの「FileVault」をご紹介しました。ファイルをしっかり暗号化しておけば安心ですが、それでも機密データを完全に削除したいという場面はあります。そんな