プロナビ
連載
» 2019年10月04日 13時40分 公開

Windowsフロントライン:「Microsoft Loves Linux」から考える2020年のWindowsとLinux (1/2)

MicrosoftがLinuxに急接近している。しかも単なるポーズではなく、相当な入れ込みようだ。両者の距離感を探ってみた。

[鈴木淳也(Junya Suzuki),ITmedia]

 話は少しさかのぼるが、2019年5月に開催されたソフトウェア開発者向けの「Build 2019」カンファレンスにおいて、「WSL 2」ならびに「LinuxカーネルのWindowsとの同時提供」を発表している。

Windows 10の「20H1」で変わるLinux実行環境

 WSLとは「Windows Subsystem for Linux」のことだが、この機能はWindows上でLinuxの“サブシステム”を動作させるための“ラッパー”のようなものを構築し、Linuxアプリケーションからの要求に対してWindowsカーネルを必要なタイミングで呼び出せる仕組みを用意することで、Windows上でLinuxアプリケーションを動作させる仕組みだ。

 2016年4月に公開されたレポートにもあるように、当初はWSLを有効化させた上でLinuxディストリビューションの1つである「Ubuntu」のイメージをWindows 10上にダウンロードし、ELFバイナリを動作させる仕組みとなっていた。さすがにベータ版ということもあり、apt-getなどの仕組みが利用できるとはいえ、GUIを操作するアプリケーションを筆頭に動作しないものも多く、あくまでBashを通じて特定コマンドやシェルスクリプトを動作させる用途に過ぎなかったといえる。後にSUSE、Fedora、Debianなどの複数のディストリビューションに対応し、Windows Store上からソフトウェアのイメージをダウンロードすることでWSLとして利用可能になった。

「Windows Subsystem for Linux Installation Guide for Windows 10」より

 このように、一般ユーザーに提供されている現行のWSLの仕組みは、WSLを呼び出しつつWindows Store上から対応ディストリビューションをダウンロードして、Windows 10にインストールすることで動作する、一種の「Linux on Windows」的な体裁になっていた。

 だがBuild 2019で発表された内容は、このLinuxカーネル部分を従来のWindowsカーネルへバイパスするエミュレーション型の機構から、全く新しい軽量かつ高速カーネルに置き換えることにある。それが「WSL 2」であり、LinuxカーネルのWindowsへの同梱(どうこん)というわけだ。

 従来のWSLでは各Linuxディストリビューションを動作させるにあたり、起動プロセスに介入することでカーネル動作の一部をWindows側で制御していた。これがエミュレーション動作だが、これをWSL 2という新しいカーネルに置き換えることで、実質的にWindows上でLinuxそのものが動作するような形態となる。ここでWindows上に組み込まれるLinuxカーネルは、LTS(Long Term Support)となっている中でも最新版のバージョン4.19で、今回のWSL 2向けにMicrosoftがカスタマイズしたものとなる。

 なお、当該のWSL 2は2019年6月にWindows Insider ProgramのFast Ringユーザー向けに提供された「Build 18917」以降のビルドに組み込まれている。

 WSLではWindows APIをコールするなどの仕組み上、どうしてもファイルアクセスや特定のシステムコールで純粋なLinuxカーネルに劣る部分があり、特にファイルI/Oをともなう大量のデータ取り扱いで難を抱えていたといえる

 詳細は開発者Blogでも紹介されているが、下記のデモにあるようにELF64バイナリを含むアプリケーションの高速性を売り物にしているようだ。ただ、WSL 2自体は開発途上のバージョンであり、現在Windows 10 Insider Previewでテストされているのも2020年5月以降のリリースが見込まれる「20H1」というOSバージョンでの正式採用となる。

WSL 2でのLinuxアプリケーションの実行デモ

 当面の問題としては、Windowsカーネルへのラッパーを提供する形態から、ほぼ独立したLinuxサブシステムを構築する形態となったことで、例えば従来のWSLの特徴であった「WSLで実行されるLinuxからのWindowsファイルシステムへのシームレスなアクセス」といった特徴がなくなり、Linux内で独立したファイルシステムのツリー構造を保持している。ゆえに当面はWSLとの併用も可能で、開発者らのフィードバックを基に開発が進められていく。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう