fc2ブログ
備忘録
ぱっとみは変わりません。
どちらもCドライブは/mnt/cに勝手にマウントされています。

違いをざっくりいうと、
WSLはLinuxのシステムコールをWindowsのシステムコールにいちいち変換しながら動作する。
WSL2は全てハイパーバイザで仮想化されて動作する。
です。

イメージ的には、WSLは仮想マシンよりもCygwinに近いみたいですね。
WSL2はもう完全に仮想マシンです。ただ、難しい設定なしでファイルシステムにアクセスできたりインターネットにつながったりと、Hyper-vより扱いは簡単です。

WSLはWindows上でLinuxのシェルを動かすことでLinuxのコマンドラインでの操作性をとり入れたかったように見えます。
DOSプロンプト→コマンドプロンプト→PowrShell→Bashという変遷となるでしょうか。

しかし、Linuxのシステムコールをすべて変換するのは困難だったのか、WSL2へ舵をきりました。
WSL2はただただ仮想マシンの上でLinuxが動くので、そのほかの仮想マシンと何ら変わりはありません。
ただ、最初からWindowsのファイルシステムが勝手にマウントされています。
ですので、インストールしたらすぐWindows上にあるファイルをgrepで検索したりできるわけです。
(こうなると、もうPowerShellイラネ となりますね。)

参考になるかわかりませんが、コマンド実行結果の違いを挙げてみます。
・freeコマンド
 WSL→Windowsの物理メモリや仮想メモリ量が表示される。
 WSL2→仮想マシンに割り当てられたメモリ量がLinuxの物理メモリとして表示される。

・ipコマンド
 WSL→Windowsが持っているIPアドレスが表示される。(ほかにも内部通信用なのかたくさんIPを持っている。詳細は不明。)
 WSL2→独自のIPを持っている。(NAPTされてインターネットへつながる。)

結論
grepやbashが使いたいだけなら、どっちでもいいですね。
WindowsをLinuxのCLIで動かしたいならWSL、Linuxを純粋なLinuxとして扱いたいならWSL2といったところでしょうか。
WSLについてはどの程度システムコールを変換してくれるかはマイクロソフトのやる気次第です。WSL2がメインになってくるとメンテナンスされなくなっていくのかもしれません。

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://3pypromo.blog.fc2.com/tb.php/370-16b46598
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック