web-dev-qa-db-ja.com

Windows BashとCygwinの違いは何ですか?

Windows BashとCygwinの違いは何ですか?

「Linux」Bashを使用したWindowsからの新しい更新は新しいものですが、Cygwinには、どちらかを選択する可能性がある違いは何ですか?

65

Cygwinは、完全にWindowsに住み、bashスクリプトを使用してWindowsタスクを実行/自動化したい場合に最適なツールです。ただし、Cygwinは変更されていないLinuxバイナリを実行できません。

そこでWSLが介入します:

Linux用Windowsサブシステム(WSL)は、LinuxカーネルABIとの高度な互換性を提供することを目的としたWindowsカーネルの新しいレイヤーです。これにより、変更されていないネイティブのLinux ELF64バイナリをWSLで実行できます。

これにより、WSLは純正のUbuntuユーザーランドディストロ、およびapt-getからダウンロードしたパッケージ、または他の場所からの.debパッケージを変更なしで実行できます。

WSLのポイントは、Windowsで作業する開発者が多くのツールを実行できるようにし、Linuxバイナリ、機能、動作、ファイルシステムレイアウト、プロセスモデルなどに依存する多くのプロジェクトで作業できるようにすることです。

WSLはまだ実装の初期段階にありますが、システムコールの実装の幅と深さを向上させて、WSLのより大きなツールセットを実行する能力を着実に向上させ、急速に増加しているRuby、Java、ノードをサポートするために懸命に取り組んでいます、などのパッケージとプロジェクト。


更新:2017-09-07

上記を書いてから、Windows 10 Creators Updateを出荷しました。これにより、WSLと実行/必要な多くのツールとの互換性が大幅に向上します。

開発も衰えず継続しており、2017年10月のFall Creators Update(FCU)の出荷に向けて、過去数か月にわたってWin10 Insidersビルドを出荷してきました。

FCUでは、複数のディストリビューションを並行してインストールおよび実行する機能を追加しています。Ubuntu、openSUSE、およびSLESが現在利用可能で、Fedoraなどが準備中です。また、WSLはUSBシリアル通信、USBストレージおよびネットワーク共有のマウントをサポートするようになり、さらに多くのツールとの互換性を改善するsyscallsがさらに改善されました。


更新:2019-08-22

最初にWSLを発表してリリースしてから、ストアを介して複数のディストリビューションのサポートを追加し、WSL v1.0 HTHを発表してから数年が経ちました。

ビルド2019で、新しいWindowsターミナル を発表しましたターミナルセッションビデオはこちら )および WSL 2WSL 2セッションビデオはこちら ) LinuxをWindowsで実行するまったく新しいアプローチ。

詳細および今後の更新については、Windows Command-Lineブログに数週間ごとにアクセスし、関連するニュースを多数投稿してください。

65
Rich Turner

Linux用のWindowsサブシステム

私は約10か月間、Windows 10でWSLを使用しています。最後に、ゲームのためにWindowsを起動しても、bashプロンプトにアクセスして、CLIおよび多くのGUIプログラムを実行できます。おなじみのLinuxカーネル仮想ディレクトリがないなどの制限があります。デュアルブートマシンでUbuntuとWSLの間で同じBashスクリプトを共有するには、計画が必要です。

改善したいことはたくさんありますが、1年ほどそのままで生きることができます。

クローズドソース

覚えておくべきことの1つは、Microsoftはクローズドシステムであり、Linuxで楽しんでいるような更新プログラムをサードパーティが作成することはありません。しかし、新しいラップトップを購入すると考えられるすべてのものは、とにかくWindows 10に付属しているので、少なくとも「無料」だと言うことができます:)

CygwinはRed Hat Linuxによって制御されます。RedHat Linuxは、無料で物を配ることで正確に知られていません。彼らの「無料」のLinuxディストリビューション Fedora は、一部の人にとっては "testing ground" のように思えます。

メンテナンスサイクル

Cygwinには15年間の更新があります。 2003年以来、同じプロジェクトマネージャーが配置されていることは注目に値します。多くのフルタイムのメンテナーと多くのボランティアの貢献者がいます。

WSLは、毎年春と秋にメジャーアップデートを年2回提供しています。開発者のサブスクリプションリストに載っている人は、毎週マイナーアップデートを利用できます。 Microsoftには数千人をWSL開発に投入するためのリソースがありますが、指で チームメンバー を数えることができるようです。

速度の問題

WSLの速度について多くの苦情があります。たとえば、Windows 10ではUbuntu 16.04に比べて画面の描画に時間がかかります。つまり、Windows 10では実際にカーソルが移動するのがわかります。

WSL bash startup.gif

WSL Bashスプラッシュスクリーンがペイントするのに約5秒かかります。比較すると、Ubuntu 16.04の同じスプラッシュスクリーンの場合、約1 1/2秒です。

Ubuntu terminal splash.gif

Cygwinには、 Bashでの速度に関する苦情 があります。


歴史的な参考のために以下の元の投稿。

ここでの答えは1年前のものなので、少し更新が必要だと思います。 Windows 10 Homeでは、if32ビットWindowsであるため、Microsoftがここで説明しているように、64ビットUbuntu/Windowsサブシステムは実行されません。 ( win10 HOME BASICのWindows Linuxサブシステム )。

Nvidiaの優れたゲームサポートを備えたWindowsでUbuntuを実行するのは夢のようです。 Ubuntu/LinuxをWindowsでネイティブに実行したい場合。 MicrosoftのWebサイトでは、Linux用のWindowsサブシステムを実行するための前提条件として、Windows Anniversaryエディションを実際に参照しています。


ただし、Windows 10で200ドル以上を払いたくなく、私と同じようにWindows 8.1 64ビットを実行している古いラップトップがあり、私と同じようにWindows Vista 64ビットを実行している古いラップトップがある場合、Cygwinは答え。

Cygwinはより多くのバージョンのWindowsをサポートしています Webサイトのリストとして

Cygwinは、最新のリリースされたすべてのバージョンのWindowsで動作することが期待できます。 2016年1月には、Windows Vista、Windows Server 2008、およびそれ以降のWindows 10およびWindows Server 2016までのすべてのバージョンが含まれます。Cygwinの32ビットバージョンは、リリースされた64ビットバージョンのWindows 64上のWOW64 32ビット環境でも実行されますもちろん64ビットWindowsのみのビットバージョン。

Cygwinは、基礎となるOSがサポートする範囲でしか実行できないことに注意してください。このため、CygwinはWindowsのさまざまなバージョンで異なる動作をし、異なる制限を示します。

14