kledgeb UbuntuやLinuxの最新情報を紹介

WSL その171 - Windows Subsystem for Linuxの新アーキテクチャー、WSL 2登場

WSL 2

「Microsoft」から「WSL 2」がアナウンスされました。


  • Announcing WSL 2

「WSL 2」は「Windows Subsystem for Linux」の新しいアーキテクチャーです。
劇的なファイルシステムパフォーマンスの向上や、システムコールの完全な互換性が確保され、「Docker」などさらに多くのLinuxアプリケーションを「WSL 2」上で動作させることができます。

WSL 2とは

開発チームが「WSL」のコミュニティーからもっと多く寄せられた要望は、ファイルシステムパフォーマンスの向上と、「WSL」のシステムコールの互換性を改善し、より多くのLinuxアプリケーションを動かせるようにして欲しいという要望です。
「WSL 2」ではこの2つの要望を実現します。

「WSL 2」は「Windows Subsystem for Linux」の新アーキテクチャーであり、「Windows」上で「ELF64 Linuxバイナリー」を動かすための仕組みです。
この新アーキテクチャーでは、Linuxバイナリーが「Windows」及びPCのハードウェアと対話する方法が変更されています。
アーキテクチャーは新しくなりますが、ユーザーから見た使い勝手は「WSL」と同じです。
また「WSL 2」の登場により、従来の「WSL」は「WSL 1」と表現されます。

WSL 1もWSL 2も利用可能

ユーザーはインストールした「Linuxディストリビューション」を「WSL 1」上でも「WSL 2」上でも動作させることができます。
ユーザーはいつでも、「WSL 1」上で動作するLinuxディストリビューションを「WSL 2」上で動作するようにアップグレードしたり、逆に「WSL 2」上で動作するLinuxディストリビューションを「WSL 1」上で動作するようにダウングレードすることが可能です。

また「WSL 1」上で動作するLinuxディストリビューションと「WSL 2」上で動作するLinuxディストリビューションを共存して利用することも可能です。

WindowsにLinux kernelを同梱

「WSL 2」は本物の「Linux kernel」を使用する全く新しいアーキテクチャーです。
「Microsoft」は「Windows」に本物の「Linux kernel」を同梱します。
本物の「Linux kernel」により、システムコールに完全な互換性が確保されます。

Linux kernel 4.19ベースのLinux kernel

「Microsoft」は2018年にすでに「Azure Sphere」で「Linux kernel」の同梱を行っていますが、「Windows」と共に「Linux kernel」を提供するのは今回が初めてです。
「Microsoft」は最新の安定ブランチから「Linux kernel」を社内でビルドし、「Windows」と共に出荷します。
「Linux kernel」のソースコードは「kernel.org」から入手したソースコードがベースとなります。
初期ビルドでは、「Linux kernel 4.19」ベースの「Linux kernel」が提供される予定です。

WSL 2向けに最適化

「Windows」に同梱される「Linux kernel」は、「WSL 2」向けに最適化された「Linux kernel」になります。
「Windows」上で素晴らしいLinux体験を実現するため、サイズやパフォーマンスを意識した最適化が施されます。

Windows Updateの対象になる

「Linux kernel」のセキュリティーアップデートや改良は、「Windows Update」を通じて入手できます。
つまりユーザーは「Linux kernel」のアップデート管理を行うことなく、最新の「Linux kernel」を入手できるということです。

オープンソース 

「Windows」に同梱される「Linux kernel」は、オープンソースで公開されます。
「WSL 2」をリリースする際「Github」上でソースコードが公開され、ユーザーは変更された内容やユーザー自身による「Linux kernel」のビルドが可能になります。

WSL 2で行われたアーキテクチャーの変更

「WSL 2」は軽量な仮想マシン(VM)ユーティリティー内部で「Linux kernel」を動作させるため、最新の仮想化技術を使用しています。

従来の仮想マシンとは性質が異なる

しかし「WSL 2」は従来の仮想マシンが持つ性質とは異なります。
仮想マシンと聞くと、起動に時間がかかり、完全に隔離された環境が存在し、PCのリソースを多く割き、仮想マシンの管理に時間が割かれるという印象を持つでしょう。

「WSL 2」にこのような性質はありません。
「WSL 2」は「WSL 1」が持つ利点を引き続き提供します。
つまり「Windows」と「Linux」間の高度な統合、非常に高速な起動時間、小さなリソース使用量、仮想マシンの設定や管理からの解放です。

