web-dev-qa-db-ja.com

LinuxのWindowsサブシステムとWindowsのUbuntuのbashの違いは何ですか?

  1. それらの機能の違いは何ですか?それらのうちの1つはより互換性がありますか? Microsoftが同じに見えるこれら2つを開発する必要があるのはなぜですか?
  2. ファイルの場所。 Windows上のUbuntuのbash用のファイルはC:\Users\<username>\AppData\Local\lxssにありますが、WSL用のファイルはどこにありますか?彼らがC:\Users\<username>\AppData\Local\Lxss\rootfsにいると主張する回答がありますが、私はそれを空にしています。
  3. WSLの「.exe」はありますか? Windows上のUbuntuのbashの場合は"C:\Windows\sysnative\bash.exe"です。 WSLにこのようなものがあるので、Visual Studio Codeで使用できますか?
11
Mill

「Windows上のUbuntu上のBash」は、LinuxのWindowsサブシステムに基づいています。 WSLは、WindowsのNTカーネルでのLinuxシステムコールの実装であり、Linux実行可能ファイルを変更せずに実行できます(UbuntuのWineのように)。 「Windows上のUbuntuでのBash」は、WSLの1つのアプリケーションにすぎません。 openSUSEやFedoraのような他のLinuxディストリビューションは 利用可能または間もなく利用可能になる のいずれかです。

WSLには「exe」があります。もともとはbash.exe、それからwsl.exe、そして今、ubuntu.exeおよびopenSUSE-42.exe。おそらくFedora.exeはまもなく表示されます。 MSDNの投稿 WSLで複数のLinuxディストリビューションを管理

WSLを起動して実行するには、3つの方法があります。

  • wsl.exeまたはbash.exe
  • wsl -c [command]またはbash -c [command]
  • [distro]、つまりubuntu-これは、Windowsメニューからインストール済みアプリを起動するのと同じです。

最初の2つのケースでは、WSLは実行するディストリビューション(デフォルトのディストリビューション)を選択する必要があります。デフォルトを明示的に設定しない場合、デフォルトで最初にインストールされます。

WSLのファイルがどこにあるかはディストリビューションによって異なりますが、それらは ストア からインストールされたアプリなので、

ストアを介してインストールする各ディストリビューションは、そのアプリケーションのappdataディレクトリにインストールされます。例えば: C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

13
muru