| 原作者 | スティーブ・チェンバレン、シグナス・ソリューションズ |
|---|---|
| 開発者 | Cygnus Solutions、Red Hat、Cygwin プロジェクト ボランティア |
| 初回リリース | 1995年10月18日 |
| 安定版リリース | 3.5.4-1 [1]
/ 2024年8月25日 |
| リポジトリ |
|
| 書かれた | C / C++ 言語 |
| オペレーティング·システム | マイクロソフトウィンドウズ |
| タイプ | POSIX 標準ユーティリティ、POSIX 標準ライブラリ、C 標準ライブラリ、互換性レイヤー |
| ライセンス | GPLv3、LGPLv3 [2] |
| Webサイト | cygwin.com |
Cygwin ( / ˈ s ɪ ɡ w ɪ n / SIG -win ) [3]は、 Microsoft Windows用の無料かつオープンソースの Unix ライクな 環境およびコマンドラインインターフェイス(CLI)です。このプロジェクトでは、多くのオープンソースパッケージを含むソフトウェアリポジトリも提供しています。Cygwin を使用すると、 Unix ライクなオペレーティングシステムのソースコードをWindows 上でコンパイルして実行できます。Cygwin は、Windows ベースのアプリケーションのネイティブ統合を提供します。[4]
端末エミュレータ Minttyは、環境と対話するために提供されるデフォルトのコマンドラインインターフェイス(CLI)です。[ 5 ] Cygwinのインストールディレクトリのレイアウトは、、、、、などのディレクトリを含む、Unix系システムのルートファイルシステムを模倣しています。
/bin/home/etc/usr/var
CygwinはGNU Lesser General Public Licenseバージョン3の下でリリースされています。[6]これはもともとCygnus Solutionsによって開発されましたが、[7] [8]後にRed Hat(現在はIBMの一部)に買収され、 GNUコンパイラスイートを含むGNUツールチェーンをWin32に移植しました。Win32ランタイム環境を使用するためにツールを書き直すのではなく、CygwinはDLLの形式でPOSIX互換環境を実装しました。 [9]
CygwinにはLinuxは含まれていないが、ブランドのモットーは「WindowsでLinuxの感覚を味わおう」である。 [10]
歴史
Cygwin は、Windows NT と 95 がオブジェクト ファイル形式としてCOFF を使用しており、GNU がすでにx86と COFF、およびC ライブラリnewlibをサポートしていることに気づいたCygnusエンジニアの Steve Chamberlain のプロジェクトとして 1995 年に始まりました。彼は、 GCC を再ターゲットして、Windows で実行可能な実行ファイルを生成するクロス コンパイラを作成できると考えました。プロトタイプは後に開発されました。Chamberlain は、 Windows システム上でコンパイラをブートストラップし、Unix をエミュレートしてGNU configureシェル スクリプトを実行できるようにしました。
当初、 Cygwin はgnuwin32と呼ばれていました。[注 1] Microsoft がWin32 という商標を登録したとき、「32」が削除され、単にCygwinになりました。
1999年、CygnusはCygwin 1.0を商用製品として提供しました。[11]その後のバージョンはリリースされておらず、代わりに継続的なオープンソースリリースに依存しています。
ジェフリー・ノアーは1996年から1999年までプロジェクトリーダーを務めた。[12] [13]クリストファー・フェイラーは1999年から2004年までリーダーを務め、その後レッドハットを離れ、コリーナ・ヴィンシェンと共同リーダーとなった。[14] [15]コリーナ・ヴィンシェンは2014年半ばから現在まで(2024年9月現在)プロジェクトリーダーを務めている。[16]
2016年6月23日より、Cygwinライブラリバージョン2.5.2はGNU Lesser General Public License (LGPL)バージョン3に基づいてライセンスされました。 [17]
説明
Cygwinには、完全な64ビット版と、機能制限された32ビット版の2つのバージョンが用意されており、最終バージョンは2022年にリリースされました。[18] Cygwinは、POSIXシステムコールAPIをWindowsシステムコールとして実装し、 Unixシステムと同等の多数のアプリケーションプログラムを実行できるようにするライブラリと、GNU開発ツールチェーン(GCCとGDBを含む)で構成されています。プログラマーは、X Window System、Kデスクトップ環境3、GNOME、[19] Apache、TeXを移植しています。Cygwinでは、 inetd、syslogd、sshd、Apache、その他のデーモンを標準のWindowsサービスとしてインストールできます。Cygwinプログラムは、 Windows APIおよびその他のWindowsライブラリに完全にアクセスできます。
Cygwinプログラムは、Cygwinの「setup」 [20]プログラムを実行してインターネット上のリポジトリからダウンロードすること によってインストールされます。
Cygwin APIライブラリは、GNU Lesser General Public Licenseバージョン3(またはそれ以降)に基づいてライセンスされていますが、オープンソース定義に準拠したライセンスを持つフリーおよびオープンソースソフトウェアへのリンクを許可するという例外があります。[21]
Cygwin は次の 2 つの部分で構成されています。
- POSIX APIの互換性レイヤーとして機能するC標準ライブラリ形式のダイナミックリンクライブラリであり、
- Unixライクな外観と操作性を提供するソフトウェアツールとアプリケーションのコレクション。[4]
Cygwin は POSIXシンボリックリンクをサポートしており、システム属性が設定されたプレーンテキストファイルとして表現されます。Cygwin 1.5 ではWindows エクスプローラーの ショートカットとして表現されていましたが、パフォーマンスと POSIX の正確さの理由から変更されました。Cygwin はNTFS ジャンクションポイントとシンボリックリンクも認識し、POSIX シンボリックリンクとして扱いますが、作成は行いません。アクセス制御リスト(ACL) を処理するための POSIX API がサポートされています。[22]
技術的な詳細
Cygwin 固有のバージョンの Unixmountコマンドを使用すると、Windows パスを Unix ファイル スペースの「ファイル システム」としてマウントできます。初期マウント ポイントは で設定できます。/etc/fstabこれは、デバイスの代わりに Windows パスが表示される点を除いて、Unix システムと非常によく似た形式です。ファイル システムは、バイナリ モード (既定) またはテキスト モードでマウントできます。テキスト モードでは、LFとCRLF の終了間の自動変換が有効になります(テキスト モードまたはバイナリ モードを明示的に指定せずにファイルを開くプログラムにのみ影響します)。
Cygwin 1.7 では POSIXロケールの包括的なサポートが導入され、UTF-8 Unicodeエンコーディングがデフォルトになりました。
プロセスを複製するためのフォークシステムコールは完全に実装されているが、コピーオンライト最適化戦略は使用できなかった。[23] [24] [25]
Cygwin DLLには、Windows コンソール内でUnix スタイルの端末をエミュレートするコンソール ドライバーが含まれています。Cygwin のデフォルトのユーザー インターフェイスは、Cygwin コンソールで実行されるbashシェルです。DLL は擬似端末(pty) デバイスも実装しています。Cygwin には、mintty、rxvt /urxvt 、xtermなど、それらに基づく多数の端末エミュレーターが付属しています。Cygwin に付属する GCC のバージョンには、プログラムがウィンドウ プログラムかコンソール モード プログラムかを指定するなど、Windows DLL を作成するためのさまざまな拡張機能があります。Cygwin DLL によって提供される POSIX 互換性レイヤーを必要としないプログラムのコンパイルのサポートは、以前はデフォルトの GCC に含まれていましたが、2014 年現在、 MinGW-w64プロジェクトによって提供されたクロスコンパイラーによって提供されています。 [update]
ソフトウェアパッケージ
Cygwin の基本パッケージは約 100MB で、[26] bash (対話型ユーザー) およびdash (インストール)シェルとコアファイルおよびテキスト操作ユーティリティが含まれています。 追加のパッケージは、Cygwin の「セットアップ」プログラムおよびパッケージマネージャー (「setup-x86_64.exe」 – 64 ビット) からオプションのインストールとして利用できます。[27] Cygwin Ports プロジェクトは、Cygwin ディストリビューション自体では利用できない追加のパッケージを提供しました[いつ? ] 。 例としては、 GNOME、K デスクトップ環境 3、MySQLデータベース、PHPスクリプト言語などがあります。 ほとんどのポートはボランティアのメンテナーによって Cygwin パッケージとして採用されており、Cygwin Ports はメンテナンスされなくなりました。 Cygwin にはGTK+とQtが付属しています。
Cygwin /Xプロジェクトを使用すると、グラフィカルUnixプログラムがローカル プログラムとリモート プログラムの両方に対して Windows デスクトップ上にユーザー インターフェイスを表示できるようになります。
参照
- Windows Subsystem for Linux – Windows内でLinuxオペレーティングシステムを提供する機能
注記
- ^現在の GnuWin32プロジェクトと混同しないでください。
参考文献
- ^ “cygwin 3.5.4-1”. 2024年8月25日. 2024年8月27日閲覧。
- ^ 「Cygwin ライセンス条項」。2012 年 7 月 28 日時点のオリジナルよりアーカイブ。2022 年12 月 15 日閲覧。
- ^ Hall, Larry (2004 年 9 月 14 日). 「Re: How do you pronunciation it?」. Cygwin (メーリング リスト). 2011 年 8 月 30 日時点のオリジナルよりアーカイブ。2007 年10 月 10 日閲覧。
- ^ ab “Cygwin FAQ”. cygwin.com . 2021年5月7日時点のオリジナルよりアーカイブ。2021年1月7日閲覧。
- ^ 「Cygwin」。www.cygwin.com。2015年11月21日時点のオリジナルよりアーカイブ。2015年11月21日閲覧。
- ^ 「Cygwin ライブラリが GNU Lesser General Public License の下で利用可能に」。Red Hat。2016年 6 月 24 日時点のオリジナルよりアーカイブ。2016 年6 月 23 日閲覧。
- ^ 「Cygwin プロジェクトの簡単な歴史」Cygwin . 2018年2月2日。2020年1月8日時点のオリジナルよりアーカイブ。2020年1月10日閲覧。
- ^ 「Cygwin32: UNIX アプリケーション用の無料の Win32 移植レイヤー」。USENIX。1998年8 月 3 日。2020 年 1 月 11 日時点のオリジナルよりアーカイブ。2020年1 月 10 日閲覧。
- ^ 「(解決済み) Linux Subsystem vs Cygwin vs MobaXterm」。How -To Geek による技術ヘルプフォーラム。2017年1月24日。2023年2月20日時点のオリジナルよりアーカイブ。 2019年3月15日閲覧。
- ^ 「Cygwin」。www.cygwin.com 。 2024年3月11日閲覧。
- ^ 「Cygwin Unites Unix and Windows Apps」. Google ブックス. 1999年11月15日. 2023年2月20日時点のオリジナルよりアーカイブ。2020年1月13日閲覧。
- ^ Delorie, DJ (1999年2月17日). 「fyi: who does what」. Cygwin (メーリングリスト). 2004年2月14日時点のオリジナルよりアーカイブ。 2020年1月13日閲覧。
- ^ Noer, Geoffrey (1999年2月19日). 「部分的な別れ…」Cygwin (メーリングリスト). 2004年2月2日時点のオリジナルよりアーカイブ。2020年1月13日閲覧。
- ^ Faylor, Christopher (2004年3月31日). 「転職」. Cygwin (メーリングリスト). 2015年9月6日時点のオリジナルよりアーカイブ。 2020年1月13日閲覧。
- ^ Faylor, Christopher (2014 年 7 月 31 日). 「Christopher Faylor – プロジェクトからの撤退」. Cygwin (メーリング リスト). 2014 年 12 月 17 日時点のオリジナルよりアーカイブ。2015 年5 月 2 日閲覧。
- ^ 「Cygwin Notables」www.cygwin.com . 2024年9月10日閲覧。
- ^ 「Cygwin ライブラリが GNU Lesser General Public License の下で利用可能になりました」。www.redhat.com。2021年 6 月 16 日時点のオリジナルよりアーカイブ。2021 年5 月 27 日閲覧。
- ^ Turney, Jon (2022年11月25日). 「Cygwin x86のサポート終了」. 2023年9月14日閲覧。
- ^ 「Cygwin Ports」。2015年5月11日時点のオリジナルよりアーカイブ。2015年5月2日閲覧。
- ^ Delorie, DJ (2000年4月17日). 「新しいCygwinネットリリース」. Cygwin (メーリングリスト). 2014年12月20日時点のオリジナルよりアーカイブ。 2020年1月10日閲覧。
- ^ 「ライセンス条項は何ですか?」Cygwin。 2012年7月28日時点のオリジナルよりアーカイブ。
- ^ Vinschen, Corinna (2016年1月16日). 「Updated: Cygwin 2.4.0-1」. Cygwin Announcements (メーリングリスト). 2020年1月11日時点のオリジナルよりアーカイブ。 2020年1月11日閲覧。
- ^ 「Cygwin FAQ: fork() はどのように実装されていますか?」cygwin.com。2010 年 10 月 20 日時点のオリジナルよりアーカイブ。2010年10 月 10 日閲覧。
- ^ 「Cygwin の機能のハイライト: プロセスの作成」。2014 年 12 月 30 日時点のオリジナルよりアーカイブ。2014年12 月 24 日閲覧。
- ^ Blake, Eric (2009 年 1 月 15 日). 「Bash はアプリケーションを直接起動しません」. Cygwin (メーリング リスト). 2011 年 6 月 13 日時点のオリジナルよりアーカイブ。2010年10 月 10 日閲覧。
- ^ 「Cygwin パッケージのインストールと更新」。Cygwin。2020年1 月 10 日時点のオリジナルよりアーカイブ。2020年1 月 11 日閲覧。
- ^ 「Cygwin パッケージ リスト」。Cygwin。2016年2 月 5 日時点のオリジナルよりアーカイブ。2020 年1 月 11 日閲覧。
外部リンク
- 公式サイト
