Cygwin

Cygwin ist eine Unix ähnliche Umgebung und Schnittstelle der Befehl-Linie für Windows von Microsoft. Cygwin stellt heimische Integration von Windows-basierten Anwendungen, Daten und anderen Systemmitteln mit Anwendungen, Softwarewerkzeugen und Daten der Unix ähnlichen Umgebung zur Verfügung. So ist es möglich, Windows-Anwendungen von der Umgebung von Cygwin zu starten, sowie Werkzeuge von Cygwin und Anwendungen innerhalb von Windows Betriebszusammenhang zu verwenden.

Cygwin besteht aus zwei Teilen: Eine Bibliothek der dynamischen Verbindung (DLL) als eine API-Vereinbarkeitsschicht, die einen wesentlichen Teil der POSIX API-Funktionalität und eine umfassende Sammlung von Softwarewerkzeugen und Anwendungen zur Verfügung stellt, die einen Unix ähnlichen Blick und Gefühl zur Verfügung stellen.

Cygwin wurde durch Cygnus Lösungen ursprünglich entwickelt, der später durch den Roten Hut erworben wurde. Es ist freie und offene Quellsoftware, die unter der GNU-Lizenzversion 3 der Breiten Öffentlichkeit veröffentlicht ist. Heute wird es von Angestellten des Roten Huts, NetApp und vieler anderer Freiwilliger aufrechterhalten.

Beschreibung

Cygwin besteht aus einer Bibliothek, die die POSIX Systemanruf-API in Bezug auf Win32 Systemanrufe, eine GNU-Entwicklung toolchain (einschließlich GCC und GDB) durchführt, um Softwareentwicklung und eine Vielzahl von Anwendungsprogrammen zu erlauben, die zu denjenigen auf Systemen von Unix gleichwertig sind. Viele Unix, GNU, BSD und Programme von Linux und Pakete sind zu Cygwin, einschließlich des X Fenstersystems, KDE, ZWERGS, Apachen und TeX getragen worden. Cygwin erlaubt, inetd, syslogd, sshd, Apachen und andere Dämonen als Standardwindows-Dienstleistungen zu installieren, Windows-Systemen von Microsoft erlaubend, mit Servern von Unix und Linux wettzueifern.

Programme von Cygwin werden durch das Laufen des "Einstellungs"-Programms von Cygwin installiert, das das notwendige Programm und die Eigenschaft-Paket-Dateien von Behältnissen im Internet herunterlädt. Einstellung kann installieren, aktualisieren, und Programme und ihre Quellcodepakete entfernen. Eine ganze Installation wird über 11.5 GB des Festplatte-Raums nehmen, aber verwendbare Konfigurationen können nur 1 oder 2 GBs verlangen.

