スタイル・エッジLABO技術ブログ

士業集客支援/コンサルティングのスタイル・エッジグループ スタイル・エッジLABOのエンジニアによるブログです。

WSL2について

はじめに

こんにちは!スタイル・エッジLABOのNTです。
今年の4月に入社し、早くも2021年が終わろうとしています。
入社してからの毎日は学びの日々でした!
社会人としてエンジニアとして成長を実感しています。

私は入社してから半年間、士業を支援するプロダクトの開発・保守の業務に携わりました。
プロジェクト配属直後、開発に必要なLinux環境を構築しました。
今回は、その際に使用したWSL 2について紹介したいと思います!

f:id:styleedge_tech:20211222212831j:plain

WSL 2とは

まず先ほど登場したWSL 2についてです。
正式名称はWindows Subsystem for Linux 2です。
こちらは一言で説明すると「Windows10上でLinuxを動かすことができる仕組み」です。
WSL 1の後継であり、両者には違いがいくつか存在します。

WSL 1とWSL 2の違い

それでは、WSL 1とWSL 2の違いについて3つほど紹介します!

・完全なLinux

WSL 1ではWindows上で完全にLinuxが動作しているわけではありません。
LxCore.sys/Lxss.sysと呼ばれるNTカーネルドライバがLinuxシステムのコールを受け取り、
Windowsシステムコールへと変換しています。
WSL 1は、LinuxWindowsの間に立ち「翻訳」する役割を果たしています。
しかし、この「翻訳」が完全でなかったため一部ソフトウェアが動作しないこともありました。

WSL 1の後継であるWSL 2では、Hyper-Vを利用しLinuxカーネルそのものを動作させることができます。
Hyper-Vは一台のコンピューター上で複数の仮想マシンを稼働させ、
それぞれ別のオペレーティングシステム(OS)を起動することができます。
Hyper-Vを用いて仮想化することで、WindowsカーネルLinuxカーネルを切り離すことが可能となり
Windows上でLinuxを動作させることができるのです。
バイキングで例えるなら、大皿(Hyper-V)の上にお寿司(Windowsカーネル)とカレー(Linuxカーネル)を
一緒によそう欲張りな状態です!

参考:「WSL 2」が正式リリース! ~「WSL 1」とのメリットは? 「Windows Terminal」にも注目 - 窓の杜
  :完全なLinuxがWindows 10上で稼働する? 「WSL 2」とは:Windows 10 The Latest - @IT

f:id:styleedge_tech:20211220184006p:plain

・ファイルアクセス速度

WSL 1では、ファイルアクセス速度が遅いとされていましたが、
WSL 2では改善されファイルI/Oパフォーマンスが向上しています。
実際どの程度高速になるかは、実行しているファイルシステムやアプリによって変わります。
Microsoftのドキュメントには「git clone、npm install、および cmake を使用する場合は、
約 2 倍から 5 倍速くなります。 」と記載されており、かなり速くなっています!

参考:WSL 1 と WSL 2 の比較 | Microsoft Docs

IPアドレスが異なる

WSL 1は、Windowsカーネルを利用しているため、Windows 10と同じIPアドレスを使用します。
WSL 2では、仮想化によってWindows上にWindowsカーネルLinuxカーネルが存在するため
ホストであるWindows 10のIPアドレスを使用することができません。
そのため、Windows 10とは別のIPアドレスを使用します。
WSL 2は、IPアドレスの割り当てをWindows 10の起動時に行い、必ずしもIPアドレスが一定ではありません。
環境構築で詰まりやすい点でもあるため注意が必要です。

参考:前バージョンから大幅に性能向上した新Linux環境「WSL 2」の実力を探る:Windows 10 The Latest - @IT

最後に

今回私が普段使用しているWSL 2について紹介しました。
Windows上で本物のLinuxを手軽に動かすことができるという最大の利点が伝わりましたら幸いです。
また、WSL 2は環境構築が比較的優しいため、初めてLinux環境を作る際にもおススメいたします!

私がプロジェクトに配属された際に、
代表から「スタイル・エッジLABOでは、WSL2以外で環境構築をしている社員が多いため、
新しくWSL 2を使用した環境構築手順を確立してほしい」と頼まれました。
ここから既存の技術や考えに捉われず、新しい技術を積極的に取り入れる風土があると感じています。
エンジニアとして成長することができるそんな環境に身を置いてみませんか?

☆スタイル・エッジLABOでは、一緒に働く仲間を募集しています☆
もし興味を持っていただけましたら、採用サイト↓も覗いてみてください!

recruit.styleedge-labo.co.jp