【ローカルサーバー構築②】WSL2を触ってみる: Windows上でLinux環境を構築する

WSL(Windows Subsystem for Linux)とは?

WSL(Windows Subsystem for Linux)は、Windows 10以降のオペレーティングシステム上でLinuxバイナリ実行可能ファイルをネイティブに実行できる互換性レイヤーです。Microsoftによって開発されたこの機能は、WindowsユーザーがLinuxコマンドラインツール、アプリケーション、および環境を直接Windows上で実行できるようにすることを目的としています。これにより、開発者やシステム管理者は、WindowsとLinuxの両方のツールとアプリケーションを同じマシン上で使用することが可能になります。

WSLには主に2つのバージョンがあります:

  • WSL 1: 最初のバージョンで、Linuxカーネルをエミュレートする代わりに、LinuxシステムコールをWindowsのAPI呼び出しに変換するアプローチを採用していました。これにより、LinuxのバイナリをWindows上で実行できるようになりますが、パフォーマンスや完全なカーネルレベルの機能の面で制限がありました。
  • WSL 2: WSLの第2バージョンで、実際のLinuxカーネルを使用し、軽量な仮想マシン(VM)上で実行します。これにより、WSL 1に比べて大幅にパフォーマンスが向上し、Linuxカーネルとの互換性も高まりました。ファイルシステムのパフォーマンスが改善され、Dockerなどのコンテナ技術との統合が容易になっています。

WSLを使用することで、Windows上でLinux開発環境を簡単に構築できるため、WindowsとLinuxの両方で作業する必要があるユーザーにとって非常に便利です。これにより、Linux専用のツールやスクリプトをWindows環境内で直接使用することが可能になり、開発者の生産性が向上します。

Windows11でWSL2を使えるようにする手順

Windows11ではコマンドプロンプトにて以下コマンドを実行するだけで、ubuntuがインストールされたWSL2環境が使えるようになります。

wsl --install

このコマンドだけで、以下4つの操作が実行されています。

  • 「Linux用Windowsサブシステム(WSL)」と「仮想マシン プラットフォーム」を有効化する
  • WSL2用Linuxカーネルをダウンロード・インストールする
  • WSL2を既定のバージョンとする
  • Ubuntuディストリビューションをダウンロード・インストールする

またWindows11は最初からWindows Terminalがインストールされています。Windows10のように、改めてインストールする必要もありません。

WSL が有効であることを確認

WSL が既に有効になっていることを確認します。
これは、PowerShell で
wsl --list コマンドを実行することで行えます。
WSL が有効でない場合は、wsl --install コマンドを実行して有効にしてください。

PS C:\>  wsl --list
Linux 用 Windows サブシステム ディストリビューション:
OracleLinux_8_5 (既定)
CentOS8
docker-desktop-data
Ubuntu-22.04
docker-desktop

詳細が知りたい場合は、
wsl –list –verbose
と入力します。

PS C:\>   wsl --list --verbose
  NAME                   STATE           VERSION
* OracleLinux_8_5        Stopped         2
  CentOS8                Stopped         2
  docker-desktop-data    Stopped         2
  Ubuntu-22.04           Running         2
  docker-desktop         Stopped         2
PS C:\>

ディストリビューションの停止

現在、他の Linux ディストリビューションが起動している場合は、それらを停止する必要があります。これは、WSL コマンドを使用して行えます。例えば、現在起動している他のディストリビューションを停止するには、以下のコマンドを PowerShell で実行します。

wsl --terminate <ディストリビューション名>