情報技術の四方山話

AI、IoT、ヤマハルータ、VPN、無線LAN、Linux、クラウド、仮想サーバと情報セキュリティのよもやま話

WSL2とWSLの違いを解説します

2020-05-02 21:18:45 | Windowsの備忘録
今回は「WSL2とWSLの違いを解説します」です。
タイトルのミスタイプを修正しました。
WSL(Windows Service for Linux)はもうすぐWSL2となることがアナウンスされており、既に開発者向けプログラムでは配布が始まっています。

WSLは、Windows APIをLinux APIでラップしています。WSLの下はWindowsのAPIなので「仮想」ではなく、いわば「Windowsのアプリケーション」なのです。Linuxに合わせてその集合体をこさえています。即ち、完全に「WindowsAPIをラップ(Wrap)」して異なるOSの環境と見せているのです。そのため、Linuxカーネルの上で動いているように見えますが、Linuxカーネルは実在しません。なので、カーネル内部の機能を制御することはできないのです。典型的にはデバイスドライバ等ハードウエア依存部分を含む開発は多くの場合できません。
とはいえ、これは、これで素晴らしい環境です。私みたいに全く不満の無い方の方がほとんどだとおもいます。

一方、WSL2は完全な仮想環境です。仮想マシンをつくる、ハイパーバイザーの上でWindowsに全く依存しない形でLinuxカーネルごと起動します。これまで仮想環境をつくるために導入していたVirtualBox、VMWareが要らなくなります。完全なx64 Linuxですから、そのLinuxの上に仮想化層を載せることもできます。即ち「ただのLinux」なのです。その実行管理をWindowsがこれまでのVirtualBoxやVMWareのように提供します。

こなると、同じアーキテクチャであれば、Linuxデスクトップで開発した「バイナリプログラム」を変更なしでもってきて実行することができます。アーキテクチャが異なる場合は、その上でコンパイルし直せば実行できます。スクリプトだけではなく、バイナリ実行型のプログラムの環境が大きく広がります。

WSL2の登場は、Microsoftが純粋なLinux実行環境の提供を始めることを意味します。これまでのWindowsGUI環境で、ローカルに完全なLinuxが立ち上がります。なのでLinux上で著名なコンテナ環境のDockerさえも使えます。私の場合も、カーネル依存のミドルウエアの利用や開発であれば、WLS2を使います。



コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« WSLでPowerShellやコマンドプ... | トップ | WSLは"Windows Subsystem for... »
最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
Unknown (Unknown)
2020-10-22 22:55:58
Windows Service for Linux ではなく Windows Subsystem for Linux ですね
返信する
WSLは"Windows Subsystem for Linux"でした (谷山 亮治)
2020-11-27 03:34:50
ご指摘ありがとうございます。翌日訂正の投稿をしております。URLでリンクしましたので、よろしくご参照ください。

訂正の記事:
WSLは"Windows Subsystem for Linux"でした
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Windowsの備忘録」カテゴリの最新記事