| Windows Subsystem for Linux | |
|---|---|
Windows 10上で動作するBash | |
| その他の名前 | WSL |
| 開発者 | マイクロソフト |
| リリース | 2016年8月 2日 (2016-08-02) |
| 安定放出 | |
| プレビュー版 | |
| オペレーティング·システム |
|
| 前任者 | Windows Services for UNIX |
| タイプ | 互換性レイヤー、仮想化 |
| ライセンス | サブシステム: MITライセンス、Linuxカーネル: GNU GPLv2(のみ)、一部は互換性のあるGPLバリアントまたはBSD、MITなどの寛容なライセンスの下で提供されています。 |
| Webサイト | learn.microsoft.com/windows/wsl |
| リポジトリ | github.com/microsoft/WSL |
Windows Subsystem for Linux ( WSL ) は、 Microsoft Windowsのコンポーネントであり、仮想マシンのオーバーヘッドを回避し、デュアルブートの代替として、 Windows 内からLinux環境を使用できるようにします。WSLコマンドライン インターフェイスツールは Windows 11 にデフォルトでインストールされますが、使用する前にディストリビューションをダウンロードしてインストールする必要があります。[ 4 ] Windows 10 では、 Windows Insiderプログラムに参加するか、Microsoft StoreまたはWingetを介して手動でWSL をインストールできます。[ 5 ]
オリジナル版の WSL 1 は、2 番目のメジャー バージョンである WSL 2 とは大きく異なります。WSL 1 (2016 年 8 月 2 日にリリース) は、Windows カーネルにLinuxシステム コールを実装することで、Linuxバイナリ実行ファイル( ELF形式) を実行するための互換性レイヤーとして機能しました。[ 6 ] WSL 2 (2019 年 5 月に発表[ 7 ] ) では、完全なLinux カーネルを実装する管理された仮想マシン ( Hyper-V経由) である、実際の Linux カーネルが導入されました。その結果、WSL 1 ではすべてのシステム コールが実装されていなかったため、WSL 2 はより多くの Linux バイナリと互換性があります。[ 8 ] 2026 年 6 月現在、WSL 1 はまだメンテナンスおよびサポートされています。[ 9 ]
Microsoft が WSL を提供する理由はいくつかあります。Microsoft は WSL を「開発者、特に Web 開発者やオープンソース プロジェクトに取り組む人向けのツール」と位置付けています。[ 10 ]また、Microsoft は「WSL は、フル仮想マシン (Windows で Linux を使用する一般的な代替手段) よりも少ないリソース (CPU、メモリ、ストレージ) しか必要としない」と主張し、同じファイルセットで Windows ツールと Linux ツールの両方を使用できるとも述べています。[ 10 ]
WSLの大部分は2025年5月19日にオープンソースソフトウェアとしてリリースされたが、 2025年9月時点では、一部のファイルシステム機能は依然としてクローズドソースの独自ライブラリに依存している。 。
Microsoft が Windows 上で Unix ライクな互換性を実現しようと最初に試みたのはMicrosoft POSIX サブシステムで、これはMKS / Interixを介してWindows Services for UNIXに取って代わられ、最終的にはWindows 8.1のリリースで廃止されました。Windows Subsystem for Linux の背後にある技術は、未公開のProject Astoriaに由来し、これにより一部のAndroidアプリケーションがWindows 10 Mobile上で実行できるようになりました。[ 11 ]これは、 Windows 10 Insider Previewビルド 14316で初めて利用可能になりました。 [ 12 ]
Microsoft の以前のプロジェクトやサードパーティのCygwin はPOSIX標準に基づいて独自のUnix ライクな環境を作成することに重点を置いていましたが、WSL はネイティブ Linux との互換性を目指しました。 [ 13 ] Cygwin のように非ネイティブ機能をWin32システムコールにラップするのではなく、WSL の初期設計 (WSL 1) では、NT カーネル エグゼクティブを活用して、Linux プログラムを、通常の NT プロセスとは異なる専用のシステムコールおよび例外ハンドラとしてカーネル モードの「ピコ プロバイダ」にアタッチされた、特別で分離された最小限のプロセス( 「ピコ プロセス」として知られる) として提供し、可能な限り既存の NT 実装を再利用することを選択しました。[ 14 ]
WSL ベータ版は、2016 年 8 月 2 日にリリースされた Windows 10 バージョン 1607 (Anniversary Update) で導入されました。[ 15 ] Ubuntu (デフォルトのシェルはBash )のみがサポートされていました。WSLベータ版は「Windows 上の Ubuntu 上の Bash」または「Windows 上の Bash」とも呼ばれていました。WSL は、2017 年 10 月 17 日にリリースされた Windows 10 バージョン 1709 (Fall Creators Update) でベータ版ではなくなりました。[ 16 ]複数の Linux ディストリビューションをインストールでき、 Windows ストアでインストール可能でした。[ 16 ]
WSL の初期設計は、以前の UNIX-on-Windows プロジェクトよりも高速で人気がありましたが、Windows カーネル エンジニアは、既存の NT カーネルを再構築してLinux の APIを正しく認識して動作させることで、WSL のパフォーマンスとシステム コールの互換性を向上させることに苦労しました。2018年の Microsoft Ignite カンファレンスで、Microsoft エンジニアは、仮想化されたカーネルがホスト上の NT プリミティブを直接使用できるコンテナ化用の新しい「軽量」Hyper-V VM テクノロジーの概要を説明しました。 [ 17 ] 2019 年に、Microsoft はこの軽量 VM テクノロジーを使用して実際の (カスタマイズされた) Linux カーネル イメージをホストする、完全に再設計された WSL アーキテクチャ (WSL 2) を発表し、完全なシステム コール互換性を提供すると主張しました。[ 8 ] Microsoft は 2019 年 5 月 6 日に WSL 2 を発表し、[ 7 ] Windows 10 バージョン 2004 に同梱されました。[ 18 ]また、Windows 10 バージョン 1903 および 1909 にもバックポートされました。[ 19 ]
Windows ビルド 20150 では、GPU アクセラレーションによる機械学習を実行するための WSL 2 の GPU サポートが導入されました。[ 20 ]グラフィカル ユーザー インターフェイス(GUI)を備えた Linux アプリケーションを実行するための WSL 2 の GUI サポートは、Windows ビルド 21364 で導入されました。 [ 21 ]どちらも Windows 11 に同梱されています。
2021 年 4 月に、Microsoft は、WSL 2 とCBL-Marinerを使用して Linux グラフィカル ユーザー インターフェイス (GUI) アプリを実行する機能も含む Windows 10 テスト ビルドをリリースしました。[ 22 ] [ 21 ] Windows Subsystem for Linux GUI (WSLg)は、 Microsoft Build 2021カンファレンスで正式にリリースされました。Windows 10 Insider ビルド 21364 以降に含まれています。[ 23 ]
2021年10月11日、マイクロソフトはWindows 11向けのWSLのバージョンをMicrosoft Storeで公開しました。 [ 24 ] 2022年11月にはWindows 10のサポートが追加され、バージョン1.0.0に達しました。[ 13 ]
2024年11月、マイクロソフトは、新規ユーザーのエクスペリエンスを向上させることを目的としたWSLの新機能を発表しました。これには、新しい「はじめに」ナビゲーションのヒントと説明を含むウィンドウが含まれます。[ 25 ]
2025年5月19日、Buildの期間中に、MicrosoftはWSL 1で使用されるドライバーとWSL 2のIFSネットワークリダイレクタードライバーを除いて、WSLの大部分がオープンソースソフトウェアとしてリリースされたことを発表した。[ 26 ] [ 13 ]

