Cygwin | |
---|---|
Type | gratis og open source software , Unix-lignende operativsystem , kommandolinjegrænseflade og computerplatform [d] |
Udvikler | rød hat |
Skrevet i | C++ [2] og C [2] |
Operativ system | Microsoft Windows |
Første udgave | 1995 |
Hardware platform | Microsoft Windows |
nyeste version |
|
Licens | GNU GPL 3 [3] |
Internet side | cygwin.com _ |
Mediefiler på Wikimedia Commons |
Cygwin (udtales /ˈsɪgwɪn/ ) [4] er et UNIX-lignende miljø og kommandolinjegrænseflade til Microsoft Windows . Cygwin giver tæt integration af Windows-applikationer, data og ressourcer med UNIX-lignende applikationer, data og ressourcer. Fra Cygwin-miljøet kan du køre normale Windows-applikationer, og du kan også bruge Cygwin-værktøjerne fra Windows.
Cygwin består af to dele: et dynamisk linkbibliotek ( DLL ) cygwin1.dll, der giver API- kompatibilitet og implementerer meget af POSIX- standarden , og en enorm samling af applikationer, der giver et velkendt UNIX-miljø, inklusive Unix-skallen .
Cygwin blev oprindeligt udviklet af Cygnus Solutions , som senere blev opkøbt af Red Hat . Det er gratis software udgivet under GNU General Public License version 2. Cygwin udvikles i øjeblikket af Red Hat-medarbejdere, NetApp og mange frivillige. Understøttede sprog: C , C++ , Objective-C , Fortran , Gambas , Perl , Python , Ruby , Tcl , Ada , CLISP , Scheme , OCaml , Prolog , Self (Selv/x86 [5] ).
Microsoft tilbød også lignende funktionalitet i sin Services for UNIX -pakke , som inkluderer Interix -undersystemet og Subsystem for UNIX-baserede applikationer (i nyere versioner).
Cygwin er et værktøj til portering af UNIX-software til Windows og er et bibliotek, der implementerer POSIX API baseret på Win32 -systemkald . Derudover inkluderer Cygwin GNU-udviklingsværktøjer til grundlæggende programmeringsopgaver, samt nogle applikationsprogrammer svarende til UNIX-basisprogrammer. I 2001 inkluderede Cygwin X Window System- pakken .
Derudover indeholder Cygwin MinGW- biblioteket , som giver dig mulighed for at arbejde med Microsoft MSVCRT ( Windows API )-biblioteket; MinGW-biblioteket er mindre krævende for mængden af RAM og diskhukommelse, distribueret under en friere licens og kan fungere med enhver software, men funktionaliteten af POSIX-specifikationen er ikke implementeret i det så fuldt ud som i Cygwin.
Red Hat implementerer Cygwin-biblioteket under GNU GPL , så det kan kun bruges i programmer distribueret under GPL. For at distribuere programmer, der bruger Cygwin-biblioteket under en anden licens end GPL, skal du købe en licens fra RedHat.
På Cygwin Mailing Lists- siden kan du abonnere på Cygwin-mailinglisten.
Cygwin-projektet blev startet i 1995 af Steve Chamberlain , en Cygnus-programmør, som bemærkede, at Windows NT og Windows 95 brugte COFF -formatet som deres objektfilformat . På det tidspunkt havde GNU allerede implementeret understøttelse af x86 -arkitekturen , COFF , såvel som newlib C-biblioteket; således var det i det mindste i teorien ikke svært at få en krydskompiler fra GCC , der kunne producere Windows-eksekverbare filer. Dette viste sig at være nemt i praksis. Snart dukkede en prototype op.
Det næste trin var at få kompilatoren til at fungere på Windows, men dette krævede emulering af mange Unix-funktioner: for eksempel skulle GNU-konfigurationsscriptet virke . Dette script har brug for en shell som bash , som igen kræver standard I/O og gaffelsystemkaldet . Windows har lignende funktionalitet, og Cygwin-biblioteket oversætter kun opkald fra programmer ved at manipulere visse typer data, såsom filbeskrivelser .
I 1996 sluttede andre programmører sig til Cygwin-projektet, da det blev klart, at Cygwin ville gøre det muligt at bruge Cygnus-værktøjer på Windows-systemer (før dette var det planlagt at bruge DJGPP ). Denne mulighed var især attraktiv, fordi krydskompilering kunne udføres i tre retninger: du kunne bruge den kraftfulde Sun-station til at bygge Windows MIPS krydskompileren , hvilket gjorde det muligt at spare tid betydeligt. Siden 1998 har Cygnus tilbudt Cygwin-pakken som et selvstændigt produkt.
Før version 1.7 havde Cygwin ingen Unicode- understøttelse og brugte kun ANSI-versionerne af Win32-funktioner; der var heller ingen understøttelse af andre kodninger end dem, der er hjemmehørende i Windows og OEM (f.eks. i den russiske version af Windows, fungerede Cygwin kun med CP1251 og CP866 , men ikke KOI8-R , ISO 8859-5 , UTF-8 eller enhver anden.
Fra version 1.7 er standardkodningen Unicode i formen UTF-8 , og derfor bruges lokaliteten (locale på engelsk) som standardC.UTF-8 . Når du kalder Win32-funktioner, oversætter Cygwin strenge til UTF-16-kodningen , der bruges på Windows-systemer . Siden version 1.7.2 kan Cygwin også trække nogle oplysninger fra Windows-registreringsdatabasen i henhold til sprog- og områdeindstillingerne i de regionale indstillinger.
Et andet problem var, at Cygwin-konsollen (som CMD.EXE ) brugte OEM-kodningen. For at omgå denne begrænsning blev det anbefalet at køre rshd- eller sshd -dæmonerne i Cygwin og bruge en terminalemulator med fuld UTF-8-understøttelse, såsom PuTTY eller MinTTY (inkluderet med Cygwin). Fra version 2.0 bruger Cygwin MinTTY som en almindelig konsol, som fungerer i UTF-8-kodning, som giver dig mulighed for at vise tekstinformation i UTF-8 direkte. Terminalen oversætter også information indtastet fra tastaturet i UTF-8 i overensstemmelse med det anvendte nationale layout.
I moderne versioner af Cygwin kræver arbejdet med russiske tegn ikke yderligere indstillinger. Kyrilliske tegn understøttes i neutrale regionale indstillinger LANG=C.UTF-8 , herunder filnavne, brugernavne og registreringsdata. Du kan indstille russisksprogede regionale indstillinger LANG=ru_RU.UTF-8. Dette vil aktivere russisksprogede beskeder (for nogle programmer), datoer på russisk (LC_TIME) og andre regionale indstillinger.