「WSL 2」は仮想マシンを使用しますが、その管理や実行はバックグラウンドで行われ、ユーザーは「WSL 1」の時と同じ使い方が可能です。
「WSL 2」の動作デモでは、「Bash」の起動が2秒未満で完了します。

ファイルシステムパフォーマンスの向上

「WSL 2」は「WSL 1」よりもファイルシステムのパフォーマンスが向上しています。
以下のような操作を含むファイル操作が頻繁に行われる処理では、劇的な高速化が行われています。

  • git clone
  • npm install
  • apt update
  • apt upgrade

実際に向上するパフォーマンスの程度は、実行しているアプリ及びファイルシステムへのアクセス方法に依存します。

WSL 2の初期テスト

「WSL 2」の初期テストで「WSL 1」との比較が行われました。
zip圧縮されたtarアーカイブの展開では、20倍高速化されました。
同様に様々なプロジェクトで「git clone」や「npm install」及び「cmake」を実行した結果では、約2倍から5倍高速化した結果が得られました。

システムコールの完全な互換性

Linuxバイナリーは、ファイルへのアクセスやメモリーの要求・確保、プロセスの生成など多くの機能を実行するためにシステムコールを使用します。

WSL 1のシステムコール

「WSL 1」ではこれらシステムコールの多くを解釈する変換レイヤーを作成し、Linuxバイナリーは「Windows NT kernel」上で動作できるようになっています。
しかしすべてのシステムコールを実装することは困難な作業であり、この結果Linuxバイナリーの中には「WSL 1」上で動作しないLinuxバイナリーもありました。

WSL 2のシステムコール

しかし今や「WSL 2」は本物の「Linux kernel」を内包しています。
これにより完全なシステムコールの互換性が提供されます。
例えばLinux版の「Docker」や「FUSE」が動作するようになります。

WSL 2のリリースについて

「WSL 2」の登場がアナウンスされましたが、リリースはこれからです。

初期ビルドのリリーススケジュール

「WSL 2」の初期ビルドは、2019年6月末に「Windows Insider Program」を通じて提供される予定です。
初期リリースが行われる際、別途アナウンスが行われます。

来月まで待ちましょう。

WSL
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Linux その422 - GNOME Boxes の再構築と未来・Flatpak のみの提供やモダンな機能の実装など
    GNOME Boxes の再構築と未来 GNOME Boxes の再構築と未来が以下で紹介されています。
  • Kubuntu その117 - Kubuntu 26.04 LTS にもっと手厚いサポートを・最高の信頼性を誇る KDE 搭載ディストリビューションを目指して
    最高の信頼性を誇る KDE 搭載ディストリビューションを目指して Kubuntu 26.04 LTS に手厚いサポートが導入されました。
  • Ubuntu 26.04 その68 - Ubuntu 26.04.1 LTS がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.04.1 LTS リリース 2026年8月27日、Ubuntu 26.04.1 LTS がリリースされました。
  • Linux その421 - GNOME Shell のデザイン構想と長期的な見通し
    GNOME Shell のデザイン構想と長期的な見通し GNOME Shell のデザイン構想と長期的な見通しが、以下で紹介されています。
  • Windows その29 - Windows 向け Coreutils 登場・Coreutils のインストールやコマンドの一覧など
    Windows 向け Coreutils 登場 Windows 向け Coreutils が登場しました。
  • Linux その386 - Arch Linux の AUR パッケージで悪意あるコミットが続く・今度はソースコードの難読化か
    Arch Linux の AUR パッケージで悪意あるコミットが続く Arch Linux の AUR パッケージで悪意あるコミット(マルウェア)が続いています。
  • Ubuntu 18.04 その195 - PolicyKitにクラッシュや権限の昇格など複数の脆弱性・今すぐアップデートを
    PolicyKitの脆弱性 2018年7月16日、クラッシュや権限の昇格など複数の脆弱性に対応した「PolicyKit」がリリースされました。
  • Linux その420 - KDE Plasma で実装予定の新機能や改善・UI レイアウトの調整やリモートデスクトップの改善など
    KDE Plasma で実装予定の新機能や改善 KDE Plasma で実装予定の新機能や改善を紹介します。
記事のピックアップ
オプション