GNU/Linux >> Linux の 問題 >  >> Linux

GNUWin32 と cygwin の違い

Cygwin は、UNIX プログラムを最小限の変更または変更なしで Windows システム上でコンパイルおよび実行できるようにするためのライブラリであり、このライブラリでコンパイルされたパッケージ化された UNIX ツールおよびアプリケーションの包括的なセットです。 Windows のほぼ完全なラッパーです。これには、X サーバーと、Linux ディストリビューションで期待できる非常に多くのプログラムが含まれています。 Windows で UNIX コマンド ラインを学習または使用したい人に最適です。

MSYS は、主に GNU スタイルのパッケージ (configure を使用) をビルドするために必要な UNIX ツールのポートです。 など) MinGW コンパイラを使用する Windows システムで。効率のために互換性を犠牲にするように変更された Cygwin ライブラリのバリアントを使用し、より Windows に適しています。

GnuWin32 は、いくつかの GNU ツールを Windows に移植しただけです。 MSYS と同様に、msvcrt.dll を使用します。 、および一部の UNIX 互換機能を提供する追加のライブラリ。その主な目的は、Windows プログラムとバッチ ファイルが GNU プログラムとライブラリの一部を直接使用できるようにすることです。

ほとんどの場合、これらはすべて Windows で UNIX プログラムを提供しますが、次のような多くの微妙な違いがあります。

  • 意図。 Cygwin は、Windows OS で UNIX を使用したい人向けです。 MSYS は、GNU/UNIX ビルド ツールを使用して Windows プログラムをビルドしたい人向けです。 GnuWin32 は、個々の GNU プログラムとライブラリを Windows に移植したものです。
  • テキスト ファイル、特に行末。 Cygwin では、CR/LF または LF を使用できます。 MSYS は LF 行末を想定しています。 GnuWin32 プログラムは、CR/LF の行末を想定しています。
  • 提供されたプログラム。特に、Cygwin にはより多くのパッケージがあり、GnuWin32 にはシェルがありません。

git に関しては、Cygwin で利用できます。このバージョンは、Windows ディレクトリ (/cygdrive でアクセス可能) で使用できます。 )。また、前述のように、msysgit があります。


マイケル・スレイドは正しいです。代表的な使用環境についてお話したいと思います。

実際的な理由から、私は gnuwin を POSIX 環境にリモートでのみ関連するものの軽量バックエンドとして使用しますが、cygwin は本格的な POSIX であり、非常に gnunixish な環境ですらあります。

また、実行可能ファイルは静的にリンクされたライブラリを使用することが多いため、多くのツールをインストールすると gnuwin が肥大化する傾向があります。一方、Cygwin は、大量の動的ライブラリとかなり小さな実行可能ファイルを提供します。したがって、少数の実行可能ファイルのみが必要な場合、gnuwin に必要なリソースは少なくなります。複雑な環境が必要な場合は、cygwin の方が効率的です。

また、gnuwin は少し時代遅れであることが多く、ソフトウェアもほとんどなく、パッケージ/更新マネージャーもありません。基本的なシェル環境です。 ssh なし、gcc なし、vim なし、perl なし、sql なし - これらは他のソースから入手できますが、これらがどのように連携するかを予測するのは困難です。Cygwin は上記の問題をすべて解決します。

言い換えれば、gnuwin は時折インストーラーに最適です。つまり、$PATH に du、find、および sort を入れるだけです。実際の POSIX 作業を行うには、cygwin を使用してください。

以前は 2 台目の Linux ワークステーションがあり、次に Windows システムの隣で Linux VM を実行していました。 Cygwin はそれらを廃止しました。専用のコンピューターや VM と比較して、大量のリソースを節約しながら、多くのことに十分対応できます。


Linux
  1. ログインシェルと非ログインシェルの違いは?

  2. 2>&-、2> / dev / null、|&、&> / dev/nullと>/dev / null 2>&1の違いは?

  3. Sudo Su –とSudo Su —の違いは何ですか?

  1. EotとEofの違いは?

  2. [0-9]、[[:digit:]]とDの違いは?

  3. GtkとQtアプリケーションの違いは?

  1. ブロックサイズとクラスターサイズの違いは?

  2. 配管とコマンド拡張の違いは?

  3. Sudoユーザーとrootユーザーの違いは?