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 22.04 その98 - 入力ソースとキーボートレイアウトと日本語入力のカスタマイズ
    入力ソースとキーボートレイアウトと日本語入力 「Ubuntu」ではユーザーが利用しているキーボードレイアウトや日本語入力のカスタマイズが可能です。
  • WSL その219 - WSL 2のLinux kernelをアップデートするには・Linux kernelのバージョンを調べるには
    WSL 2のLinux kernelをアップデートするには 「WSL 2」の「Linux kernel」をアップデートする方法です。
  • Ubuntu 22.04 その64 - Windows/Linux/macOSでUbuntu 22.04 LTSのライブUSBメモリーを作るには
    Ubuntu 22.04 LTSのライブUSBメモリーを作る方法 Windows/Linux/macOSでPC向け「Ubuntu 22.04 LTS」のライブUSBメモリーを作る方法を紹介します。
  • Ubuntu 22.04 その99 - 日本語入力(Mozc)の設定をカスタマイズして作業効率を上げよう
    日本語入力(Mozc)の設定をカスタマイズするには 「Ubuntu」では日本語入力に「Mozc」を採用しています。
  • Ubuntu 22.04 その120 - UbuntuのブートローダーをBoot Repairで修復するには・Ubuntuが起動しないトラブルを解決
    UbuntuのブートローダーをBoot Repairで修復するには 「Boot Repair」はOSのブートローダーに起因するOSが起動しない問題を簡単に解決してくれるアプリです。
  • Ubuntu 20.04 その74 - UbuntuとUEFIセキュアブート
    UbuntuとUEFIセキュアブート 「Ubuntu」と「UEFIセキュアブート」に関するお話です。
  • Ubuntu 22.04 LTSのインストール その5 - UEFI環境でパーティションの作成と構成 〜 ブートローダーのインストール先の選択
    UEFI環境でパーティションの作成と構成を行う UEFI環境でパーティションの作成と構成を行います。
  • Ubuntuのバージョンと開発コードの対応表
    バージョンと開発コード 「Ubuntu」には各バージョンごとに開発コードが設定されます。
  • Ubuntu 23.10 その6 - Ubuntu Desktopの開発状況
    Ubuntu Desktopの開発状況 2023年6月3日、以下で「Ubuntu Desktop」の開発状況が紹介されています。
  • Ubuntu 24.04 その2 - Snap版Ubuntu Desktop登場・耐改ざん性を高めたもっとセキュアなデスクトップOS
    Snap版Ubuntu Desktop登場か 次期LTSリリースの「Ubuntu 24.04 LTS」でSnap版「Ubuntu Desktop」がリリースされる予定です。
記事のピックアップ
オプション