Windows Subsystem for Linux

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。ItSANgo (会話 | 投稿記録) による 2022年2月9日 (水) 01:33個人設定で未設定ならUTC)時点の版 (→‎Ubuntuの場合: 不要な文言「定期的に」を削除した。)であり、現在の版とは大きく異なる場合があります。

Windows Subsystem for Linux
Microsoft Windows コンポーネント
Windows 10上で実行されたBash
詳細
種別 互換レイヤー仮想化
標準提供 Windows 10, version 1709
Windows Server, version 1709
Windows 10, version 1607(ベータ版)
置換 Microsoft Windows Services for UNIX

Windows Subsystem for Linux (WSL) とは、Linuxの(ELFフォーマット形式の)バイナリ実行ファイルWindows 10およびWindows Server上でネイティブ実行するための互換レイヤーである。

WSL1

概要

マイクロソフトとカノニカルの提携により、Windows 10, version 1607 (Anniversary Update) のベータ版では、Ubuntu 14.04 (Trusty Tahr) イメージ[1]をWindows 10ユーザーのローカルマシンにダウンロードして展開し、そのイメージに含まれるツールやユーティリティーをWSL上でネイティブに実行することが可能になった[2][3][4]。WSLはマイクロソフトが開発した(Linuxカーネルのコードが含まれていない)Linux互換のカーネルインタフェースとともに、その上で動くUbuntuに由来するユーザーモードバイナリを提供する。これはBashシェルやコマンド言語、ネイティブLinuxコマンドラインツール(sedawkなど)やプログラミング言語インタプリタRubyPythonなど)[5]を含む[6]

Windowsコンピュータ上でLinuxソフトウェアに対する互換性を提供する最善の手段は完全な仮想マシンであるが、WSLではユーザーがWindowsアプリとLinuxツール(厳密にはLinuxディストリビューションの1つであるUbuntu上で動作可能なツール)を同一ファイルセット上で利用できるようにしながら、完全な仮想マシンよりも少ないリソースしか利用しない利点がある[5][7]。従って、WSLはライトな利用のために互換性を犠牲にしており、全てのLinuxソフトウェアを動かせるわけではない。WSLの提供しないLinuxカーネルサービスを必要とするものは不可能である[8]グラフィカルユーザインタフェースを使用するアプリケーションは、画面描写に関わるX Window Systemアプリケーションを、外部Xサーバ(Xming, VcXsrv Windows X Serverなど)と共に起動し、利用する必要がある[9]

WSLはWindows 10の64ビット版で[5]、Windows 10, version 1607 (Anniversary Update) と version 1703 (Creators Update) でベータ版を、version 1709 (Fall Creators Update) から正式版を利用できる。ただし Windows 10 S[10]やWindows 10 IoT Coreを除く。またWindows 10 Enterprise 2016 LTSBはリリース当時WSLがベータ版だったため未提供[11]。Windows Serverでは、Windows 10, version 1607とほぼ同時にリリースされたサーバ用OSのWindows Server 2016には搭載されていなかったが、2017年8月8日にリリースされた Insider Preview Build 16237 から利用可能になり[12][13]Windows Server, version 1709 にて正式搭載された。

WSLは、Windows 10 Mobile上でいくつかのAndroid用アプリを実行できるようにすることを目指したがリリースされることはなかったプロジェクト、Project Astoriaを発祥とする[8]

マイクロソフトはWSLを「主として開発者、特にWeb開発者やオープンソースプロジェクトを利用する開発者のためのツール」としてイメージしている[5]

Windows 10, version 1703までのベータ版においては、WSLの利用の際、Windows 10の開発者モードを有効化しなければならないという制限があった。2017年10月に公開されたWindows 10, version 1709の機能の一つとして、左記の制限が撤廃されたWSLの正式版が提供されている[14]

WSL2

2019年6月、従来のWSL1とは機構の異なるWSL2を発表し[15]、Windows 10 May 2020 Update(バージョン 2004)で正式サポートとなった。WSL1と並行してサポートされる。

WSLとの違いは以下のとおりである。

  • 本物のLinuxカーネルを使用する[16]
  • Linuxカーネルを仮想マシン上で動作させる。
  • Linux側のファイルシステムはNTFS上のディレクトリではなくディスクイメージファイルに格納する。
  • ホストとなるWindowsとは別のIPアドレスを使用する。

