Cygwin

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Cygwin
Logo of Cygwin
Cygwin X11 rootless WinXP.png
Windows XP上でのCygwin
作者 シグナスソリューションズ
開発元 シグナスソリューションズレッドハットなど
初版 1995年 (26年前) (1995)
最新版
3.2.0-1 / 2021年3月29日 (8か月前) (2021-03-29)
リポジトリ ウィキデータを編集
プログラミング
言語
C/C++
対応OS Windows
種別 互換レイヤー
ライセンス GNU GPL v3
公式サイト www.cygwin.com
テンプレートを表示

Cygwin(シグウィン)は、Windowsオペレーティングシステム上にUNIXライクな環境を提供する互換レイヤーで、フリーソフトウェアである。手軽にUNIXライクな環境を用意できる点で人気がある。Cygwinをインストールすることで、OSの差を吸収し、Windows上でUNIXのソフトウェア資産を活かすことが可能となる。また、ゲストOSが不要でハードウェア仮想化も一切行わないためインストール手順が簡略化されると共に、軽量に動作する[注釈 1]X Window Systemにも対応し、GUIアプリも動作する。

特徴[編集]

Cygwinは、UNIXを動かすと言うよりも、Windows環境をUNIX風に表現し直すと言った方が正確で、技術的には、仮想マシンではなく互換レイヤーである。従って、UNIX的な操作体系を提供するが、ゲストOSは不要でCPUメモリ周辺機器などのハードウェアの仮想化も行わず、Windowsの機構をシステムコールの変換を行う以外はそのまま利用する。

CygwinではPOSIXに準拠したUNIXカーネルを利用する代わりに、API変換を行ってWindowsカーネルを利用する方式を採っている。その結果として、単一のインストーラーを実行するだけでUNIXライクな環境が用意でき、UNIXに依存したソフトウェアを再コンパイルのみでWindows上に移植することを可能にしている。また、Windowsファイルシステムもそのまま扱うことができるため、Windowsで作成したデータとCygwinで作成したデータを混ぜて処理することが出来る。ランタイムライブラリ「Cygwin1.dll」がAPI変換の中核を成しており、元々のUNIXアプリに対して「Cygwin1.dll」を利用するように動的リンクを行うことでWindowsで動作可能となる。この方法では、単にUNIXのアプリを起動するだけに留まらず、Windowsアプリとのコラボレーションも期待できる。

Cygwin1.dllランタイムライブラリが、POSIXシステムコールと同等の機能を提供しており、それぞれのプログラムはこれを動的にリンクすることでUNIX上とほぼ同じ動作が可能になる。また、このライブラリの存在により、Cygwin用として提供されていない他のUNIX用プログラムのソースコードも、従来の様な大幅な変更無しにWindows用にコンパイルすることが可能である。

ランタイムライブラリにて、Unix System V由来のIPCを利用するアプリケーションのために、サービス(NTサービス)を用意している。現在Cygwinに付属しているPostgreSQLは、このサービスが提供する共有バッファセマフォを利用して動作する。PostgreSQL自身は、バージョン8.0以降ではCygwin依存から脱却し、全面的にWin32ネイティブにソースの書き換えが行われている。

XサーバとしてCygwin/Xが提供されている。

マイクロソフトはWindows Server 2012よりUNIXベースアプリケーション用サブシステムを非推奨とし、代替手段の一つとしてCygwinのPOSIXエミュレーションモードを紹介している[1]

脚注[編集]

[脚注の使い方]

注釈[編集]

  1. ^ 仮想マシンを使わない分、環境全体としてはCPUもメモリもストレージも大きく消費せず軽量になるが、DLLでシステムコールの変換を行っているためか、入出力の速度に問題があるとの指摘もある。

関連項目[編集]

外部リンク[編集]