WSL の最初のリリースでは、Microsoft が開発した Linux 互換カーネル インターフェイスが提供され、Linuxカーネル コードが含まれていません。これにより、 Ubuntu [ 27 ] [ 28 ] [ 29 ] [ 30 ] openSUSE [ 31 ] SUSE Linux Enterprise Server [ 32 ] [ 33 ] [ 16 ] Fedora [ 34 ] CentOS [ 35 ] AlmaLinux [ 36 ] Debian [ 37 ] や Kali Linux [ 38 ] などの Linux ディストリビューションのユーザー スペースを実行できます。このようなユーザースペースには、GNU Bashシェルとコマンド言語、ネイティブGNUコマンドラインツール( sed 、 awkなど) 、プログラミング言語のインタプリタ( Ruby、Pythonなど) 、さらにはグラフィカルアプリケーション(ホスト側でX11サーバーを使用)が含まれる場合があります。[ 10 ]
WSL 2 [ 7 ]では、軽量仮想マシン環境で Linux カーネルを実行するアーキテクチャが再設計されました。
このwsl.exeコマンドは、コマンドラインインターフェイス(CLI) (たとえば、コマンド プロンプトまたはPowerShell 経由) を介して WSL 内の Linux ディストリビューションにアクセスして管理します。引数がない場合、デフォルトのディストリビューションシェルに入ります。利用可能なディストリビューションを一覧表示したり、デフォルトのディストリビューションを設定したり、ディストリビューションをアンインストールしたりできます。[ 39 ]また、Linux コマンドを実行することもできます[ 40 ]。lxrun.exeこれは、Windows 10 1803 以降では非推奨となっているコマンドに取って代わるものです。 [ 41 ]
Windows Subsystem for Linux GUI (WSLg) は、完全に統合されたデスクトップ エクスペリエンスで、Windows 上でグラフィカルな X11 およびWaylandアプリケーションを実行できるようにすることを目的として構築されています。 [ 42 ] WSLg は、 Microsoft Build 2021カンファレンスで正式にリリースされ、Windows 10 Insider ビルド 21364 以降に含まれています。[ 23 ]しかし、 Windows 11の導入により、WSLg はついに Windows の製品版ビルドに同梱されるようになり、WSL アプリでグラフィックとオーディオの両方がサポートされるようになりました。[ 43 ] FreeRDPは、RDP プロトコル仕様に従って、リモート デスクトップ プロトコル(RDP) サーバー (Weston 内) から RDP クライアント ( Windows 上のmsrdc [ 44 ] ) へのすべての通信をエンコードするために使用されます。[ 45 ]
WSLgを実行するための前提条件は以下のとおりです。

