WSL 2 についてAbout WSL 2

WSL 2 は、Windows 上の Linux 用 Windows サブシステムで ELF64 Linux バイナリを実行できるようになる新しいバージョンのアーキテクチャです。WSL 2 is a new version of the architecture that powers the Windows Subsystem for Linux to run ELF64 Linux binaries on Windows. その主な目標は、ファイル システムのパフォーマンスを向上させることと、システム コールの完全な互換性を追加することです。Its primary goals are to increase file system performance, as well as adding full system call compatibility. この新しいアーキテクチャによって、こうした Linux バイナリと、Windows やお使いのコンピューターのハードウェアとの対話方法は変わりますが、ユーザー エクスペリエンスは WSL 1 (現在幅広く利用されているバージョン) と同じです。This new architecture changes how these Linux binaries interact with Windows and your computer’s hardware, but still provides the same user experience as in WSL 1 (the current widely available version). 個々の Linux ディストリビューションは、WSL 1 ディストリビューションまたは WSL 2 ディストリビューションとして実行でき、いつでもアップグレードまたはダウングレードできます。また、WSL 1 ディストリビューションと WSL 2 ディストリビューションを並行して実行できます。Individual Linux distros can be run either as a WSL 1 distro, or as a WSL 2 distro, can be upgraded or downgraded at any time, and you can run WSL 1 and WSL 2 distros side by side. WSL 2 には、実際の Linux カーネルを使用するまったく新しいアーキテクチャが使用されています。WSL 2 uses an entirely new architecture that uses a real Linux kernel.

WSL 2 の Linux カーネルLinux kernel in WSL 2

WSL 2 の Linux カーネルは、kernel.org で入手できるソースに基づいて、最新の安定したブランチから Microsoft 内で構築されています。このカーネルは、WSL 2 用に特別に調整されています。The Linux kernel in WSL 2 is built in house from the latest stable branch, based on the source available at kernel.org. This kernel has been specially tuned for WSL 2. サイズとパフォーマンスが最適化されており、Windows 上で優れた Linux エクスペリエンスを実現できます。また、Windows の更新プログラムを介してサービスが提供されます。つまり、自分で管理することなく、最新のセキュリティ修正プログラムとカーネルの機能強化を利用できます。It has been optimized for size and performance to give an amazing Linux experience on Windows and will be serviced through Windows updates, which means you will get the latest security fixes and kernel improvements without needing to manage it yourself.

さらに、このカーネルはオープン ソースになります。Additionally this kernel will be open source. Linux カーネルの完全なソース コードについては、こちらを参照してください。You can find the full source code for the Linux kernel here. このカーネルの詳細については、構築したチームが執筆したこのブログ投稿を参照してください。If you’d like to read more about this kernel you can check out this blog post written by the team that built it.

WSL 2 アーキテクチャの概要Brief overview of the WSL 2 architecture

軽量のユーティリティ仮想マシン (VM) 内で Linux カーネルを実行するために、WSL 2 には最新かつ最高の仮想化テクノロジが使用されています。WSL 2 uses the latest and greatest in virtualization technology to run its Linux kernel inside of a lightweight utility virtual machine (VM). ただし、WSL 2 は従来の VM エクスペリエンスではありません。However, WSL 2 will NOT be a traditional VM experience. 従来の VM エクスペリエンスは起動に時間がかかり、分離され、大量のリソースが消費され、管理に時間がかかります。A traditional VM experience can be slow to boot up, is isolated, consumes lots of resources, and requires your time to manage it. WSL 2 にこのような特徴はありません。WSL 2 does not have these attributes. それでも WSL 1 には次のような利点があります。Windows と Linux 間の高度な統合、非常に高速な起動時間、小規模なリソース フットプリント、そして何よりも VM の構成や管理が不要であることです。It will still give the remarkable benefits of WSL 1: High levels of integration between Windows and Linux, extremely fast boot times, small resource footprint, and best of all will require no VM configuration or management. WSL 2 には VM が使用されますが、バックグラウンドで管理および実行されるので、WSL 1 とユーザー エクスペリエンスは同じです。While WSL 2 does use a VM, it will be managed and run behind the scenes leaving you with the same user experience as WSL 1.

ファイル IO パフォーマンスの向上Increased file IO performance

git clonenpm installapt updateapt upgrade などのファイル集中型の操作は、いずれも非常に高速になります。File intensive operations like git clone, npm install, apt update, apt upgrade, and more will all be noticeably faster. 実際どのくらい高速になるかは、実行しているアプリと、ファイル システムとの対話方法によって変わります。The actual speed increase will depend on which app you’re running and how it is interacting with the file system. 初期バージョンの WSL 2 は、zip 圧縮された tarball を展開する場合、WSL 1 と比べて最大 20 倍速く、さまざまなプロジェクトで git clonenpm install、および cmake を使用する場合、約 2 倍から 5 倍速くなります。Initial versions of WSL 2 run up to 20x faster compared to WSL 1 when unpacking a zipped tarball, and around 2-5x faster when using git clone, npm install and cmake on various projects.

システム コールの完全な互換性Full System Call Compatibility

ファイルへのアクセス、メモリの要求、プロセスの作成など、多くの機能を実行するために、Linux バイナリにはシステム コールを使用されています。Linux binaries use system calls to perform many functions such as accessing files, requesting memory, creating processes, and more. WSL 1 では WSL チームが構築した変換レイヤーが使用されていましたが、WSL 2 にはシステム コールの完全な互換性を持つ独自の Linux カーネルが含まれています。Whereas WSL 1 used a translation layer that was built by the WSL team, WSL 2 includes its own Linux kernel with full system call compatibility. これにより、Docker など、WSL 内で実行できる一連のアプリが一新されました。This introduces a whole new set of apps that you can run inside of WSL, such as Docker and more. さらに、Linux カーネルの更新プログラムがリリースされると、すぐにコンピューターに追加できます。WSL チームが変更を実装して追加するまで待つ必要はありません。Additionally, any updates to the Linux kernel can be immediately added to your computer, rather than waiting for the WSL team to implement the changes and then have them added.