VMとSSHにおけるWindows BashとUbuntuの比較


5

私はしばらく前から見回していましたが、新しいBash For Windows 10とVMで実行されているUbuntuへのssh(Windowsドライブがマウントされている)との違いが何かを見つけることができませんでした。

それはウィンドウズともっと統合されているのでしょうか、それともVMの中で動いているUbuntuインストールの上にそれだけでアクセスとインストールの容易さでしょうか?

回答:


7

違いは、基本的に、オペレーティングシステムレベルの仮想化とハイパーバイザーベースの仮想化の違いです。

起動したとき bash Windowsの[スタート]メニューから、Ubuntuの完全なコマンドライン環境にアクセスできるテキストウィンドウが表示され、そこから任意のユーザランドのUbuntuパッケージをインストールできます。

従来のVMで得られるものとは異なり、起動または実行するためのLinuxカーネルはありません。そのため、起動が速く実行が簡単です。 UbuntuのネイティブバイナリはWindowsカーネル(正確にはその新しいサブシステム)によって実行されるだけです。もう1つの違いは、Boxからのグラフィック統合がないことです。 VMでは、仮想ハードウェアのテキストおよびグラフィックコンソールのウィンドウ(またはフルスクリーン)表現にアクセスできますが、Windows bashでは、Windowsターミナルエミュレータからサーバーにリモート接続したように見えます。それでも起動した場合は、Linuxグラフィックアプリケーションを実行することができます。 X11 Windows上のサーバー。関与するLinuxカーネルがないので、あなたはあなたのハードウェアにアクセスするのにLinuxモジュール/ドライバを使うことができません、それはWindowsネイティブのものによってアクセスされるでしょう。これには多くの意味があります。例えば、シンボリックリンクのサポートや、長いファイル名とファイル名の大文字小文字の区別に関する問題、inotifyなどは現在ありません。実マシンや従来のVMのような起動シーケンスはありません。つまり、起動時に自動的にサービスが起動されることはありません。 bash。 Dockerの起動と少し似ています bash

最後に、これは進行中の作業であるため、改善の余地がたくさんあります。そのサイトでユーザーが最も多く報告していることについて考えがあるかもしれません。 https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windows

よくある質問も見てください。 https://msdn.microsoft.com/ja-jp/commandline/wsl/faq

最初のユーザー要求「BashからWindowsプロセスを起動しましょう」は、Windows上で実行されているLinux VMからも実行できないものです。


0

これら3つはすべて、さまざまな用途や目的を満たすツールです。どれが部分的に嗜好であり、部分的に正しいかまたはツールの適切な選択であるかを決定する。

私はそれを使ったことはありませんが、私がWindows BASHについて読んだことのある、貴重なものではないことから、少しだけ孤立したBASHシェル環境です。たとえば、Powershellが行うシステムレベルの情報やAPIにはアクセスできません。それ ではない UNIX風を提供する コマンド 環境もSSHも提供しません。しかし、BATファイルと同じようにプログラムやアプリケーションを実行できますが、スクリプトはBASH構文を使用して書かれています。

Cygwinは、(多かれ少なかれ)完全なUNIXスタイルのPOSIX環境をライブラリベースで抽象化したものです。システムレベルの情報とAPIにアクセスできます。 もし そのようなインターフェースは書かれており、多くのものが持っています。それは、UNIXスタイルの環境にもっと似ているように感じますが、「ウィンドウ」を収容するためになされる必要がある明らかな適応があります。例えば。 DのようにWindowsドライブにアクセスするには /cygdrive/d/。パス内のディレクトリ区切り文字は / のではなく \ ネットワークドライブへのアクセスは //host/share/path... 私は仕事で毎日それを使っています、そして私はそれが私のUNIXスタイルの考え方に非常に役立つと思います。

仮想マシンでのLinuxの実行は完全なインストールであり、ネットワーク、キーボード/マウス、メモリなどの特定の定義済みの点を除いて、ホストシステムから完全に分離されています。


私にいくつかの意見を与えてくれてありがとう、私は他の人々にも同様にいくつかの意見が来るように変化を与えるためにもう少しのために質問を開いたままにするつもりです。
Androme

1
あなたは「それは ではない UNIX風を提供する コマンド Linuxサブシステムは完全なUNIXライク(Ubuntu)コマンド環境を提供し、ネットワークにアクセスできるのでsshを実行できます。Windowsにアクセスすることはできません。 APIですが、VM内のUbuntuでもそれはできません。
jlliagre

これが答えではなくコメントだった理由です。私は勝つために貴重な情報を少しだけ読んでほしいと述べました。記事から私の印象はそれがあなたのようなユーティリティを与えていないということでした ls または tr。私は間違っていてうれしいです - これらのユーティリティは私にとってそれをより有用にします
kronenpj
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.