【WSL入門】第1回 Windows 10標準Linux環境WSLを始めようITの教室

Windows 10 Fall Creators Updateから標準搭載されているWSLは、Windows 10からLinuxを利用するための仕組み。上手に活用することで、文書処理などを格段に効率よくできる。まず、インストールから始めてみよう。

» 2019年03月18日 05時00分 公開
[塩田紳二]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

ITの教室 WSL入門」では、WSLを活用するための基礎をインストールから解説していく。



WSLとは

 Windows 10(Fall Creators Update、バージョン1709以降)で利用可能になった「Windows Subsystem for Linux」(以下WSLと略す)は、Windows 10からLinuxを利用するための仕組みだ。

 Linuxは、ほぼ通常のディストリビューションが利用でき、各ディストリビューション用のパッケージシステムがそのまま利用できる。このWSLを使うことで、Windows 10のコマンドライン環境が「劇的」に強化される。

WSLの画面(Ubuntuのbashを起動した画面) WSLの画面(Ubuntuのbashを起動した画面)
Ubuntuのシェルであるbashを起動した。このようにUbuntu上からWindows 10のフォルダやファイルも見えるので、Ubuntuのコマンドを使ったさまざまな操作も行える。

 そもそもWindows 10のコマンドライン(cmd.exe)やコンソールコマンドは、MS-DOS(Microsoft Windowsの前に使われていたOS)に由来を持つ。特にMS-DOS 2.0は当時流行していたUNIXを参考にしている。Microsoftは、かつて、上位ユーザー向けにはUNIX(ブランド名としてはXENIX)、一般ユーザー向けにMS-DOSというラインアップを計画していたこともあり、MS-DOS 2.0に階層ディレクトリなどの機能を組み込んだ。

 しかし、当時のMS-DOSは、仮想記憶もなければ実行保護もない16bitの8086/8088というCPU上で動作していたため、かなり簡略化されたコマンドしか使うことができなかった(当時の主力の外部記憶装置は320KBのフロッピーディスクや、数MBのHDDである)。このため、MS-DOSは、「UNIXもどき」などと言われたこともある。そして、その「もどき」以来、大きく機能が変わらないコマンドが大半を占める。

 こうしたコマンドライン環境に対して、Microsoftが出した1つの解決策がPowerShellだ。PowerShellは豊富な機能を備えつつ、オブジェクト指向を採用するなど、UNIXなどから見るとかなり「とんがった」部分もあるものの、広く普及しているわけでもない。

 これに対してWSLは、さまざまな参考書なども多いUNIX実行環境をほぼ引き継いでおり、現在では、「UNIX/Linux系」と呼ばれるほどになった。いまや、Linuxはソフトウェア開発やWebサーバなどのインターネットを支えるインフラの一部であり、さまざまな書籍やインターネットサイトなどから多くの情報を得ることができる。

 WSLは、簡単にいえば、Windows OSとLinuxの「いいとこ取り」である。特に、コマンドラインでさまざまな作業をする人や、GUIよりもキーボードを打った方が早いといった人に、Linuxのパワーをもたらすものだ。

WSLの利点はその構造にあり

 その理由はWSLの構造にある。従来、Windows OSでLinuxを使おうとすれば、仮想マシン環境として導入する必要があった。しかし、仮想マシン環境は動作のためのオーバーヘッドがあり、また起動にも時間がかかる。

 CPUを仮想マシンモードという特別な状態に切り替え、Linux側はカーネルを含めOSをほぼそのまま動かしているからだ。また、形式的には仮想マシンは、別のPCと同じで、ネットワークなどを介さないとホストOS側のアプリケーションとはデータの交換ができない。

 そのため、どちらかというと起動したらずっとLinuxの中で作業を行い続ける使い方に向いている。これに対してWSLはLinuxのプロセス起動のコストはWin32のそれとほとんど違わない。タスクマネージャーでは見ることはできないが、プロセスエクスプローラーなどを使うと、他のWin32のプロセスと同じように見える。仮想マシンとは違って、同じWindows OSの中のプロセスなので、コマンドをパイプでつなぐといった処理が可能な他、WSL内からWin32アプリケーションの起動もできる。

 WSL自体の起動負荷がわずかで、起動時間も極めて短い。ユーザーから見ればWin32のアプリケーションを起動するのとほとんど変わらない。このためコマンドラインのパイプ処理で、Win32とLinuxのプログラムをつないで実行させてもローカルアプリケーションとの違いを感じない。単純に見ると、WSLにより、本格的なUNIX/LinuxのコマンドがそのままWindows 10のコマンドラインでも利用できるように見える。

WSLを利用するメリットとは

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。