LXSS マネージャー サービスは、サブシステム (ドライバlxss.sysとを介して) とのやり取りlxcore.sys、Bash.exe (Linux ディストリビューションが提供するシェルと混同しないように) がプロセスを起動する方法、および実行中の Linuxシステム コールとバイナリ ロックの処理を担当するサービスです。[ 47 ]特定のユーザーによって呼び出されたすべてのプロセスは、いわゆる「Linux インスタンス」に入ります (通常、最初に呼び出されるプロセスはinitです)。すべてのアプリケーションが閉じられると、インスタンスが閉じられます。
WSL 1 の設計では、ハードウェア エミュレーション / 仮想化は採用されていません (coLinux などの他のプロジェクトとは異なり)。ホストのファイルシステム (および を介して) [ 48 ] と、相互運用性を保証するネットワークなどのハードウェアの一部を直接使用していますVolFS。DrvFSたとえば、 Webサーバーは、ホストで構成されているのと同じインターフェイスと IP アドレスを介してアクセスでき、管理者権限が必要なポート、または他のアプリケーションによって既に占有されているポートの使用に関する同じ制限を共有します。[ 49 ]シェルからsudoを使用して root として実行している場合でも、アクセス / 変更が制限されている特定の場所 (システム フォルダーなど) と構成があります。管理者権限を与え、そのようなアクセスを許可するには、「sudo」を取得するために、昇格された権限を持つインスタンスを起動する必要があります。[ 10 ]
WSL 1 では、32 ビット バイナリ[ 50 ] [ 51 ]や WSL に実装されていない特定の Linux カーネル サービスを必要とするものなど、すべての Linux ソフトウェアを実行できるわけではありません。WSL 1 には Linux がまったくないため、デバイス ドライバなどのカーネル モジュールは実行できません。ただし、WSL 2 では、ライブの仮想化された Linux カーネル インスタンスを使用します。Windows (ホスト) 環境内にX11 サーバー( VcXsrvやXmingなど) [ 52 ]をインストールすることで、一部のグラフィカル (GUI) アプリケーション ( Mozilla Firefoxなど)を実行できますが、オーディオ サポートの欠如 (ただし、これは X11 と同様の方法で Windows に PulseAudio をインストールすることで解決できます) やハードウェア アクセラレーション (結果としてグラフィック パフォーマンスが低下します) などの注意点があります。OpenCLとCUDAのサポートも、将来のリリースで予定されていますが、現在実装されていません。[ 53 ] [ 54 ] Microsoft は、WSL はアプリケーションの開発用に設計されたものであり、デスクトップ コンピュータや運用サーバー用ではないと述べ、それらの目的には仮想マシン ( Hyper-V )、Kubernetes、Azureの使用を推奨した。[ 10 ]
ベンチマークでは、WSL 1 のパフォーマンスは、ネイティブ Linux Ubuntu、Debian、Intel Clear Linux、またはその他の Linux ディストリビューションに近いことが多い。一部のテストでは、I/O がWSL のボトルネックとなっている。 [ 55 ] [ 56 ] [ 57 ]再設計された WSL 2 バックエンドは、WSL 1 と比較して特定の操作で 20 倍の速度向上を提供すると Microsoft は主張している。[ 8 ] 2020 年 6 月に、AMD Ryzen Threadripper 3970X を使用した WSL 2 (20H2) での 173 のテストを含むベンチマークでは、ネイティブ Ubuntu 20.04 LTS のパフォーマンスの平均 87% を示した。対照的に、WSL 1 のパフォーマンスはネイティブ Ubuntu の 70% に過ぎなかった。WSL 2 は I/O パフォーマンスを改善し、ネイティブに近いレベルを提供する。[ 58 ] 2020 年 5 月に Intel Core i9-10900K で 69 回のテストを比較した結果、ほぼ同じ相対的なパフォーマンスが得られました。[ 59 ] 2020 年 12 月に、AMD Ryzen 9 5900X を使用した WSL 2 (20H2) での 43 回のテストによるベンチマークでは、ネイティブ 20.04.1 LTS の平均 93% のパフォーマンスが示されましたが、WSL 1 では 73% にとどまりました。[ 60 ]

