【だぶりゅーえすえる】

WSL とは?

最終更新:
💡 Windows上で「本物のLinux」を動かす

Windows上でLinuxのディストリビューションを動かせる仕組み。従来の仮想マシンより手軽に、Linuxのコマンドや開発ツールをWindowsで使える。

📌 このページのポイント
WSL 2:Windows上のLinux環境 Windows WSLが管理する軽量な仮想マシン Ubuntu Debian など bash・開発ツール 複数の環境を利用 Linuxカーネル WindowsとLinuxのファイルを相互に利用
WSL 2の概念図。WSL 1はLinuxのシステムコールを変換する方式で異なる。
ひよこ ひよこ
ペンギン先生、WSLって何がうれしいの?
ペンギン先生 ペンギン先生
WindowsのままLinuxのツールやコマンドが使えることだよ。Ubuntuなどを入れれば、bash、git、Node.js、Pythonなどをそのまま動かせる。従来の仮想マシンより起動が速くて、管理の手間も少ないんだ。VS CodeのWSL拡張機能を使えば、WSL内のファイルをWindows側のVS Codeで直接編集できるよ
ひよこ ひよこ
WSL1とWSL2の違いは?
ペンギン先生 ペンギン先生
WSL 1は、LinuxのシステムコールをWindows向けに変換する層で動いていた。WSL 2は、裏で管理される軽量な仮想マシンの中で本物のLinuxカーネルを動かすんだ。Linux側のファイル操作が速く、Dockerなども動かせる。今は新しく入れるとWSL 2が既定で、Windows 10 バージョン2004以降やWindows 11なら、管理者のPowerShellで「wsl --install」を実行して再起動すれば始められるよ
ひよこ ひよこ
WSLと普通の仮想マシンは何が違うの?
ペンギン先生 ペンギン先生
WSL 2も仮想マシンを使っているけど、設定や管理はWSLが裏でやってくれるんだ。Windowsのドライブは/mnt/cのように見えて、WindowsからもLinux側のファイルにアクセスできる。メモリも使う量に応じて増えたり減ったりするよ。「Linuxの開発環境が欲しいだけ」ならWSLの方が手軽だね
ひよこ ひよこ
WSLを使うときの注意点は?
ペンギン先生 ペンギン先生
一つめはファイルの置き場所だよ。Linuxのコマンドで作業するなら、/mnt/c/ではなく~/projectsのようにLinux側に置くと速いんだ。二つめはメモリで、WSL 2の仮想マシンには既定でWindowsのメモリの50%まで割り当てられる。足りなくしたくないときは、.wslconfigのmemoryで上限を変えられるよ
ひよこ ひよこ
systemdも使えるの?
ペンギン先生 ペンギン先生
使えるよ。WSL 0.67.6以降なら、/etc/wsl.confの[boot]にsystemd=trueと書いて、wsl --shutdownで再起動すれば有効になる。wsl --installで入る現在のUbuntuでは、最初からsystemdが既定なんだ。ただしWSL 2だけの機能だよ
もっと詳しく知りたい人へ

今からWSL 1を選ぶ理由はある?

基本はWSL 2で、新しくインストールした場合の既定もWSL 2だよ。ただMicrosoftは、プロジェクトのファイルをWindows側に置く必要がある場合や、同じファイルをWindowsとLinuxの両方のツールで扱う場合は、WSL 1の方が速いとしている。シリアルポートを使う場合も候補になる。wsl -l -vで今の版を確認し、wsl --set-version でディストリビューションごとに切り替えられるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「WSL」って出てきたら「Windows上でLinuxが使える仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Windows Subsystem for Linux」 = Windows用Linuxサブシステム
💬 WindowsのSubsystem(サブシステム)としてLinuxを動かす技術だよ

参考資料

← 用語集にもどる