ニュース

Microsoft、「Windows Subsystem for Linux」をオープンソースに

「MIT」ライセンス、「GitHub」で提供

「GitHub」の「Windows Subsystem for Linux」リポジトリ

 米Microsoftは5月19日(現地時間)、「Windows Subsystem for Linux」をオープンソース化したと発表した。「WSLg」や「WSL2」向けのLinuxカーネルなど一部コンポーネントはすでにオープンソース化されていたが、それ以外の一連のコンポーネントも「MIT」ライセンスで提供される。

「Windows Subsystem for Linux」とは

 「Windows Subsystem for Linux」(WSL)は、Windows上でLinuxディストリビューションを動作させる仕組み。開発者向けカンファレンス「Build 2016」で「Ubuntu on Windows」としてお披露目され、「Windows 10 Anniversary Update」に初めて搭載された。

 当初の「WSL」(WSL 1)はピコプロセスプロバイダー「lxcore.sys」をベースにしており、仮想化技術ではなく、LinuxシステムコールをWindowsカーネルがリアルタイムで変換してELF実行ファイルをネイティブ実行する仕組みだった。これは現在でもサポートされている。

 しかし、やがて軽量仮想マシンでLinuxカーネルとディストリビューションを動作させるほうが互換性の面でよいことがわかり、2019年に「WSL 2」が誕生した。この「WSL 2」ではGPUのサポート、「WSLg」によるGUIアプリの実行、「systemd」への対応なども実現された。

 その後は、より柔軟な機能追加とアップデートを行うためOSから切り離す作業が行われた。このバージョンは、2021年7月に初めてWindows 11専用のv0.47.1として「Microsoft Store」で提供され、2022年11月には「WSL 1.0.0」として最初の安定版リリースに到達。2023年9月には「WSL 2.0.0」がリリースされた。「WSL 1.0.0」ではWindows 10対応、「WSL 2.0.0」では新しいネットワーキングアーキテクチャーをはじめとする多くの新機能が導入されている。原稿の最新版は「WSL 2.5.7」。

 「Windows 11 バージョン 24H2」以降、「WSL」はOSから分離されたMicrosoft Store版が既定だ。最近ではTARベースのシンプルなWSLフォーマットの採用により、「Red Hat Enterprise Linux」「Arch Linux」「Fedora Linux」なども公式イメージを提供するようになり、ディストロ選択の幅が大きく広がった。

アーキテクチャーとオープンソース化されたコンポーネント

 現在の「WSL」は、以下のコンポーネントからなる。

  • 「WSL」と対話するためのエントリーポイントであるコマンドライン実行可能ファイル:wsl.exe、wslconfig.exe、wslg.exe
  • 「WSL」の仮想マシン(VM)やディストリビューションの起動、ファイルアクセス共有のマウントなどを行うサービス:wslservice.exe
  • 「Linux」の「init」およびデーモンプロセス、「WSL」機能を提供するためにLinuxで実行されるバイナリ
  • 「WSL」の「plan9」サーバー実装:WindowsへのLinuxファイル共有を実現

 これらのソースコードは「github.com/microsoft/WSL」にホストされており、一般の開発者でも新機能や不具合の修正を提案するといった参加が可能。他のプラットフォームへの移植も期待できるだろう。

現在の「WSL」アーキテクチャー

 ただし、以下のコンポーネントは今回のオープンソース化の対象外だ。

  • 「lxcore.sys」、「WSL 1」を駆動するカーネル側ドライバー
  • 「\wsl.localhost」ファイルシステムリダイレクト(WindowsからLinuxへ)を行う「P9rdr.sys」と「p9np.dll」