ここから本文です

【WSL入門】Windows 10標準Linux環境WSLを始めよう

3/18(月) 12:45配信

@IT

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

【画像:「Windows Subsystem for Linux」(WSL)】

WSLとは

 Windows 10で利用可能になった「Windows Subsystem for Linux」(以下WSLと略す)は、Windows 10からLinuxを利用するための仕組みだ。

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

 そもそも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を利用するメリットとは

 cmd.exeではなくLinuxのシェルであるbashなどでずっと作業を続けることもできる。WSL側からは、Windows OS側の全てのファイル(もちろんWindowsがアクセスを禁止しているものを除く)やフォルダにアクセスができる。このため、LinuxのコマンドでWindows 10側のファイルを処理したり、Linuxで処理した結果をExcelやWordで読み込んだりすることが可能だ。

 例えば、Linuxには、テキストの重複行を削除してくれる「uniq」というコマンドがある。

 また、sortにも同様の機能がある。Windows OSにもsort.exeはあるが、Linuxのsortコマンドに比べると機能が貧弱だ。sort.exeは、数値の入ったテキストの並べ替えでは数値順にすることができず、1の次に10が来てしまう(数値順ではなく文字コード順になる)。しかし、Linuxのsortでは、テキスト中の数値の大小で並べ替えができ、さらに重複行も削除できる。

 sort.exeは、ソート時の比較の開始位置を文字で指定することしかできないが、Linuxのsortは、タブなどで区切られたテキストをフィールドと認識してそれを並べ替えキーとして使うことができる。機能的にはExcelの並べ替えと同等だ。

 WSLを使うと、コマンドラインでこのようなコマンドが簡単に利用できるようになる。Webページでは、実行時間などを見せることはできないが、WSL側のコマンドを実行してもそこで待たされることがない。あたかも新しいコマンドが使えるように利用できる。

1/4ページ

最終更新:3/18(月) 12:45
@IT

こんな記事も読まれています

あなたにおすすめの記事