Windows の cmd と powershell から Cygwin の Linux プログラムにアクセスする

Windows の cmd と powershell から Cygwin の Linux プログラムにアクセスする

私はしばらくCygwinを使っています。新しいパッケージが必要なときは、セットアップを開いて必要なバージョンを選択すると、セットアップが残りの処理を行います。プログラムはすべてダウンロードされていることに気づきました。C:\cygwin64\bin

bin フォルダ内には、多くの .exe 実行ファイルがあります。これには、diff、find、grep、gzip、vi、vim、whatis、which、who、whoami などが含まれます。私が行ったのは、C:\cygwin64\binユーザーの PATH 変数に追加することです。

これで、上記のすべてのプログラムと、Cygwin 経由でダウンロードして使用するその他のプログラムに、PowerShell と Windows コマンド プロンプトからもアクセスできるようになりました。困惑しています。これらのプログラムはすべて、Cygwin のみで実行するものでしょうか、それとも任意の Windows ターミナルで実行するものでしょうか。これらのプログラムを Cygwin bash ターミナルなしで実行できるのであれば、そもそも Cygwin を使用する意味は何でしょうか。

答え1

Cygwin は、Windows 上で実行可能ファイルとして動作するようにコンパイルされた Linux ツールのコレクションです.exe

これは 説明:

Cygwin は、Unix または Linux アプリケーションを Linux のようなインターフェイスから Microsoft Windows オペレーティング システム (OS) 上でコンパイルして実行できるようにするオープン ソース ツールのコレクションです。Cygwin は、Windows 環境で Linux のようなエクスペリエンスをユーザーに提供します。この機能により、開発者はアプリケーションを Unix または Linux から Windows ベースのシステムに移行でき、Windows プラットフォームで実行されるアプリケーションのサポートが容易になります。

Cygwin ツール コレクションの中心となるのは、cygwin1.dll ダイナミック リンク ライブラリ (DLL) です。DLL は、Portable OS Interface (POSIX) システム コール機能を提供するエミュレーション レイヤーとして機能します。Cygwin ディストリビューションには、X サーバーと完全な X アプリケーション セットに加えて、ほとんどの GNU ツールと多くの Berkeley Software Distribution ツールを含む、多数の無料ツール コレクションも含まれています。

事実上、Cygwin は Linux 由来のコードと Windows API の間のレイヤーです。Cygwin は、使い慣れた Linux 構文を提供しながら、Windows 呼び出しを使用するように変更された Linux ライブラリを提供します。Cygwin には、 によって実装されたランタイム レイヤーがありcygwin1.dll、これが Windows API への変換を行うランタイムです。

統合 Linux 環境をエミュレートするために、この DLL は、すべてのツールとそれぞれのコピーで使用される共有メモリ セグメントを作成しますcygwin1.dll

Cygwin は、WSL などの Linux 仮想環境として機能することを目的としているのではなく、Linux 開発者が使い慣れた環境で Windows 上に Linux プログラムを移植およびテストするためのツールとなることを目的としています。

Cygwin は Linux と Windows の両方のファイル名をサポートしているため、そのユーティリティは Windows のフォルダとファイルで動作します。Windows と Linux にはいくつかの違いがあるため、注意が必要です。たとえば、Cygwin Linux ツールは行末文字として改行を使用しますが、Windows では 2 つの文字を使用します。

すべての Cygwin ツールは.exeWindows 上で実行されるプログラムであり、Windows ツールを使用できる場所であればどこでも使用できます。

参考文献:

関連情報