Anstrengungen, Konzepte beizulegen, die sich zwischen Unix und Windows-Systemen unterscheiden, schließen ein:

  • Eine Cygwin-spezifische Version des Befehls des Bergs Unix erlaubt Windows-Pfaden, als "filesystems" im Dateiraum von Unix bestiegen zu werden. Anfängliche Gestell-Punkte können darin konfiguriert werden, der ein sehr ähnliches Format als auf Systemen von Unix hat, außer dass Windows-Pfade im Platz von Geräten erscheinen. Filesystems kann in der binären Weise (standardmäßig), oder in der Textweise bestiegen werden, die automatische Konvertierung zwischen LF und CRLF Enden ermöglicht (der nur Programme betrifft, die Dateien öffnen, ohne Text oder binäre Weise ausführlich anzugeben).
  • Cygwin 1.7 hat umfassende Unterstützung für POSIX Schauplätze und viele Charakter encodings eingeführt, wodurch der UTF-8 Unicode Verschlüsselung der Verzug geworden ist. Windows-Dateinamen und andere Bezeichner, die als UTF-16 verschlüsselt werden, werden zu und von der ausgewählten Charakter-Verschlüsselung automatisch umgewandelt.
  • Briefe der Windows Drive werden zu einem speziellen Verzeichnis kartografisch dargestellt, so zum Beispiel erscheint wie. Das Präfix kann geändert werden. Windows-Netzpfade der Form werden dazu kartografisch dargestellt. Windows-Pfade können auch direkt aus Programmen von Cygwin verwendet werden, aber viele Programme unterstützen sie richtig nicht, folglich wird das entmutigt.
  • Voll gezeigt und Dateisysteme werden zur Verfügung gestellt. stellt direkten filesystem Zugang zur Registrierung zur Verfügung.
  • POSIX symbolische Verbindungen werden unterstützt. Sie werden als Klartext-Dateien mit dem Systemattribut-Satz vertreten. Cygwin 1.5 hat sie als Windows-Forscher-Abkürzungen vertreten, aber das ist aus Gründen der Leistung und POSIX Genauigkeit geändert worden. Cygwin erkennt auch NTFS Verbindungspunkt-Punkte und symbolische Verbindungen und behandelt sie als POSIX symbolische Verbindungen, aber es schafft sie nicht, weil ihre Semantik nicht völlig POSIX-entgegenkommend ist.
  • Die Solaris API, um Zugriffsberechtigungslisten (ACLs) zu behandeln, wird unterstützt und stellt zu Windows NT ACL System kartografisch dar.
  • Spezielle Formate dessen und sind vorausgesetzt, dass Zeigestöcke zu Windows gleichwertiger SIDs (im GECOS Feld) einschließen Sie, berücksichtigend zwischen Unix und Windows-Benutzern und Gruppen kartografisch darzustellen.
  • Der Gabel-Systemaufruf nach dem Kopieren eines Prozesses wird völlig durchgeführt, aber es stellt gut zur Windows-API nicht kartografisch dar. Zum Beispiel konnte die copy-write Optimierungsstrategie nicht verwendet werden. Infolgedessen ist die Gabel von Cygwin im Vergleich zu Linux und anderen ziemlich langsam. (Der oben häufig durch das Ersetzen des Gebrauches der fork/exec Technik mit Anrufen zu den Laich-Funktionen vermieden werden kann, die im mit Windows spezifischen process.h Kopfball erklärt sind).
  • Der Cygwin DLL enthält einen Konsole-Treiber, der mit einem Unix-artigen Terminal innerhalb der Windows-Konsole wetteifert. Die Verzug-Benutzerschnittstelle von Cygwin ist die Schale des heftigen Schlags, die in der Konsole von Cygwin läuft.
  • Der DLL führt auch Pseudoterminal (pty) Geräte durch. Schiffe von Cygwin mit mehreren Endemulatoren, die auf ihnen, einschließlich mintty, rxvt (-unicode), und xterm basieren. Diese sind mit Endstandards von Unix und Benutzerschnittstelle-Vereinbarung mehr entgegenkommend als die Konsole von Cygwin, aber sind weniger passend, um Windows-Konsole-Programme zu führen.
  • Verschiedene Dienstprogramme werden zur Verfügung gestellt, um sich zwischen Windows und Pfaden von Unix und Dateiformaten umzuwandeln, um Linie zu behandeln, die (CRLF/LF) Probleme beendet, für den DLLs zu zeigen, dass ein rechtskräftiger mit usw. verbunden wird.
  • Abgesondert von immer dem verbinden gegen den Cygwin DLL sind Cygwin executables normales Windows executables. Das bedeutet, dass Programme von Cygwin vollen Zugang zur Windows-API und den anderen Windows-Bibliotheken haben, der allmähliches Halten nach Backbord von Programmen von einer Plattform bis den anderen erlaubt. Programmierer müssen wirklich sorgfältig sein, obwohl über das Mischen des Widersprechens POSIX und Windows fungieren.

Die Version von gcc, der mit Cygwin kommt, hat verschiedene Erweiterungen, um Windows DLLs zu schaffen, angebend, ob ein Programm eine Fenstertechnik oder Konsole-Weise-Programm ist, Mittel, usw. Unterstützung hinzufügend, um Programme zu kompilieren, die nicht verlangen, dass die POSIX Vereinbarkeitsschicht, die durch den Cygwin DLL zur Verfügung gestellt ist, gepflegt hat, in den Verzug gcc eingeschlossen zu werden, aber jetzt durch böse durch das MinGW-W64-Projekt beigetragene Bearbeiter zur Verfügung gestellt wird.

Cygwin wird schwer verwendet, um viele populäre Stücke der Software zur Windows-Plattform zu tragen. Es wird verwendet, um Sonne Java, OpenOffice.org, LibreOffice und sogar Webserver-Software, wie Lighttpd, Hiawatha zu kompilieren.

