Cygwin

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Cygwin
Cygwin-logo.png
Cygwin X11 rootless WinXP.png

Unix-Wrapper-API für Windows
Basisdaten
Maintainer Red Hat
Aktuelle Version 1.7.28
(4. Februar 2014)
Betriebssystem Microsoft Windows
Kategorie API-Wrapper
Lizenz GPL und proprietär
Deutschsprachig nein
www.cygwin.com

Mit Cygwin [ˈsɪɡwɪn] lassen sich Programme, die üblicherweise unter POSIX-Systemen wie GNU/Linux, BSD und Unix laufen, auf Microsoft Windows portieren. Es ist eine Kompatibilitätsschicht, die die Unix-API für verschiedene Versionen von Microsoft Windows zur Verfügung stellt, auf deren Basis eine Vielzahl von Programmen aus der Unix-Welt unter Microsoft Windows übersetzt werden können.

Mittels Cygwin portierte Programme laufen unter Windows NT, Windows 2000, Windows XP, Windows Vista, Windows Server 2003 und seit Version 1.7 auch unter Windows 7 und Windows Server 2008. Berichten zufolge[1] ist für einen erfolgreichen Betrieb unter Windows 8 eine manuelle Korrektur der Konfiguration erforderlich. In älteren Versionen laufen auch Programme unter Windows 9x.

Cygwin wurde ursprünglich von der Firma Cygnus Solutions programmiert und seit deren Übernahme durch die Softwarefirma Red Hat erfolgt dort die Weiterentwicklung.

Funktionsweise[Bearbeiten]

Kern von Cygwin ist die so genannte Cygwin-DLL (cygwin1.dll), eine Dynamic Link Library, die Unix-APIs zur Verfügung stellt. Die APIs der Cygwin-DLL bilden das Pendant zu den System Calls unter Unix. Die mit Cygwin portierten Programme sind normalerweise nicht alleine lauffähig, da sie gegen die Cygwin-DLL gelinkt werden und somit von dieser abhängig sind.

Funktionalitäten[Bearbeiten]

Es gibt mit Cygwin/X auch eine Portierung des X.Org-Servers auf die Cygwin-Umgebung, so dass unter Microsoft Windows ein kompletter X-Server bereitsteht.

In dem Programmpaket Cygwin/X ist Cygwin enthalten.

Durch den portierten X-Server ist es möglich, entweder UNIX/Linux-Programme, die für Windows kompiliert wurden, lokal auf dem Windows-Rechner auszuführen (Ausführen von startxwin.bat), oder aber Programme, die auf einem Unix- oder Linuxrechner ausgeführt werden, auf Windows darzustellen; auch kann man sich, ausgehend von dem Windows-Rechner, auf dem Unix-Rechner einloggen (Ausführen von startxdmcp.bat).

Dies kann für Privatanwender und Programmierer interessant sein, die Windows und Unix/Linux gleichzeitig einsetzen.

Lokale Partitionen werden mit /cygdrive/c, /cygdrive/d etc. angesprochen. Auf Windows-Freigaben kann mit //host/share/file zugegriffen werden.

Auch ein SSH-Server ist durch Cygwin möglich, der unter Windows als Service installiert werden kann. Häufig wird Cygwin auch genutzt, um Bash-Prozeduren zu programmieren, die dann automatisierte Systemfunktionen erfüllen können. Dazu gehören unter anderem lokale oder entfernte (remote) Datensicherungen (backups) auf andere Unix-Systeme. Eine ähnliche Funktionalität wie Cygwin realisiert mittlerweile auch Microsofts Services-für-Unix-Paket (SFU), das auf dem Interix-System basiert. Microsoft Windows Services for UNIX (SFU) wurde im Zuge der Vista-Einführung in „Subsystem for UNIX-based Applications“ (SUA) umbenannt und ist in den Editionen „Enterprise“ und „Ultimate“ von Vista enthalten.

Geschichte[Bearbeiten]

Cygwin begann im Jahr 1995 als ein Projekt von Steve Chamberlain, einem Cygnus-Entwickler. Ihm war aufgefallen, dass auf PCs mit Intel-x86-CPUs, die Windows NT und Windows 95 als Betriebssystem hatten, in der Regel COFF als Objekt-Dateiformat benutzt wurde. Außerdem war ihm aufgefallen, dass die GNU-Compiler (GCC) bereits Unterstützung für x86 und COFF in Zusammenhang mit der C-Bibliothek newlib boten. Also sollte es, so seine Folgerung, – zumindest in der Theorie – nicht allzu schwierig sein, den GCC neu auszurichten, um damit einen weiteren Cross-Compiler zu schaffen, der dann unmittelbar ausführbare Dateien für die Windows-Plattform lauffähig erzeugt. In der Praxis war die Aufgabe mit einem gewissen Aufwand verbunden, den Chamberlain schließlich erfolgreich meisterte, so dass erste Beispielprogramme erzeugt und getestet werden konnten.

Als Nächstes sollte auch der Compiler selbst dazu gebracht werden, auf einem Windows-System zu laufen; dazu mussten zunächst einige Basiskomponenten der üblichen GNU-Konfiguration, diverse Shell-Skripte sowie die Bash-Shell selbst auf dem Windows-System in einer Emulation lauffähig gemacht werden. Das Win32-API von Windows enthielt bereits zahlreiche sehr ähnliche Funktionen, sodass das Gros der verwendeten Systemaufrufe lediglich angepasst werden musste. Dies mündete in diversen Cygwin-Bibliotheken, sogenannten DLLs, die direkt auf dem Windows-System aufsetzten, aber nach oben hin die für Unix typischen Dienste (APIs) anboten.

Bis 1996 fanden sich einige weitere Entwickler, die sich dem Projekt anschlossen, insbesondere weil langsam klar wurde, dass es sich lohnen könnte, Unix-Anwendungen unter Verwendung der Cygwin-Komponenten für Windows-Systeme anzubieten. (Frühere Unix-zu-Windows Portierungen basierten zumeist auf der Entwicklungsumgebung DJGPP). Etwa 1998 begann Cygnus damit, Cygwin gewinnbringend zu vermarkten. Mittlerweile wird Cygwin als freie Software im Rahmen der GPL angeboten und zugleich unter Federführung von Red Hat weiterentwickelt.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Vineet Gupta: Cygwin permissions bug on Windows 8. 25. Dezember 2012. Abgerufen am 14. April 2013.