採用に向く条件
選ぶ理由
- Ubuntu など各種 Linux ディストリビューションを、ストアや wsl --install で導入して使える。
- Linux のシェル・コマンド・開発ツールを Windows から直接呼び出せる。逆に Linux から explorer.exe 等の Windows コマンドも起動できる。
- Windows 側と Linux 側でファイルをやり取りでき、双方を行き来しながら作業しやすい。
ソフトウェアの製品プロフィール
仮想化ツール / 開発者・検証担当
WSL(Windows Subsystem for Linux)は、Windows 上で Linux 環境を動かすための仕組みです。Microsoft が提供しており、Windows を使いながら、Linux のコマンドやツールをそのまま利用できます。
製品の概要
選定ガイド
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
採用に向く条件
事前に確認する条件
詳しい解説
WSL(Windows Subsystem for Linux)は、Windows 上で Linux 環境を動かすための仕組みです。Microsoft が提供しており、Windows を使いながら、Linux のコマンドやツールをそのまま利用できます。
横にスクロール
一言でいえば「Windows の中で Linux を動かす公式の仕組み」です。仮想マシンを丸ごと立ち上げる従来の方法に比べ、Windows と統合された形で手軽に Linux を扱える点が特徴です。
WSL には世代があり、仕組みが根本的に異なります。WSL 1 は、Linux のシステムコールを Windows カーネルの呼び出しへ翻訳する変換層として実装されていました。Linux カーネルを持たないため軽い一方、互換性に限界がありました。
WSL 2 は方式を変え、軽量な仮想マシン上で 本物の Linux カーネル(Microsoft がビルドして提供)を動かします。Hyper-V ベースの軽量 VM 技術を使い、起動の速さやメモリの動的割り当てで「VM らしさ」を感じさせない統合を実現しています。本物のカーネルを積むことで、Docker などシステムコール互換性を要するソフトが正しく動くようになりました。
| 観点 | WSL 1 | WSL 2 |
|---|---|---|
| 実行方式 | システムコール変換層 | 軽量 VM 上の本物の Linux カーネル |
| 互換性 | 一部のシステムコールに限界 | 高い(Docker 等も動作) |
| Linux 内のファイル I/O | 速い | さらに速い |
| Windows 領域へのアクセス | 高速 | ファイル横断は相対的に遅い |
| 主な用途 | Windows と密に往復する軽作業 | 本格的な Linux 開発・コンテナ |
WSL 2 では Linux 側ファイルシステム内(~ 配下など)のアクセスが高速な一方、/mnt/c 経由で Windows 側ファイルを跨いで読み書きすると遅くなりがちです。プロジェクトは Linux 側に置くのが性能上のコツです。
wsl --install で導入して使える。explorer.exe 等の Windows コマンドも起動できる。Windows を主に使いながら Linux の開発環境を必要とする開発者に最適です。VS Code のリモート開発と組み合わせ、Linux 側にコードを置いて編集・デバッグする使い方が定番になっています。Docker Desktop のバックエンドとしても WSL 2 が使われ、コンテナ開発の基盤になります。一方、本番そっくりの完全分離した検証や、特殊なカーネルモジュールを要する用途では、独立した仮想マシンや実機のほうが適します。
| 観点 | WSL 2 | VirtualBox / VMware |
|---|---|---|
| 位置づけ | Windows と統合された Linux | 独立した仮想マシン |
| 起動・軽さ | 速く軽い・常駐しやすい | OS 一式で相対的に重い |
| Windows との連携 | ファイル・コマンドを相互利用 | 基本は分離・共有設定が要る |
| 向く場面 | 日常の Linux ツール併用・開発 | 完全分離した検証・他 OS 全般 |
完全に分離した環境が必要な検証は仮想マシン、日常的に Linux のツールを併用したい開発は WSL、と使い分けると分かりやすいです。
近年の Windows では wsl --install で機能有効化とディストリビューション導入をまとめて行えますが、初期状態では無効なことがあります。手順は Windows のバージョンによって異なる場合があります。既定の世代(WSL 1 か 2 か)は wsl --set-default-version 2 で切り替えられます。
WSL 2 は VM ベースのため、Windows 側ファイルを跨いだ I/O は遅くなりがちです。作業ファイルは Linux 側に置きましょう。また既定ではメモリを大きく確保することがあり、.wslconfig で上限を調整できます。
総じて WSL は、Windows の使い勝手を保ったまま本格的な Linux 開発環境を手に入れられる仕組みで、特に WSL 2 以降はコンテナ開発の標準的な土台になっています。
ソフトウェアの選定ポイント
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
開発・検証・互換環境
実装方式: 2世代 / 導入コマンド: 1行 / ディストロ数: 制限なし
Linux のシェル・コマンド・開発ツールを Windows から直接呼び出せる。逆に Linux から explorer.exe 等の Windows コマンドも起動できる。
CPU・メモリ消費に注意