本物のLinuxカーネルを使用することで互換性が向上し、仮想マシンを使用することでディスクI/O性能の足かせとなっていた[17]WindowsのI/OスタックをバイパスしたことでディスクI/O性能が向上した。デメリットとして起動に数秒を要することやメモリー・フットプリントの悪化があげられる。

経緯

2016年3月30日(米国時間)に開催されたマイクロソフトのBuild 2016カンファレンスで発表された[18]

2016年4月6日にリリースされたWindows 10 Insider Preview ビルド 14316において最初に公開された[19]

2016年8月2日(日本時間8月3日)に公開されたWindows 10の半期チャンネルのアップデートである Windows 10, version 1607 (Anniversary Update) によってベータ版の提供が開始された[20]

2017年8月8日、Windows ServerのInsider Preview Build 16237からWindows Serverでも利用可能になった[12]

2017年10月17日(日本時間10月18日)に公開されたWindows 10の半期チャンネルのアップデートである Windows 10, version 1709 および Windows Server, version 1709 において正式版となった。Windows 10の開発者モードを有効にしなくても利用可能となった[21][22]

2019年5月6日(米国時間)に開催されたマイクロソフトのBuild 2019カンファレンスで仮想マシンベースの新しいWSL、WSL 2を発表[23]

2019年6月12日(日本時間6月13日)WSL 2が利用可能な最初のWindows 10 Insider Preview、ビルド18917が公開される[24]

対応ディストリビューション

ベータ版ではUbuntuのみサポートされていたが、正式版となったWindows 10 Fall Creators Updateから各種ディストリビューションが対応された[25]Microsoftストアからそれぞれ独立してインストールできる。システムも独立しているため併用可能。WSLのインフラストラクチャとツールのサポートはマイクロソフトが、ディストリビューション内部のサポートはディストリビューションの配布元が、それぞれ提供している。

当初、WSLのベータ版においてはUbuntuのみとなっていた。WSLの提供開始当初のWindows 10, version 1607 (Anniversary Update) のUbuntuのバージョンは14.04であったが、2017年4月11日に公開されたWindows 10の半期チャンネルのアップデートである version 1703 (Creators Update) では、Ubuntuのバージョンは16.04 (Xenial Xerus) に変更されていた[26]。2018年7月時点でUbuntuは16.04 LTSと18.04 LTSが、2022年2月現在、18.04 LTSと20.04 LTSがCanonicalから配布されている。

Whitewater Foundry, Ltd. Co.によるDebianベースのWSL専用ディストリビューション
Whitewater Foundry, Ltd. Co.によるScientific LinuxベースのWSL専用ディストリビューション
Whitewater Foundry, Ltd. Co.によるFedoraベースのWSL専用ディストリビューション
Alpine LinuxベースのWSL専用ディストリビューション。Alpine Linux development teamによるものではない。

使用例

Ubuntuの場合

パッケージを最新版に更新する。

$ sudo apt update
$ sudo apt upgrade

NetHackをプレイする。

$ sudo apt install nethack
$ nethack

X Window Systemのクライアントを実行する (あらかじめXmingなどのXサーバーをWindows上で起動しておく)

$ sudo apt install x11-apps
$ sudo apt install x11-utils
$ sudo apt install x11-xserver-utils
$ export DISPLAY=:0
$ xeyes
$ firefox

Windowsのコマンド プロンプトからUbuntuのls、date、sort、uniqコマンドを実行する

C:\Users\a>bash -c "ls -l '/mnt/c/Program Files'"
C:\Users\a>bash -c "date '+%Y年%m月%d日 %H時%M分%S秒'"
C:\Users\a>bash -c "sort|uniq" < "C:\work\テストデータ.txt"

Windowsのコマンドと連携する(bash のlsコマンドの結果をWindowsのclip.exeでクリップボードに送る例)

$ ls -l '/mnt/c/Program Files' | clip.exe

Windowsのデスクトップにあるファイルをコピーする(***はWindowsユーザ名)

$ sudo cp /mnt/c/Users/***/Desktop/ファイル名 ファイル名

関連項目

