私はしばらく探していましたが、新しいBash For Windows10とVM)で実行されているUbuntuへのsshの違いを見つけることができませんでしたWindowsドライブがマウントされています)。
Windowsとの統合が進んでいますか、それともVMで実行されているUbuntuインストールよりもアクセスとインストールのしやすさが向上していますか?
違いは基本的に、オペレーティングシステムレベルの仮想化とハイパーバイザーベースの仮想化の違いです。
Windowsの[スタート]メニューからbash
を起動すると、ユーザーランドのUbuntuパッケージをインストールできる完全なUbuntuコマンドライン環境にアクセスできるテキストウィンドウが表示されます。
従来のVMで得られるものとは異なり、起動または実行するLinuxカーネルがないため、起動がはるかに高速で、実行が軽量です。 Ubuntuのネイティブバイナリは、Windowsカーネル(正確にはその新しいサブシステム)によって実行されるだけです。もう1つの違いは、すぐに使用できるグラフィック統合がないことです。 VMを使用すると、仮想ハードウェアのテキストおよびグラフィックコンソールのウィンドウ(またはフルスクリーン)表現にアクセスできますが、Windows bashを使用すると、Windowsターミナルエミュレーターからサーバーにリモート接続する場合と同じようになります。それでも、WindowsでX11
サーバーを起動すると、Linuxグラフィックアプリケーションを実行できる可能性があります。 Linuxカーネルが含まれていないため、Linuxモジュール/ドライバーを使用してハードウェアにアクセスすることはできません。Windowsネイティブのものからアクセスされます。これには多くの影響があります。たとえば、現在、シンボリックリンクのサポートがなく、長いファイル名とファイル名の大文字小文字の問題、inotifyがありません。実際のマシンや従来のVMのような起動シーケンスはありません。つまり、bash
を起動したときにサービスが自動的に開始されることはありません。これは、Dockerがbash
を起動するのと少し似ています。
最後に、これは進行中の作業であるため、改善の余地がたくさんあります。そのサイトでユーザーが最も多く報告していることについてのアイデアがあるかもしれません https://wpdev.uservoice.com/forums/266908-command-Prompt-console-bash-on-ubuntu-on-windows
FAQもご覧ください: https://msdn.Microsoft.com/en-us/commandline/wsl/faq
最初のユーザーリクエスト「BashからWindowsプロセスを起動しましょう」は、Windowsで実行されているLinux VMからも実行できないものであることに注意してください。
3つはすべて、さまざまな用途や目的を満たすツールです。どちらが部分的に好みであり、部分的に正しいか適切なツールの選択であるかを決定します。
使用したことはありませんが、貴重なWindows BASHについて読んだところ、少し孤立したBASHシェル環境です。たとえば、Powershellが行うシステムレベルの情報やAPIにはアクセスできません。 提供しません UNIXライクなコマンド環境を提供し、SSHも提供しません。ただし、BATファイルと同じようにプログラムやアプリケーションを実行できますが、スクリプトはBASH構文を使用して記述されています。
Cygwinは、(多かれ少なかれ)完全なUNIXスタイルのPOSIX環境のライブラリベースの抽象化です。システムレベルの情報とAPIにアクセスできますifこのようなインターフェイスが作成されており、多くのユーザーがアクセスできます。 UNIXスタイルの環境のように感じますが、「ウィンドウズ主義」に対応するために行う必要のある明らかな適応があります。例えば。 DのようなWindowsドライブにアクセスするには、/cygdrive/d/
。パス内のディレクトリ区切り文字は/
のではなく \
そしてネットワークドライブへのアクセスは//Host/share/path...
私は仕事で毎日それを使用していて、UNIXスタイルの考え方に非常に役立つと思います。
仮想マシンで実行されるLinuxは完全なインストールであり、ネットワーク、キーボード/マウス、メモリなどの特定の定義されたポイントを除いて、ホストシステムから(ほぼ)完全に分離されています...