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


65

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

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


1
私はwindows bashがMicrosoftにより良く統合され、より良くサポートされていると思います。
パンサー

2
Windows BashはCanonicalがサポートする製品であるため、この質問は話題になっていると思います。おそらく支持ではなく意見として話題から外れているかもしれません。
パンサー

回答:


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はまだ実装の初期段階にありますが、システムコールの実装の幅と深さを改善するために一生懸命取り組んでいます。 、などのパッケージとプロジェクト。


更新: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を発表してから、非常に忙しい年でした。

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

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


9
私は長年cygwinユーザーです。WSLは素晴らしいアイデアです。ほとんどの場合うまく動作しますが、この段階ではファイルアクセス速度は非常に遅くなります。私は法外に遅いと言います。GITのようなもので中規模の操作を行う場合でも、Cygwinでは1秒未満であるのに30秒以上かかります。うまくいけば、彼らはそれを修正することになるでしょう。
ダミアンソーヤー

9
ディスクPERFは既知の問題です:私たちは、より実質的な改善が2017年の後半に来て、Win10 CUのためのいくつかのPERFの改善に取り組んでいる
リッチ・ターナー

3
素晴らしい。待てない それは素晴らしい製品になるだろう:
ダミアンソーヤー

2
@DamienSawyer 6ヶ月以上経ちました。スピードに関する苦情は減りましたか、それとも同じですか?
WinEunuuchs2Unix

3
@RichTurnerその後、アップデートを実行します:D
Martijn van Wezel

15

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は、一部の人にとって「テストの場」のようです。

メンテナンスサイクル

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ターミナルのsplash.gif

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


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

ここでの答えは1年前のものなので、少し更新が必要だと思います。Windows 10 Homeでは、32ビット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は、Webサイトのリストとして、より多くのバージョンのWindows サポートしています

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

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


2
問題は、ウィンドウのcygwinとbashの違いは何ですか。Cygwinはあなたの答えにも言及されていません。これが質問にどのように答えるかを明確にしてください。
セス

@Seth CygwinがWIndowsのサポートされているすべてのバージョンで実行されるのに対して、WSLがバージョン固有であることを指摘しました。私の見落としを指摘してくれてありがとう。
WinEunuuchs2Unix

1
WSLには64ビットWindowsが必要であり、現在のLTSBを除くすべてのWindows 10 SKUで利用可能であることは非常に明確です。WSLは次のLTSBリリースに追加されます。WSLも秋2017年にリリースされたWindows Serverに組み込まれようとしている
リッチ・ターナーを

@RichTurnerあなたのウェブサイトはそれを明確に綴っています。ベンダーが、Nvidia 1050 GPUを搭載したi7クアッドコア7700と、Windows 10ホームを搭載した12 GBのシステムRAMを販売している理由は、私には明らかではありません。誰かが元のリンクを削除しましたが、ここではそうです。彼らはそれが32ビットだとは言いません。すべてのWIndows 10は64ビットだと言っていますか?
WinEunuuchs2Unix

1
ゲーム用PCとして販売されています。ほとんどのゲーマーはWin10 Proで追加の機能を必要としないため、顧客が必要としない可能性のあるものへの支払いから顧客を救うためにホームを選択しました。Windows 10にはそれを望む人のために32ビット版もありますが、誰かが4GB以上のRAMを搭載したマシンを販売し、それが実行するOSとアプリができないので32ビットOSをインストールした場合、私は驚きます4GBを超えるものにアクセスするには。
リッチターナー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.