「Windows×OpenSSH×WSL 2=ほぼほぼネイティブなLinux」に見えてしまう、の作り方その知識、ホントに正しい? Windowsにまつわる都市伝説(164)

前回は、Windows Subsystem for Linux(WSL)の次世代バージョン「WSL 2」によって、Windows 10 HomeでDocker Desktopが利用できるようになったことをお伝えしました。今回もWSLが関係してくる話です。それはまるで「Linuxのように見えるWindowsのリモート接続環境」が作れるという話です。

» 2020年07月15日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

WSL 2で本物のLinuxカーネルがWindowsに組み込まれる

 現在の「Windows 10」と「Windows Server」には、幾つかの有名なオープンソースソフトウェア(OSS)のコンポーネントが含まれています。Windows 10 バージョン1803/Windows Server, version 1803からは、「tar」「curl」「ssh」「sftp」「scp」が標準で組み込まれています。

 「OpenSSHクライアント」はWindows 10 バージョン1803と半期チャネル(SAC)のWindows Server, version 1803から標準搭載され、「OpenSSHサーバー」はWindows 10 バージョン1803と長期サービスチャネル(LTSC)の「Windows Server 2019」、SACのWindows Server, version 1809からオンデマンド機能としてオプションで利用可能になりました。

 Linuxバイナリ実行のためのLinuxシェル環境を提供する「Windows Subsystem for Linux(WSL)」は、Windows 10 バージョン1607(Homeエディションを除く)でβ版として搭載され、Windows 10 バージョン1709とSACのWindows Server, version 1709で正式版となりました。

 「WSL 1」とも呼ばれる初代バージョンは、LinuxバイナリからのシステムコールをWindowsカーネルがLinuxカーネルをエミュレーションして処理することで、Linuxバイナリに変更を加えることなく、Windows上で実行できるようにします。ただし、WSL 1はLinuxカーネルのシステムコールの全てに完全対応していないことが課題でした。

 最新のWindows 10 バージョン2004とWindows Server, version 2004では、エミュレーションベースの従来のWSL 1に加えて、Linuxカーネルそのものを仮想化技術を用いて実行するWSL 2が正式に利用可能になりました(画面1)。

画面1 画面1 Windows Server, version 2004のサーバにリモートデスクトップ接続クライアントとsshクライアントから接続したところ。sshクライアントの接続は完全にLinuxシェル環境へのネットワーク接続に見える

 画面1の環境は、Windows Server, version 2004の標準機能だけで実現したものです。具体的には、OpenSSHサーバーと「WSL 2」を利用しています。同様の環境は、Homeエディションを含むWindows 10 バージョン2004でも構築できます。

 WSL 2は本物のLinuxカーネルであるため、システムコールの課題は解消され、パフォーマンスも向上しています。カスタマイズすれば、LinuxのGUIデスクトップを表示させることも可能になるようです。今でもWindows側に「X Server」を入れ、WSL 2のLinuxの「X Client」に接続することで可能ですが、Linux GUIアプリのサポートは、WSLの今後のロードマップに含まれています。

 WSL 2を実現するために、WindowsにはLinuxカーネルが組み込まれて提供されます(将来的にはLinuxカーネルの更新がWindows Updateを通じて提供される予定です)。また、Windows 10 バージョン2004からはHomeエディションでもWSL 1とWSL 2が利用可能になりました。Hyper-Vに対応していないWindows 10 HomeエディションでもWSL 2を利用可能にするため、仮想化技術として「Hyper-V」の代わりに、「仮想マシンプラットフォーム」というHyper-Vのサブセット機能が提供されます。つまり、前出の画面1の環境は、Windows 10 バージョン2004のPC向けの全てのエディションで実現できます。

画面1を作成するためのレシピ

 画面1の環境が特に何かに役立つというわけではありませんが(リモートデスクトップ接続異常時の帯域外管理接続に使えるかもしれませんし、Homeエディションへのリモート接続に使えるかもしれません)、今回はWindows Server, version 2004をベースに画面1にあるOpenSSHサーバーおよびWSL 2の環境の作り方を紹介します。

 材料は以下の通りです。2つ目の要件はWSL 2のために必要です。今回は説明しませんが、「入れ子構造の仮想化」(Nested Virtualization)が有効なHyper-V仮想マシンやAzure仮想マシンの中に構築することも可能です(本稿ではHyper-V仮想マシンで作業しています)。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。