LinuxとWindowsの両方で、オープンソースプログラム(つまり、誰でもアクセスできるコード)が数多く存在します。そうでないプログラムやツールの場合、WSL(Windows Subsystem for Linux)はWindowsコンピューターでLinuxプログラムを使用するための理想的なソリューションです。つまり、最初にLinuxを起動する必要がなく、現在アクティブなWindowsでLinuxプログラムを使用できます。
WSLのプログラムはネイティブLinuxよりも動作が遅くなりますが、必ずしも顕著に現れるわけではありません。MicrosoftはLinuxカーネルに組み込むための改良にも引き続き取り組んでいます。そのため、新しいカーネルはWSLの速度を向上させる可能性があります。
WSLカーネルと仮想化
WSL 2では、Linuxカーネルは、Linux版のKVM/Qemuに似たハイパーバイザー(Hyper-V)上で実行されます。カーネルは、ゲストシステムとホストシステム間の通信を確保するための機能を提供します。これは、例えばメインメモリの共有やCPU管理などに関係します。これらのプログラムコードは主にMicrosoftから提供されています。
Linuxユーザーにとって、新しいカーネルは新しいハードウェアとパフォーマンスの最適化をサポートします。Microsoftはカーネル内のHyper-Vコードも定期的に最適化していますが、仮想ハードウェアは常に同じままであるため、WSLではハードウェアドライバーがほとんど役割を果たしません。ただし、ネットワークブロックデバイス(nbd)など、特定のアプリケーションに必要なドライバーはあります。nbdは、例えばVHD形式の仮想ハードディスクをマウントするために使用できます。
WSLをインストールしてバージョンを確認する
Windowsターミナルでは、PowerShell、コマンドプロンプト、WSLを便利に利用できます。Windows 11ではデフォルトで利用可能ですが、Windows 10ユーザーはMicrosoft Storeからインストールする必要があります。
Powershell では、次のコードを使用して WSL をインストールします。
wsl --install -d Ubuntu-24.04
利用可能なディストリビューションを呼び出すには、以下のコードを入力して Windows を再起動します。
wsl --list --online
ログイン後、Linuxターミナルが開き、インストールが完了すると通知が表示されます。その後、Linuxアカウントのユーザー名とパスワードの入力を求められます。以下のコマンドでUbuntuシステムをアップデートします。
sudo apt update && sudo apt upgrade
Windowsターミナルでは、タブの横にある矢印ボタンをクリックした後に表示されるメニューからLinuxを起動します。PowerShellでは、次のコマンドでWSLのバージョンを確認します。
wsl -l -v
古いインストールのバージョン列に1 が表示される場合は、次の 2 行でバージョンを更新します。
wsl --set-default-version 2wsl --set-default [Distribution]
プレースホルダー[Distribution]をディストリビューションの名前に置き換えます。
WSL 2用の新しいカーネルの作成
ステップ 1: WSL で Linux を起動し、次のコマンドで開発者パッケージをインストールします。
sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev libncurses-dev git
ステップ 2:作業ディレクトリを作成し、ソース コード (4 行) をダウンロードします。
mkdir kernelcd kernelgit clone https://github.com/microsoft/WSL2-Linux-Kernel.git --depth=1 -b linux-msft-wsl-6.6.ycd WSL2-Linux-Kernel
必要に応じてカーネル バージョンを調整します。
ステップ 3:次のコード行を使用して、カーネルに独自の名前を付けることができます。
scripts/config --file Microsoft/config-wsl --set-str LOCALVERSION "-custom-microsoft-standard-WSL2"
必要に応じて、次のコード行を使用して構成エディターを呼び出して独自のカスタマイズを行うことができます。
make menuconfig KCONFIG_CONFIG=Microsoft/config-wsl

WSLカーネルの設定:カーネル設定は「menuconfig」から編集できます。「Local version」の項目は、カーネルのバージョンを区別するのに役立ちます。
IDG
ステップ 4: 次のコマンドでカーネルを作成します。
echo 'yes' | make -j $(nproc) KCONFIG_CONFIG=Microsoft/config-wsl
次のコマンドでモジュールをインストールします。
sudo make KCONFIG_CONFIG=Microsoft/config-wsl modules_install
ステップ5: Windowsエクスプローラーのナビゲーションエリアで「Linux」の下のエントリからLinux環境を呼び出します。ホームディレクトリにあるvmlinuxファイルをWSLフォルダ(C:Users[ユーザー名]WSL)内のWindowsユーザープロファイルにコピーします。
ステップ6: Windowsでは、プロファイルフォルダに.wslconfigファイルを作成します。次の2行を入力します。
[wsl2]kernel=C:Users[username]WSLvmlinux
プレースホルダー[username]をユーザー名に置き換えます。
Powershell で、次のコマンドを実行して実行中のすべての WSL インスタンスを終了します。
wsl --shutdown
Linux 用の Windows サブシステムで Linux を起動すると、次のコマンドで新しいカーネルのバージョンが表示されます。
uname -a
この記事はもともと当社の姉妹誌 PC-WELT に掲載され、ドイツ語から翻訳およびローカライズされました。