Roter Hut lizenziert normalerweise die Bibliothek von Cygwin unter der GNU-Lizenzversion 2 der Breiten Öffentlichkeit mit einer Ausnahme, um zu erlauben, sich zu jeder freien und offenen Quellsoftware zu verbinden, deren sich Lizenz der Definition des Open Sources anpasst. Roter Hut verkauft auch kommerzielle Lizenzen denjenigen, die Programme neu verteilen möchten, die die Bibliothek von Cygwin unter Eigentumsbegriffen verwenden.

Geschichte

Cygwin hat 1995 als ein Projekt von Steve Chamberlain, einem Ingenieur von Cygnus begonnen, der bemerkt hat, dass Windows NT und 95 COFF als ihr Gegenstand-Dateiformat verwendet hat, und dass GNU bereits Unterstützung für x86 und COFF und die C Bibliothek newlib eingeschlossen hat. Er hat gedacht, dass es möglich sein würde, GCC ins Visier wiederzunehmen und einen bösen Bearbeiter zu erzeugen, der executables erzeugt, der auf Windows laufen konnte. Das hat sich tatsächlich praktisch erwiesen, und ein Prototyp wurde schnell entwickelt.

Der nächste Schritt sollte versuchen, den Bearbeiter auf einem Windows-System zu urladen, genügend Wetteifer von Unix verlangend, das GNU geführte Schale-Schrift konfigurieren zu lassen. Ein Bach der mit der Schale vereinbare Befehl-Dolmetscher, wie heftiger Schlag, war erforderlich und der Reihe nach ein Gabel-Systemanruf-Wetteifer und normaler Eingang/Produktion. Windows schließt ähnliche Funktionalität ein, so musste die Bibliothek von Cygwin gerade eine POSIX-vereinbare Anwendung, Schnittstelle programmierend (API) zur Verfügung stellen und richtig Anrufe übersetzen und private Versionen von Daten wie Dateideskriptoren führen.

Am Anfang wurde Cygwin gnuwin32 genannt (um mit dem GnuWin32 aktuellen Projekt nicht verwirrt zu sein). Der Name wurde ausser Cygwin32 geändert, um die Rolle von Cygnus im Schaffen davon zu betonen. Als Microsoft die Handelsmarke Win32 eingeschrieben hat, wurden die 32 gefallen einfach werden Cygwin.

Vor 1996 hatten sich andere Ingenieure angeschlossen, weil es klar war, dass Cygwin eine nützliche Weise sein würde, die eingebetteten Werkzeuge von Cygnus zur Verfügung zu stellen, die auf Windows-Systemen veranstaltet sind (die vorherige Strategie war gewesen, DJGPP zu verwenden). Es war besonders attraktiv, weil es möglich war zu tun, quer-kompiliert ein dreiseitiger, um zum Beispiel einen kräftigen Sonne-Arbeitsplatz zu verwenden, um sagen wir, einen Windows-x-MIPS Quer-Bearbeiter zu bauen, der schneller war als das Verwenden des PCs zurzeit. 1999 hat Cygnus Cygwin 1.0 als ein kommerzielles Produkt von Interesse in seinem eigenen Recht angeboten, obwohl nachfolgende Versionen nicht veröffentlicht worden sind, stattdessen sich auf fortlaufende offene Quellausgaben verlassend.

Geoffrey Noer war die Projektleitung von 1996-1998. Christopher Faylor ist die Projektleitung seit 1998 gewesen. Corinna Vinschen ist Co-Leitung seit Anfang 2004 geworden, als Faylor Roten Hut verlassen hat.

Eigenschaften

Die Verzug-Paket-Auswahl von Cygwin ist ziemlich minimal, ein wenig mehr enthaltend, als die Schale des heftigen Schlags und die einer Befehl-Linie von Unix erwarteten Kerndateimanipulationsdienstprogramme. Eine breite Reihe von zusätzlichen Paketen ist verfügbar, weil fakultativ im Paket-Betriebsleiter von Cygwin ("setup.exe") installiert. Diese schließen (unter viel sonst) ein:

