「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Linuxサブシステム]]

* 目次 [#rdb7338f]
#contents

*概要 [#ua00ab1b]
-Windows Subsystem for Linux (以下、WSLと略す。)
-旧称:[[Bash]] on Ubuntu on Windows / [[Bash]] on Windows

-仮想環境、エミュレーション環境(互換レイヤ)なので、~
-仮想環境ではなく、エミュレーション環境(互換レイヤ)なので、~
[[Hyper-V]]の機能は使用せず、新しいサブシステムとしてLinuxを動作させることができる。

-これは、Linux系の開発環境をサポートすることが主目的と予想されている。

-[[Docker for Windows]]と同様に、[[Bash]] on Windowsから、ひたすら進化を続けている。

**方式 [#ma09b3b5]

***[[Drawbridge>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Drawbridge]] [#le54b8ad]
「ライブラリOS」・「ピコプロセス」というテクノロジを土台にしている。

***Picoプロバイダードライバー [#n8293207]
-Linux互換環境を提供するPicoプロバイダードライバー~
(lxss.sysとlxcore.sysという2つのカーネルドライバー)で実装されている。

-[[リダイレクタ的なアーキテクチャによって>NetBIOS#e614ed6a]]、~
WindowsクライアントとLinuxサーバをPico経由で接続して動作する。
 Microsoft Bash Launcher(bash.exe) ---> LX Session manager service ---> Pico <---> Linux

-これにより、ほぼネイティブに(?)Linuxの機能(バイナリ)がWindowsから呼び出せる。

**ディストリビューション [#xd8a2083]
厳密には以下のLinuxディストリビューションの上で動作可能なツール

***メジャー [#ucf18e2f]
-Ubuntu
-OpenSUSE
-SUSE Linux Enterprise Server

***マイナー [#d1bb63aa]
-WLinux Enterprise
-Fedora Remix for WSL

*詳細 [#k849312c]

**インストール/アンインストール [#o393cbb1]
**インストール / アンインストール [#o393cbb1]

***Creators Update(V.1703)以前 [#t31e67b4]
WSLがβ版だった頃。

-参考
--Windows Subsystem for Linuxをインストールしてみよう! - Qiita~
https://qiita.com/Aruneko/items/c79810b0b015bebf30bb

***Fall Creators Update(V.1709)以降 [#r34eea59]
-[[Microsoft Store>#x9b4a3ba]]からインストール、
-「⚙」の[アプリと機能]からアンインストール

-参考
--Windows 10でLinuxプログラムを利用可能にする~
WSL(Windows Subsystem for Linux)をインストールする:Tech TIPS - @IT~
http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html
--WSLのインストール・アンインストール方法 - Qiita~
https://qiita.com/tkj06/items/b5c195db860241663485

***Creators Update(V.1703)以前 [#t31e67b4]
***Microsoft Store [#x9b4a3ba]
[[Creators Update以降>#r34eea59]]は、Microsoft Storeからインストール

-参考
--Windows Subsystem for Linuxをインストールしてみよう! - Qiita~
https://qiita.com/Aruneko/items/c79810b0b015bebf30bb
--Ubuntu を入手 - Microsoft Store ja-JP~
https://www.microsoft.com/ja-jp/p/ubuntu/9nblggh4msv6

***ディストリビューション変更 [#h9713feb]
-WSL-Distribution-Switcherというツールが使用できる。
-V.1703互換操作で初期ディストリビューションセットアップすれば、V.1709のWSLでも、利用可能。
-V.1703互換操作で初期ディストリビューションを~
セットアップすれば、V.1709のWSLでも、利用可能。

-参考
--Windows 10で始めるBash(41) WSL上のLinuxディストリビューションを変更する | マイナビニュース~
--Windows 10で始めるBash(41) WSL上の~
Linuxディストリビューションを変更する | マイナビニュース~
https://news.mynavi.jp/article/bashonwindows-41/

**特徴 [#a5db540f]
***Windows Server [#e6e3997f]
サーバにもインストール可能

***自動的にSSHサーバが起動する [#nbdef969]
-WSLを入れると、自動的にSSHサーバが起動する。
-参考
--Windows Server に Linux サブシステムをインストールする | Microsoft Docs~
https://docs.microsoft.com/ja-jp/windows/wsl/install-on-server

-必要に応じて、
--Windowsファイアーウォールで当該ポートを塞ぐか、
--SSHサーバのサービスそのものを無効化する。
**利用方法 [#b7c156ee]

***I/Oが遅いらしい [#o3358b21]
Linuxと違いWindowsはファイルシステムへのアクセスが必須で、~
大量のフィルター(ドライバ)が登録されているため遅いらしい。
***基本的な利用方法 [#h3e2ae3b]
-WSL (Windows Subsystem for Linux)の基本メモ - Qiita~
https://qiita.com/rubytomato@github/items/fdfc0a76e848442f374e

-Major performance (I/O?) issue in /mnt/* and in ~ (home) · Issue #873 · Microsoft/WSL~
https://github.com/Microsoft/WSL/issues/873#issuecomment-425272829
***[[WSL上での.NET Core開発]] [#fa6de268]

--https://twitter.com/EzoeRyou/status/1081354029978902528

**相互運用 [#cbc6e571]

***[[WindowsとLinuxの相互運用]] [#y0586a5a]
***[[WSLでのWindowsとLinuxの相互運用]] [#y0586a5a]

***[[WindowsとWSL間の接続]] [#a18d1c2c]

***[[WSL上での.NET Core開発]] [#fa6de268]

*参考 [#ida97117]

**[[Docker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker]]との関係 [#ye854812]
WSL上で[[Docker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker]]を動かすことはできない。~
[[Dockerのクライアント(Dockerコマンド)>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker#jbff7b71]]のみ利用するケースが多い。

**Build Insider [#n82f3c3e]
-Windows Subsystem for Linuxとは? そのインストールと使い方~
http://www.buildinsider.net/enterprise/wsl/01
***WSL(1) [#nf5cd2c3]
-[[裏技>Windows上で動くLinux#yc05e4f9]]を除き、WSL(1)上で[[Docker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker]]を動かすことはできない。

-Bash on Ubuntu on Windowsの、Creators Updateでの強化点&新機能~
http://www.buildinsider.net/enterprise/wsl/creatorsupdate
-Linuxスタイルのスニペットを動かすために、~
[[Dockerのクライアント(Dockerコマンド)>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker#jbff7b71]]~
のみをWSL(1)から利用するケースが多い。

**@IT [#zc4bbedd]
-Windows 10 The Latest:Windows 10でUbuntuのシェル「Bash」が動き始める! だが日本語はどうなる? (1/2)~
http://www.atmarkit.co.jp/ait/articles/1604/11/news031.html
-Tech TIPS:Windows 10のLinux/Ubuntu互換環境でbashを使う~
http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html
***[[WSL2>#t1ddb916]] [#b08a40a8]
-WSL2では、[[Docker Desktop WSL2 Backend>WSL → WSL2#yac68e0f]]で[[Docker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker]]をサポートする。
-また、[[Docker Desktopなしでも内部でDockerを動かせる>WSL → WSL2#x1a53d68]]らしい。

**Qiita [#aae60597]
-Bash on Ubuntu on Windowsの動作要件~
https://qiita.com/tsukamoto/items/47717f8872325734b4e6
-Bash on Ubuntu on Windowsをインストールしてみよう!~
https://qiita.com/Aruneko/items/c79810b0b015bebf30bb
**GUIのサポート [#k12fa962]

-WSLでDockerを使う~
https://qiita.com/tkyonezu/items/f89fe109ee764912bc8f
-Windows Subsystem for LinuxからDockerを使う~
https://qiita.com/koduki/items/37b97ef3310186ff73b8
***[[WSLg>WSL → WSL2#qdc6ef47]] [#t88ba423]

**kledgeb [#tbdfa959]
-kledgeb: WSL~
https://kledgeb.blogspot.jp/search/label/WSL?max-results=10
***Google Playのサポート [#p73ee339]

***仕組み [#c8c36ba1]
-WSL その1 - Ubuntu on Windowsの概要とアーキテクチャー・Ubuntu on WindowsのFAQ~
https://kledgeb.blogspot.jp/2016/04/wsl-1-ubuntu-on-windowsubuntu-on.html
-その17 - WSLの仕組みとWSLを構成するコンポーネント~
https://kledgeb.blogspot.jp/2016/05/wsl-17-wslwsl.html
**その他 [#a5db540f]

***WSL2 [#k7436e8a]
-その181 - WSL 2でリモートからアプリに接続する時の注意事項するPicoプロバイダードライバー~
(lxss.sysとlxcore.sysという2つのカーネルドライバー)で実装されている。

-[[リダイレクタ的なアーキテクチャによって>NetBIOS#e614ed6a]]、~
WindowsクライアントとLinuxサーバをPico経由で接続して動作する。
 Microsoft Bash Launcher(bash.exe) ---> LX Session manager service ---> Pico <---> Linux

-これにより、ほぼネイティブに(?)Linuxの機能(バイナリ)がWindowsから呼び出せる。

**ディストリビューション [#xd8a2083]
厳密には以下のLinuxディストリビューションの上で動作可能なツール
-Ubuntu
-OpenSUSE
-SUSE Linux Enterprise Server

-WLinux Enterprise
-Fedora Remix for WSL

*詳細 [#k849312c]

**インストール/アンインストール [#o393cbb1]

***Fall Creators Update(V.1709)以降 [#r34eea59]

-参考
--Windows 10でLinuxプログラムを利用可能にする~
WSL(Windows Subsystem for Linux)をインストールする:Tech TIPS - @IT~
http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html

***Creators Update(V.1703)以前 [#t31e67b4]

-参考
--Windows Subsystem for Linuxをインストールしてみよう! - Qiita~
https://qiita.com/Aruneko/items/c79810b0b015bebf30bb

***ディストリビューション変更 [#h9713feb]
-WSL-Distribution-Switcherというツールが使用できる。
-V.1703互換操作で初期ディストリビューションセットアップすれば、V.1709のWSLでも、利用可能。

-参考
--Windows 10で始めるBash(41) WSL上のLinuxディストリビューションを変更する | マイナビニュース~
https://news.mynavi.jp/article/bashonwindows-41/

**特徴 [#a5db540f]

***自動的にSSHサーバが起動する [#nbdef969]
-WSLを入れると、自動的にSSHサーバが起動する。

-必要に応じて、
--Windowsファイアーウォールで当該ポートを塞ぐか、
--SSHサーバのサービスそのものを無効化する。

***I/Oが遅いらしい [#o3358b21]
Linuxと違いWindowsはファイルシステムへのアクセスが必須で、~
大量のフィルター(ドライバ)が登録されているため遅いらしい。

-Major performance (I/O?) issue in /mnt/* and in ~ (home) · Issue #873 · Microsoft/WSL~
https://github.com/Microsoft/WSL/issues/873#issuecomment-425272829

--https://twitter.com/EzoeRyou/status/1081354029978902528

**相互運用 [#cbc6e571]
*参考 [#ida97117]

***[[WindowsとLinuxの相互運用]] [#y0586a5a]
**[[WSL → WSL2]] [#t1ddb916]

***[[WindowsとWSL間の接続]] [#a18d1c2c]
**その他 [#e7127ebd]
-WSL2正式リリース WindowsでLinuxが必要とされる複雑な背景 - orangeitems’s diary~
https://www.orangeitems.com/entry/2020/05/20/102112

***[[WSL上での.NET Core開発]] [#fa6de268]
***Publickey [#w67a9aae]
-Windows Serverにも「Bash on Windows」搭載へ。~
Windows Serverも仮想マシンを使わずにLinuxバイナリが実行可能に。Build 2017~
https://www.publickey1.jp/blog/17/windows_serverbash_on_windowswindows_serverlinuxbuild_2017.html

*参考 [#ida97117]
-Bash on Windows/Windows Subsystem for Linuxが~
ベータ版を卒業、正式版に。今秋のWindows 10 Fall Creators Updateで~
https://www.publickey1.jp/blog/17/windows_subsystem_for_linux_fall_creators_update.html

**[[Docker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker]]との関係 [#ye854812]
WSL上で[[Docker>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker]]を動かすことはできない。~
[[Dockerのクライアント(Dockerコマンド)>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Docker#jbff7b71]]のみ利用するケースが多い。
-「Bash on Windows」という名称は非推奨に。~
正式名称「Windows Subsystem for Linux」(WSL)としてベータを卒業、正式リリースに~
https://www.publickey1.jp/blog/17/bash_on_windowswindows_subsystem_for_linuxwsl.html

**Build Insider [#n82f3c3e]
-Windows 10、次期アップデートでLinuxのdaemonも~
サポートする見通し、Windows Subsystem for Linuxで対応~
https://publickey1.jp/blog/18/windows_10linuxdaemonwindows_subsystem_for_linux.html

***Build Insider [#n82f3c3e]
-Windows Subsystem for Linuxとは? そのインストールと使い方~
http://www.buildinsider.net/enterprise/wsl/01

-Bash on Ubuntu on Windowsの、Creators Updateでの強化点&新機能~
http://www.buildinsider.net/enterprise/wsl/creatorsupdate

**@IT [#zc4bbedd]
-Windows 10 The Latest:Windows 10でUbuntuのシェル「Bash」が動き始める! だが日本語はどうなる? (1/2)~
***@IT [#zc4bbedd]
-Windows 10 The Latest:Windows 10でUbuntuの~
シェル「Bash」が動き始める! だが日本語はどうなる? (1/2)~
http://www.atmarkit.co.jp/ait/articles/1604/11/news031.html
-Tech TIPS:Windows 10のLinux/Ubuntu互換環境でbashを使う~
http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html

**Qiita [#aae60597]
***Qiita [#aae60597]
-Bash on Ubuntu on Windowsの動作要件~
https://qiita.com/tsukamoto/items/47717f8872325734b4e6
-Bash on Ubuntu on Windowsをインストールしてみよう!~
https://qiita.com/Aruneko/items/c79810b0b015bebf30bb

-WSLでDockerを使う~
https://qiita.com/tkyonezu/items/f89fe109ee764912bc8f
-Windows Subsystem for LinuxからDockerを使う~
https://qiita.com/koduki/items/37b97ef3310186ff73b8

**kledgeb [#tbdfa959]
***kledgeb [#tbdfa959]
-kledgeb: WSL~
https://kledgeb.blogspot.jp/search/label/WSL?max-results=10

***仕組み [#c8c36ba1]
-WSL その1 - Ubuntu on Windowsの概要とアーキテクチャー・Ubuntu on WindowsのFAQ~
-仕組み

--WSL その1 - Ubuntu on Windowsの概要とアーキテクチャー・Ubuntu on WindowsのFAQ~
https://kledgeb.blogspot.jp/2016/04/wsl-1-ubuntu-on-windowsubuntu-on.html
-その17 - WSLの仕組みとWSLを構成するコンポーネント~
--その17 - WSLの仕組みとWSLを構成するコンポーネント~
https://kledgeb.blogspot.jp/2016/05/wsl-17-wslwsl.html

***WSL2 [#ha8502f6]
-その171 - Windows Subsystem for Linuxの新アーキテクチャー、WSL 2登場~
https://kledgeb.blogspot.com/2019/05/wsl-171-windows-subsystem-for-linuxwsl-2.html
-[[WSL2>WSL → WSL2#d0bedb7d]]

-その172 - WSL 2とLinux kernel・MicrosoftがLinux kernelを提供~
https://kledgeb.blogspot.com/2019/05/wsl-172-wsl-2linux-kernelmicrosoftlinux.html
***Microsoft Docs [#q0526926]
-Windows Subsystem for Linux について~
https://docs.microsoft.com/ja-jp/windows/wsl/about

-その173 - WSL 2とよく寄せられる質問~
https://kledgeb.blogspot.com/2019/05/wsl-173-wsl-2.html

-その174 - WindowsからLinuxのファイルにアクセスする仕組みの詳細とWSL 2~
https://kledgeb.blogspot.com/2019/06/wsl-174-windowslinuxwsl-2.html

-その175 - Build 18917でWSL 2が利用可能に・WSL 2を利用するには~
https://kledgeb.blogspot.com/2019/06/wsl-175-build-18917wsl-2wsl-2.html

-その176 - WSL 1とWSL 2の使い勝手の違い~
・ネットワークアプリへアクセスするには~
・ストレージ領域の最大サイズを大きくするには~
https://kledgeb.blogspot.com/2019/06/wsl-176-wsl-1wsl-2.html

-その177 - 仮想マシン内でWSL 2は利用できるのか?~
https://kledgeb.blogspot.com/2019/06/wsl-177-wsl-2.html

-その181 - WSL 2でリモートからアプリに接続する時の注意事項~
https://kledgeb.blogspot.com/2019/07/wsl-181-wsl-2.html

-その182 - Build 18945のWSLに関する変更点・WSL 2の大幅な改善と改良~
https://kledgeb.blogspot.com/2019/07/wsl-182-build-18945wslwsl-2.html

-その183 - localhostサポート・WSL 2グローバル設定の~
サポート・カスタムカーネルのサポート~
https://kledgeb.blogspot.com/2019/07/wsl-183-localhostwsl-2.html

----
Tags: [[:Windows]], [[:Linux]], [[:Linuxサブシステム]], [[:仮想化]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS