サブシステムWSL1とWSL2を比較します。切り替える必要がありますか?





この投稿では、「大声で考える」スタイルで、コミュニケーションの経験があるため、著者は第1バージョンと第2バージョンのWSLを比較したいと思います。



WSL1対WSL2、それは私を幸せにしました



画像


MSDN ソース



1.実際のLinuxカーネルを使用する



実際のLinuxカーネルを含めることで、ファイルシステムのIOとシステム呼び出しが増加しました。 

特別に最適化されたLinuxカーネルにより、WSL2はWSL1よりも高速であるように見えます。 アーカイブの解凍などのMicrosoftの測定よると

、一部のタスクでは、WSL2はWSL1よりも20倍高速で、使用時は約5倍高速でした。 Gitクローンとnpmインストール。ここここ でベンチマークを見て時間を過ごすことができます





2.ネイティブドッカーのサポート。



原則として、そのような機会はWSL2でのみ現れ



ました。喜びはそこで終わりました。



WSL1とWSL2は、満足しませんでした



マイクロソフトの最新のクラッチと、個人的に私を動揺させたような革新から始めましょう。

WSLの最初のバージョンは、実際のLinuxカーネルも、仮想化も使用していませんでした。WSLはWineに少し似ていましたが、完全ではありませんでした。



Linuxプログラムからの呼び出しをこのシェルに変換するために、そこでいくつかの特別なレイヤーが使用されました。

もちろん、これによりすべてが遅くなりましたが、利点もありました。



たとえば、WSL 1で実行されたすべてのプログラムがタスクマネージャに表示され、これらのタスクに優先順位を付けて、実行用の特定のカーネルを指定することができます。



画像




また、WSLの最初のバージョンのすべてのプロセスはアンチウイルスに表示され、Windowsの通常のプログラムと同様に、フォルダーへのアクセスを許可または拒否できました。



画像




WSL 2の登場により、この仮想マシンの特定のプロセスは表示されなくなり、フォルダーに保護を書き込む機能もなくなりました。WSL 2には、WindowsDefenderをバイパスするファイルシステムアクセスがあります。これが将来どのような特定の脆弱性をもたらすか-私たちは見るでしょう。しかし、WSL 2は、ディスク全体を暗号化するための攻撃ベクトルになる可能性があります。



画像




WSL 2では、ネットワーキングもわずかに変更されました。WSLの最初のバージョンでは、ネットワークスタックの実装が非常に奇妙で、Windows自体が使用するネットワークにハングアップしました。さらに、WSLリスニングポートをNetstatでチェックし、通常のWindowsファイアウォールで閉じることができました。



画像




現在、WSL 2には、WSL専用の個別のスイッチがあります。これは、個別の仮想マシンであり、まったく退屈だからです。



画像




ベンチマーク



WSLにより、WSLのコマンドをWindowsで直接使用できるようになりました。PowerShellに含まれます。

神のパワーシェルを使用して、著者は彼自身が最も頻繁に使用する彼のお気に入りのWSLプログラムを測定しました。



すべてのベンチマークは、WSL1およびWSL2にUbuntu 18.04LTSを使用しました。



ジキル



サイトの生成。ワンパス:



WSL1

画像




WSL2

画像




ご覧のとおり、Jekyllを使用してサイトを構築する場合、WSL2はWSL1よりもはるかに劣っています。1.5秒対9.6。結果はWSL1を支持します。興味深いことに、WSL1は書き込みアクセスに常にSudoを必要とし、rootなしで生成することを望んでいませんでした。



通話速度



ここでは、シェルを呼び出して1つの簡単なコマンドを実行する速度をテストします。



Measure-Command {
    [int]$i
    do {
        $i++
        wsl.exe -e 'uname'
       
    } until ($i -eq 20)
}


WSL1

画像




WSL2

画像




WSl2のロードは少し遅くなります。20回の起動の結果が取得されるため、これは完全に認識できません。



GitinitとMkdir



それでは、GitinitとMkdirを打ち負かしましょう。Mkdirを使用してフォルダーを作成し、WSLを使用してそのフォルダー内でGinitを実行します。



コード:



Measure-Command {
    [int]$i
    do {
        Set-Location "C:\Users\user\Desktop\TestFolder"
        $i++
        $Foldername = Get-Random
 
        wsl.exe ''mkdir $Foldername''
        Set-Location $Foldername
        wsl.exe ''git init''
       
    } until ($i -eq 20)
}


WSL1

画像




WSL2

画像




結果は同じです。



WSL対。他のクラッチ



では、なぜWSLを選択するのでしょうか。



WSL 2は、Windowsから直接Linuxコマンドを使用する機能を引き続き保持します。エクスプローラー文字列から直接Bashを呼び出すと便利です。



そしてもちろん、WSLは提供されたデフォルトのOS環境を使用します。人間の編集者との作業に慣れている場合は、Mingwの嫌なVimを使用する必要はありません。



WSLをバイパスする方がよいのはなぜですか。



WSL1のLibnotify、および/ proc / sys / fsは、前述のようにWSL1には完全に存在しません。最初のバージョンは、同じLinuxカーネルを使用せず、WSL2はこのわき柱を修正する必要がありました。



これらのライブラリはすべてWSL2に登場し、現在はすべてハイパーバイザーで動作しますが、問題は少なくありません。新しいファイルが作成されたとき、および古いファイルが変更されたときでも自動生成が機能しない場合があります。



NPMやその他のもののファンは、今のところ、WSLをバイパスして、Windows用に開発されたソリューションを使用できます。



WSLのクールレイハック(͡°͜ʖ͡°)



画像




それでは、WSLをインストールする唯一の理由であるVlmcsdについて説明しましょう

科学的な実験のためだけに、ライセンスされたWindowsのコピーを少し異なる方法でアクティブ化したいが、インターネットからダウンロードした奇妙なKMSアクティベーターを使用したくないですか?

Microsoftに感謝します。WSLを使用できます。ここにクイックガイドがあります。



プロジェクトGithubへのリンク、リリースへのリンク



Ubuntuにスナップ



:スナップインストール



須藤はapt更新

sudoのsnapdをaptのインストール



vlmcsdインストール:



sudoのスナップvlmcsdインストールし



使用したIP ADDRを、我々は上のWSLがハングIPアドレスをチェックして、KMSサーバーとして使用します。これがsnapstoreのプロジェクトページへのリンクです



WSLのvlmcsdとDocket



同じことは、Docker自体、またはWSLとDockerを介して行うことができます。ここにプロジェクトへのリンクがあります、私はそれをよりよく説明することはできません。



Windows側から:



これは、KMSを介してWindows 10PROをアクティブ化する方法です。



-ipk-W269N slmgr.vbs WFGWX-YVC9B-4J6C9-T83GX

slmgr.vbs -skms 192.168.88.166

slmgr.vbs -ato



このインストール方法は、ウィンドウを閉じるとすぐにWSLインスタンスが常にオフになるため、ジョークにのみ適しています。ちなみに、今のところ、すべてのWSLはジョークとGitにのみ適しています。

著者はあなたがあまり退屈していないことを望んでいます。






All Articles