Das Cygwin/X-Projekt trägt eine Durchführung des X Fenstersystems bei, das grafischen Programmen von Unix erlaubt, ihre Benutzerschnittstellen auf der Windows-Arbeitsfläche zu zeigen. Das kann sowohl mit lokalen als auch entfernten Programmen verwendet werden. Schiffe von Cygwin mit einer ziemlich kleinen Anzahl von X Anwendungen, zum Beispiel:

  • Terminals: rxvt-unicode, xterm
  • Redakteure: Emacs-X11, gvim
  • Textverarbeiter/Zuschauer: LyX, xpdf, xdvi

Zusätzlich zur auf niedriger Stufe Bibliothek von Xlib, um X Anwendungen, Cygwin auch Schiffe mit dem verschiedenen höheren Niveau und der Quer-Plattform GUI Fachwerk, einschließlich Gtk + und Qt zu entwickeln.

Das Cygwin Hafen-Projekt stellt viele zusätzliche Pakete zur Verfügung, die im Vertrieb von Cygwin selbst nicht verfügbar sind. Beispiele schließen den ZWERG und die KDE Tischumgebungen sowie die Datenbank von MySQL und den PHP scripting Sprache ein.

Alternativen

Mehrere offene Quelle und Eigentumsalternativen sind für den Parallelzugriff sowohl für Windows als auch für UNIX Umgebungen auf derselben Hardware verfügbar.

Toolsets wie Microsoft Windows Services für UNIX (SFU), UWIN, MKS Werkzeug für Unternehmensentwickler und Schale von Hamilton C haben auch zum Ziel, einem Unix ähnlichen Benutzer und Entwicklungsumgebung zur Verfügung zu stellen. Sie führen mindestens eine Schale und eine Reihe die populärsten Dienstprogramme durch. Die meisten schließen die vertrauten Entwicklungswerkzeuge von GNU und/oder Unix ein, einschließlich, machen yacc, lex und ein Cc-Befehl, der ein Streifband um einen unterstützten C Bearbeiter handelt. SFU schließt auch den GCC Bearbeiter ein.

MinGW ist ein heimischer Softwarehafen von GNU Compiler Collection (GCC) zu Windows von Microsoft, zusammen mit einer Reihe frei verteilbarer Importbibliotheken und Kopfball-Dateien für die Windows-API. MinGW erlaubt Entwicklern, geborenen Microsoft Windows applications zu schaffen. Außerdem stellt ein Bestandteil von MinGW bekannt als MSYS (Minimales System), der aus Version 1.3.3 von Cygwin abgeleitet wurde, eine minimale Unix ähnliche Schale-Umgebung einschließlich des heftigen Schlags und einer Auswahl an POSIX Werkzeugen zur Verfügung, die genügend sind, um autoconf Schriften zu ermöglichen, zu laufen.

Außerdem gibt es zahlreiche Virtualisierungslösungen, die x86 Plattform-Virtualisierung zur Verfügung stellen, um Windows und Unix ähnliche Betriebssysteme gleichzeitig auf derselben Hardware zu führen, aber ohne die Integration der Umgebungen, die Cygwin zur Verfügung stellt. Einige, wie VirtualBox und VMware Spieler laufen auf Windows und Gastgebern von Linux und können viele andere Betriebssysteme führen. Konsumverein führt Linux (in kurzem coLinux) einen vollen, aber hat Kern von Linux wie ein Fahrer unter Windows modifiziert, effektiv Windows und Linux zwei Koroutinen mit dem Konsumverein machend, der stark mehrbeansprucht, um zwischen ihnen umzuschalten.

Winelib, ein Teil des Wein-Projektes, ist das Gegenteil von Cygwin - es ist eine freie und offene Quellvereinbarkeitsschicht für Unix ähnliche Betriebssysteme auf dem x86 oder der x86-64 Architektur, die für Windows von Microsoft geschriebenen Programmen erlauben kann, auf Unix ähnlichen Betriebssystemen zu laufen. Verschieden von Cygwin, der verlangt, "Bauen Sie Ihre Anwendung von der Quelle wieder auf, wenn Sie wollen, dass es auf Windows", die vollen Wein-Produktunterstützungen läuft, die unmodifizierte Windows-Dualzahlen durchführen.

Siehe auch

  • Konsumverein Linux
  • Cygwin/X (X11 für Cygwin)
  • Interix
  • MinGW (Minimalist-GNU für Windows)
  • mintty (Terminal von Cygwin)
  • UWIN

Links


CRESU Experiment / Corinth
Impressum & Datenschutz