バージョン 2 では、アーキテクチャに変更が加えられています。Microsoft は、カーネルと (カーネルに基づく) ディストリビューションを実行するために、Hyper-V 機能の高度に最適化されたサブセットによる仮想化を選択し、WSL 1 と同等のパフォーマンスを約束しています。下位互換性のために、開発者は公開済みのディストリビューションを変更する必要はありません。WSL 2 の設定は、ユーザー プロファイル フォルダーにあるINI ファイルに含まれるWSL グローバル構成で調整できます。[ 61 ] [ 62 ].wslconfig
ディストリビューションのインストールは、仮想ディスク内のext4フォーマットのファイルシステム内にあり、ホストのファイルシステムは、 QEMUなどの他の仮想マシン技術と同様に、9P プロトコルを介して透過的にアクセスできます。[ 63 ] [ 64 ] Microsoft は、ユーザーに対して WSL 1 の最大 20 倍の読み書き性能を約束しました。[ 7 ] Windows からは、 UNC パスのプレフィックスを使用して Linux ゲストのファイルにアクセスするためのIFSネットワーク リダイレクタが提供されます。[ 65 ]\\wsl$
WSL 2 は、x64 システムの場合は Windows 11 [ 66 ]または Windows 10 バージョン 1903 以降 (ビルド 18362 以降)、ARM64 システムの場合はバージョン 2004 以降 (ビルド 19041 以降) を必要とします。[ 5 ]
Windows 11 上の WSL 2 は、ネイティブの Ubuntu 20.04 LTS のパフォーマンスの 95% を維持します。[ 67 ]
WSL 1 と WSL 2 はどちらも IPv6 接続をサポートしています。[ 68 ] [ 69 ] WSL 2 の IPv6 サポートには Windows 11 以降が必要です。[ 70 ]
2017年、フリーソフトウェア運動の創始者であるリチャード・ストールマンは、 GNUの機能をWindowsに統合することはフリーソフトウェアの開発を妨げると懸念を表明し、WSLのような取り組みを「自由のための運動における後退」と呼んだ。[ 71 ]
2021年、Ars Technicaに寄稿したJim Salterは、WSLを「Windows 11の最高の部分」と呼び、グラフィックとサウンドを備えたアプリケーションを実行したり、複数のディストリビューションを並行してインストールしたりできる点を指摘した。[ 72 ]
WSLは、エンドユーザーよりも開発者にとってより有用なツールとして広く説明されてきた。[ 73 ] [ 74 ] [ 75 ] [ 76 ]レビュー担当者は、Linuxと同じではないこと、ディスクI/Oの速度が遅いなど、パフォーマンス上の制限があることを指摘し、いくつかの制限を批判した。[ 73 ]
この新しいアップデートでは、WSL のグローバル構成オプションの使用を開始できる機能を追加しました。これらのオプションは、WSL エクスペリエンスをさらにカスタマイズしたいパワーユーザーを対象としています。