「Windows Subsystem for Linux」の版間の差分
28行目: | 28行目: | ||
WSLはWindows 10の[[x64|64ビット]]版で<ref name="ms-faq" />、Windows 10, version 1607 (Anniversary Update) と version 1703 (Creators Update) でベータ版を、version 1709 (Fall Creators Update) から正式版を利用できる。ただし Windows 10 S<ref>{{Cite web |url = https://blogs.msdn.microsoft.com/commandline/2017/05/18/will-linux-distros-run-on-windows-10-s/ |title = Will Linux distros run on Windows 10 S? |accessdate = 2017-06-01 |date = 2017-05-18 }}</ref>やWindows 10 IoT Coreを除く。またWindows 10 Enterprise 2016 LTSBはリリース当時WSLがベータ版だったため未提供<ref>{{Cite web |url=https://github.com/Microsoft/BashOnWindows/issues/1281 |title=When I reinstall my win10 2016 LTSB, bash can not install · Issue #1281 · Microsoft/BashOnWindows |accessdate=2016-12-13}}</ref>。Windows Serverでは、Windows 10, version 1607とほぼ同時にリリースされたサーバ用OSの[[Microsoft Windows Server 2016|Windows Server 2016]]には搭載されていなかったが、2017年8月8日にリリースされた Insider Preview Build 16237 から利用可能になり<ref name="win_server_2016_preview">[https://blogs.windows.com/buildingapps/2017/08/08/windows-subsystem-linux-windows-server/ Windows Subsystem for Linux on Windows Server - Building Apps for WindowsBuilding Apps for Windows]</ref><ref>[https://blogs.msdn.microsoft.com/commandline/2017/10/11/whats-new-in-wsl-in-windows-10-fall-creators-update/ What’s new in WSL in Windows 10 Fall Creators Update – Windows Command Line Tools For Developers]</ref>、[[Windows Server#半期チャネル|Windows Server, version 1709]] にて正式搭載された。 |
WSLはWindows 10の[[x64|64ビット]]版で<ref name="ms-faq" />、Windows 10, version 1607 (Anniversary Update) と version 1703 (Creators Update) でベータ版を、version 1709 (Fall Creators Update) から正式版を利用できる。ただし Windows 10 S<ref>{{Cite web |url = https://blogs.msdn.microsoft.com/commandline/2017/05/18/will-linux-distros-run-on-windows-10-s/ |title = Will Linux distros run on Windows 10 S? |accessdate = 2017-06-01 |date = 2017-05-18 }}</ref>やWindows 10 IoT Coreを除く。またWindows 10 Enterprise 2016 LTSBはリリース当時WSLがベータ版だったため未提供<ref>{{Cite web |url=https://github.com/Microsoft/BashOnWindows/issues/1281 |title=When I reinstall my win10 2016 LTSB, bash can not install · Issue #1281 · Microsoft/BashOnWindows |accessdate=2016-12-13}}</ref>。Windows Serverでは、Windows 10, version 1607とほぼ同時にリリースされたサーバ用OSの[[Microsoft Windows Server 2016|Windows Server 2016]]には搭載されていなかったが、2017年8月8日にリリースされた Insider Preview Build 16237 から利用可能になり<ref name="win_server_2016_preview">[https://blogs.windows.com/buildingapps/2017/08/08/windows-subsystem-linux-windows-server/ Windows Subsystem for Linux on Windows Server - Building Apps for WindowsBuilding Apps for Windows]</ref><ref>[https://blogs.msdn.microsoft.com/commandline/2017/10/11/whats-new-in-wsl-in-windows-10-fall-creators-update/ What’s new in WSL in Windows 10 Fall Creators Update – Windows Command Line Tools For Developers]</ref>、[[Windows Server#半期チャネル|Windows Server, version 1709]] にて正式搭載された。 |
||
WSLは、[[Microsoft Windows 10 Mobile|Windows 10 Mobile]]上でいくつかの[[Android]]用アプリを実行できるようにするためのプロジェクトだがリリースされることはなかった、Project Astoriaを発祥とする<ref name=Ars-March />。 |
WSLは、[[Microsoft Windows 10 Mobile|Windows 10 Mobile]]上でいくつかの[[Android (オペレーティングシステム)|Android]]用アプリを実行できるようにするためのプロジェクトだがリリースされることはなかった、Project Astoriaを発祥とする<ref name=Ars-March />。 |
||
マイクロソフトはWSLを「主として開発者、特にWeb開発者や[[オープンソース]]プロジェクトを利用する開発者のためのツール」としてイメージしている<ref name="ms-faq" />。 |
マイクロソフトはWSLを「主として開発者、特にWeb開発者や[[オープンソース]]プロジェクトを利用する開発者のためのツール」としてイメージしている<ref name="ms-faq" />。 |
2020年9月6日 (日) 09:07時点における版
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コマンドラインツール(sed、awkなど)やプログラミング言語インタプリタ(Ruby、Pythonなど)[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]。 従来のWSL1との違いは以下のとおりである。
- 本物の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がCanonicalから配布されている。
- Ubuntu
- openSUSE Leap 42[27]
- SUSE Linux Enterprise Server[27]
- Kali Linux[28]
- Debian GNU/Linux[29]
- Pengwin
- 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/ファイル名 ファイル名
関連項目
脚注
- ^ Ubuntu 16.04 is slow in bash but ubuntu 14.04 was faster
- ^ “Run Bash on Ubuntu on Windows”. Building Apps for Windows. マイクロソフト (30 March 2016). 2016年10月2日閲覧。
- ^ “Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy”. Wired. Condé Nast (30 March 2016). 2016年10月2日閲覧。
- ^ Kirkland, Dustin (30 March 2016). “Ubuntu on Windows – The Ubuntu Userspace for Windows Developers”. Ubuntu Insights. カノニカル. 2016年10月2日閲覧。
- ^ a b c d “Frequently Asked Questions for WSL”. マイクロソフト. 2016年10月2日閲覧。
- ^ “Bash on Ubuntu on Windows”. MSDN. マイクロソフト (9 April 2016). 2016年10月2日閲覧。
- ^ 亀川和史 (2016年8月23日). “Bash on Ubuntu on Windowsとは? そのインストールと使い方”. Digital Advantage. 2016年10月2日閲覧。
- ^ a b “Why Microsoft needed to make Windows run Linux software”. Ars Technica. コンデナスト・パブリケーションズ (6 April 2016). 2016年10月2日閲覧。
- ^ Aleksandersen, Daniel (7 April 2016). “Running Linux desktop apps on the Windows Subsystem for Linux”. Slight Future. 2016年10月2日閲覧。
- ^ “Will Linux distros run on Windows 10 S?” (2017年5月18日). 2017年6月1日閲覧。
- ^ “When I reinstall my win10 2016 LTSB, bash can not install · Issue #1281 · Microsoft/BashOnWindows”. 2016年12月13日閲覧。
- ^ a b Windows Subsystem for Linux on Windows Server - Building Apps for WindowsBuilding Apps for Windows
- ^ What’s new in WSL in Windows 10 Fall Creators Update – Windows Command Line Tools For Developers
- ^ “Windows Subsystem for Linuxが正式版へ”. CodeZine. 翔泳社 (2017年7月31日). 2017年10月21日閲覧。
- ^ https://forest.watch.impress.co.jp/docs/news/1190081.html
- ^ 従来のWSL1はLinuxのシステムコールをWindows APIに変換する方式だった。
- ^ https://github.com/Microsoft/WSL/issues/873
- ^ Frederic Lardinois (2016年3月31日). “Build 2016で驚きの発表―Microsoftはこの夏Windows 10でBashシェルをサポート”. AOL Online Japan, Ltd. 2016年10月2日閲覧。
- ^ “Announcing Windows 10 Insider Preview Build 14316”. Windows Experience Blog. マイクロソフト (6 April 2016). 2016年10月2日閲覧。
- ^ 海上忍 (2016年8月29日). “Macはもう不要!? - "UNIX使い"狙い撃ちの「Windows Subsystem for Linux」を検証する(前編)”. Ascii.jp. 2016年10月2日閲覧。
- ^ 後藤大地 (2017年10月19日). “Windows 10 Fall Creators Update、注目の新機能・変更点まとめ”. マイナビニュース. マイナビ. 2017年10月21日閲覧。
- ^ 樽井秀人 (2017年7月31日). ““Windows Subsystem for Linux”が正式版に ~今秋公開の「Fall Creators Update」で”. 窓の杜. インプレス. 2017年10月21日閲覧。
- ^ Craig Loewen (2019年5月6日). “Announcing WSL 2”. Microsoft. 2019年6月24日閲覧。
- ^ “Announcing Windows 10 Insider Preview Build 18917”. Microsoft (2019年6月12日). 2019年6月24日閲覧。
- ^ 樽井秀人 (2017年11月28日). “「Fall Creators Update」で広がるWindows 10の世界 ~複合現実とLinux対応”. 窓の杜. Impress Watch. 2018年3月7日閲覧。
- ^ 亀川 和史 (2017年3月7日). “Bash on Ubuntu on Windowsの、Creators Updateでの強化点&新機能”. Build Insider. Digital Advantage. 2017年6月16日閲覧。
- ^ a b 樽井秀人 (2017年7月24日). “「openSUSE Leap」がWindows 10の“ストア”に登場 ~「SUSE Linux Enterprise Server」も”. 窓の杜. Impress Watch. 2018年3月7日閲覧。
- ^ 樽井秀人 (2018年3月6日). “Linuxディストリビューション「Kali Linux」が“ストア”から導入可能に”. 窓の杜. Impress Watch. 2018年3月7日閲覧。
- ^ “「Debian」と「Kali Linux」がMicrosoftストアからダウンロード可能に”. ZDNet (2018年3月7日). 2018年3月8日閲覧。