Cygwin
aus Wikipedia, der freien Enzyklopädie
| Cygwin | |
|---|---|
|
Unix-Emulator für Windows |
|
| Basisdaten | |
| Maintainer: | Red Hat |
| Aktuelle Version: | 1.5.25-15 (14. Juni 2008) |
| Betriebssystem: | Microsoft Windows |
| Kategorie: | Emulator |
| Lizenz: | GPL |
| Deutschsprachig: | nein |
| cygwin.com | |
Cygwin [ˈsɪɡwɪn] ist eine Emulation der Unix-API unter verschiedenen Versionen von Microsoft Windows, auf deren Basis eine Vielzahl von Programmen aus der Unix-Welt unter Microsoft Windows bereitgestellt werden kann. Mit Cygwin lassen sich Programme, die üblicherweise unter POSIX-Systemen wie GNU/Linux, BSD und Unix laufen, auf Microsoft Windows portieren.
Mittels Cygwin portierte Programme laufen unter Windows NT, Windows 2000, Windows XP, Windows Vista und Windows Server 2003. Einige Programme laufen auch unter Windows 95 und Windows 98.
Cygwin wurde ursprünglich von der Firma Cygnus Solutions programmiert und seit deren Übernahme durch die Softwarefirma Red Hat erfolgt dort die Weiterentwicklung.
Inhaltsverzeichnis |
[Bearbeiten] Funktionsweise
Kern von Cygwin ist die so genannte Cygwin DLL (cygwin1.dll). Die Cygwin DLL ist eine Dynamic Link Library und stellt Unix-APIs zur Verfügung. 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 müssen und somit von dieser abhängig sind.
[Bearbeiten] Funktionalitäten
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 compiliert 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“ umbenannt und ist in den Editionen „Business“ und „Ultimate“ von Vista enthalten.
[Bearbeiten] Geschichte
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 bereits Unterstützung für x86 und COFF in Zusammenhang mit der C-Bibliothek newlib boten. Also, so seine Folgerung, sollte es – zumindest in der Theorie – nicht allzu schwierig sein, den Compiler 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.
[Bearbeiten] Siehe auch
- MinGW mit MSYS
- coLinux
- Xming, eine von Cygwin unabhängige X-Implementierung, die sich aus dem Cygwin/X11-Projekt entwickelte
- Winik, eine Cygwin-Distribution

