「WindowsでLinuxを動かす」——WSL(Windows Subsystem for Linux)の初代は「なんちゃってLinux」だった。でもWSL2は本物だ。本物のLinuxカーネルがHyper-V上の軽量VMで動いてる。DockerもNode.jsもPythonも、ほぼネイティブ速度。
僕は開発マシンをWindowsにした理由の8割がWSL2。MacのHomebrewと違って、WSL2は本物のUbuntu(や他のディストロ)だから、`apt install`で何でも入る。本番のLinuxサーバーと同じ環境を手元に再現できる。
WSL2の神ポイント:
- ファイルI/Oが劇的改善 — WSL1はWindowsファイルシステムにアクセスするとクソ遅かった。WSL2はext4の仮想ディスクだから爆速。ただしWindows側のファイルにアクセスするときは今も遅いから、プロジェクトファイルはLinux側に置くべし。
- GPUアクセス — CUDAがWSL2から直接叩ける。Windowsで機械学習。AI開発者にとってはMacよりWindows。
- systemd対応 — サービス管理が普通にできるようになった。`systemctl start docker`が動く。
- GUIアプリ対応 — LinuxのGUIアプリがWindows上でウィンドウ表示される。IntelliJをLinux版で使える。
- VS Code連携 — `code .` でWSL内のファイルをWindowsのVS Codeで開ける。シームレスすぎて感動する。
僕の定番セットアップ。WSL2にUbuntu 24.04を入れて、`docker-ce`、`nvm`(Node.js)、`pyenv`(Python)、`rustup`(Rust)。開発は全部WSL2の中。ブラウザだけWindows側。このハイブリッドが最強。
注意点。メモリをめっちゃ食う。WSL2はデフォルトでメモリの50%か最大8GBを使う。`.wslconfig`で制限しよう。あとHyper-Vとの相性問題でVPNが繋がらなくなることがある。これはネットワークモードを「ミラーモード」に変えると治る。
参考:WSL公式ドキュメント