脚注

  1. ^ Ubuntu 16.04 is slow in bash but ubuntu 14.04 was faster
  2. ^ Run Bash on Ubuntu on Windows”. Building Apps for Windows. マイクロソフト (2016年3月30日). 2016年10月2日閲覧。
  3. ^ Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy”. Wired. Condé Nast (2016年3月30日). 2016年10月2日閲覧。
  4. ^ Kirkland, Dustin (2016年3月30日). “Ubuntu on Windows – The Ubuntu Userspace for Windows Developers”. Ubuntu Insights. カノニカル. 2016年10月2日閲覧。
  5. ^ a b c d Frequently Asked Questions for WSL”. マイクロソフト. 2016年10月2日閲覧。
  6. ^ Bash on Ubuntu on Windows”. MSDN. マイクロソフト (2016年4月9日). 2016年10月2日閲覧。
  7. ^ 亀川和史 (2016年8月23日). “Bash on Ubuntu on Windowsとは? そのインストールと使い方”. Digital Advantage. 2016年10月2日閲覧。
  8. ^ a b Why Microsoft needed to make Windows run Linux software”. Ars Technica. コンデナスト・パブリケーションズ (2016年4月6日). 2016年10月2日閲覧。
  9. ^ Aleksandersen, Daniel (2016年4月7日). “Running Linux desktop apps on the Windows Subsystem for Linux”. Slight Future. 2016年10月2日閲覧。
  10. ^ Will Linux distros run on Windows 10 S?” (2017年5月18日). 2017年6月1日閲覧。
  11. ^ When I reinstall my win10 2016 LTSB, bash can not install · Issue #1281 · Microsoft/BashOnWindows”. 2016年12月13日閲覧。
  12. ^ a b Windows Subsystem for Linux on Windows Server - Building Apps for WindowsBuilding Apps for Windows
  13. ^ What’s new in WSL in Windows 10 Fall Creators Update – Windows Command Line Tools For Developers
  14. ^ Windows Subsystem for Linuxが正式版へ”. CodeZine. 翔泳社 (2017年7月31日). 2017年10月21日閲覧。
  15. ^ https://forest.watch.impress.co.jp/docs/news/1190081.html
  16. ^ 従来のWSL1はLinuxのシステムコールをWindows APIに変換する方式だった。
  17. ^ https://github.com/Microsoft/WSL/issues/873
  18. ^ Frederic Lardinois (2016年3月31日). “Build 2016で驚きの発表―Microsoftはこの夏Windows 10でBashシェルをサポート”. AOL Online Japan, Ltd. 2016年10月2日閲覧。
  19. ^ Announcing Windows 10 Insider Preview Build 14316”. Windows Experience Blog. マイクロソフト (2016年4月6日). 2016年10月2日閲覧。
  20. ^ 海上忍 (2016年8月29日). “Macはもう不要!? - "UNIX使い"狙い撃ちの「Windows Subsystem for Linux」を検証する(前編)”. Ascii.jp. 2016年10月2日閲覧。
  21. ^ 後藤大地 (2017年10月19日). “Windows 10 Fall Creators Update、注目の新機能・変更点まとめ”. マイナビニュース. マイナビ. 2017年10月21日閲覧。
  22. ^ 樽井秀人 (2017年7月31日). ““Windows Subsystem for Linux”が正式版に ~今秋公開の「Fall Creators Update」で”. 窓の杜. インプレス. 2017年10月21日閲覧。
  23. ^ Craig Loewen (2019年5月6日). “Announcing WSL 2”. Microsoft. 2019年6月24日閲覧。
  24. ^ Announcing Windows 10 Insider Preview Build 18917”. Microsoft (2019年6月12日). 2019年6月24日閲覧。
  25. ^ 樽井秀人 (2017年11月28日). “「Fall Creators Update」で広がるWindows 10の世界 ~複合現実とLinux対応”. 窓の杜. Impress Watch. 2018年3月7日閲覧。
  26. ^ 亀川 和史 (2017年3月7日). “Bash on Ubuntu on Windowsの、Creators Updateでの強化点&新機能”. Build Insider. Digital Advantage. 2017年6月16日閲覧。
  27. ^ a b 樽井秀人 (2017年7月24日). “「openSUSE Leap」がWindows 10の“ストア”に登場 ~「SUSE Linux Enterprise Server」も”. 窓の杜. Impress Watch. 2018年3月7日閲覧。
  28. ^ 樽井秀人 (2018年3月6日). “Linuxディストリビューション「Kali Linux」が“ストア”から導入可能に”. 窓の杜. Impress Watch. 2018年3月7日閲覧。
  29. ^ 「Debian」と「Kali Linux」がMicrosoftストアからダウンロード可能に”. ZDNet (2018年3月7日). 2018年3月8日閲覧。

外部リンク