Windows 10では、WSL(Windows Subsystem for Linux)という仕組みにより、Linux環境を構築できます。カーネルインターフェースとユーティリティで構成されるLinuxエミュレータであるWSLについて、その仕組みと構成、UbuntuによるLinux仮想環境の構築方法、WSLのメリットについて説明します。

チャレンジ&ナレッジ最終更新日: 20190927

WSLでWindows 10にLinux仮想環境を構築

  • このエントリーをはてなブックマークに追加

Windows 10では、WSL(Windows Subsystem for Linux)という仕組みにより、Linux環境を構築できます。Microsoftは今後リリース予定のWindows 10アップデートで、完全なLinuxカーネルをコンポーネントとして搭載することを明らかにしていますが、現状のWSLはカーネルインターフェースとユーティリティで構成されるLinuxエミュレータです。 そんなWSLについて、その仕組みと構成、および現時点でのUbuntuによるLinux仮想環境の構築方法、WSLのメリットについて説明します。

WSL(Windows Subsystem for Linux)の仕組み

WSLを扱う前に、まず簡単にWSLについて説明します。専門的な話なので、WSLの使い方のみを知りたい方は、この章を飛ばして次の章から見ていただいて構いません。

WSLとは

下図に示すように、WSLはWindows OS上でLinuxの実行環境を実現するサブシステムです。Linuxのプログラムからのシステムコール(APIやファイルアクセス要求など)をWindows APIに変換して、Linuxのバイナリ・プログラムを実行します。

従来、PCにLinuxを実装すると、そのPCはLinux専用マシンになってしまい、Linux環境で作業をしながらWindows環境を利用したい場合は、別のPCが必要でした。WSLでは1台のPCでLinux環境とWindows環境を共有することができます。

Windows管理下でLinux環境を提供するWSL
Windows管理下でLinux環境を提供するWSL

WSLの仕組み

WSLは、「Picoプロセス」と呼ばれる実行環境の中でLinux環境を提供していますが、その処理の流れを以下の構成図をもとに説明します。

Linuxアプリを実行するには、まずLinux環境を立ち上げる必要があります。ユーザーモードのWindows環境側のWin32プロセスにおいて、アプリケーションである「bash.exe」は「LX Session manager service」に対し、起動依頼をかけます。

LX Session manager service は、Linuxのバイナリ・プログラム(/bin/bash)の起動方法を提供するもので、カーネルモードにある「LXCore / LXSS」を呼び出します。

LXCore / LXSSはLinuxのカーネル機能を提供するもので、これによりPicoプロセスが生成されます。Picoプロセスでは通常のLinuxと同様に、initプロセスによって/bin/bash が起動します。起動した/bin/bashはLXCore / LXSSへのシステムコールにより、Windowsカーネルの機能と併用して処理が行われます。

WSLの構成
WSLの構成

WSLを用いたLinux環境の構築

それでは、実際にWSLを利用してLinux環境を立ち上げてみましょう。

WSLの有効化

WSLを利用するには、まずWSL機能を有効にする必要があります。コントロールパネル→プログラム→プログラムと機能の画面右側にある「Windowsの機能の有効化または無効化」をクリックしてダイアログを開き、「Windows Subsystem for Linux」にチェックを入れます。「OK」を実行し、再起動することでWSLが有効となります。

「Windows Subsystem for Linux」にチェックをいれて有効化
「Windows Subsystem for Linux」にチェックをいれて有効化

Ubuntuのインストール

Microsoftは、今後リリース予定のWindows 10アップデートで、完全なLinuxカーネルをコンポーネントとして搭載することを発表しているので、それ以降、この作業は不要になりますが、現時点では何らかのLinuxディストリビューションをインストールする必要があります。

Microsoft Storeで「WSL」を検索し、表示される「WindowsでLinuxを実行する」をクリックすると、Linuxディストリビューションの一覧が表示されます。このうち該当するもの(今回はUbuntuを選びます)をクリックし、次の購入画面で「入手」をクリックするとUbuntuがインストールされます。

ちなみに、インストールされたUbuntuのルートディレクトリは、下記となります。

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

WSL

Microsoft StoreからUbuntuをインストール
Microsoft StoreからUbuntuをインストール

Ubuntuを起動

インストールしたUbuntu の起動は、スタートメニューにて「Ubuntu」を検索し、表示されたディストリビューション名(Ubuntu)をクリックする方法が簡単ですが、コマンドプロンプトからの実行が一般的です。

Ubuntu

WSLを使って何ができるか

WSLを利用するメリット

一般的に、企業ではPCとしてWindowsマシンが多く支給されています。これは、長年ExcelやWordといったOffice製品がドキュメント作成のベースとなっており、Office製品で作成された資産が多く存在するためです。

そのため、開発やデザインといった作業をLinux環境で行いながら、付随する仕様書などのドキュメント類はWindows環境で管理する、というケースが一般的となり、それぞれの環境に対応した複数のPCが必要となっています。また、PCが複数必要ということは、データの共有に別途サーバやネットワークが必要となります。

WSLの大きなメリットは、こういった複数のPCで構成されていた環境を、1台のPCで実現できるところです。WSL側からもWindows側からも、それぞれのファイルやフォルダにアクセスできるため、LinuxのコマンドでWindows側のファイルを処理したり、Linuxで処理した結果をExcelやWordで読み込んだりすることも可能となります。

WindowsのエクスプローラでLinuxのファイルやフォルダにアクセスできるWindowsのエクスプローラでLinuxのファイルやフォルダにアクセスできる

開発環境としてのメリット

Linuxでは、各種アセンブリ言語からC、C++、Ada、Java、Fortran、Perl、Python、Ruby、PHPといった多くの言語環境がサポートされており、それに付随して膨大なライブラリなどのミドルウェアが無償で提供されています。また昨今のIoT分野では、機器の大半に組み込み系のLinuxが採用されています。

このLinux開発環境をWSLで実現し、ドキュメント処理をWindows側で行えば、作業効率を大幅に向上させることができます。

WSLに対応したコードエディタ「VSCode Remote WSL」WSLに対応したコードエディタ「VSCode Remote WSL」

WSLで手軽にLinuxのCUI環境を利用できる

Linux環境を立ち上げるにはWSLや仮想化などの方法があります。仮想化の場合は別のOSをインストールすることになるので、ホストに影響を与えにくい分離した環境ができるのがメリットですが、マシンのスペックに余裕がないとリソースやパフォーマンスに不安が残ります。WSLはその点、セキュリティ面で仮想化に劣りますが、手軽にLinuxのCUI環境が利用できるのがメリットです。

WSLの機能は、特別な用途に限らず、コマンド操作の練習も含めてLinuxを手軽に触ってみるうえで便利なので、興味のある方はぜひ試してみてはいかがでしょうか。

ライタープロフィール パソコン工房NEXMAG
[ネクスマグ] 編集部

パソコンでできるこんなことやあんなこと、便利な使い方など、様々なパソコン活用方法が「わかる!」「みつかる!」記事を書いています。

記事を
シェア