Cygwin | |
---|---|
Sorts | fri och öppen programvara , Unix-liknande operativsystem , kommandoradsgränssnitt och datorplattform [d] |
Utvecklaren | röd hatt |
Skrivet i | C++ [2] och C [2] |
Operativ system | Microsoft Windows |
Första upplagan | 1995 |
Hårdvaruplattform | Microsoft Windows |
senaste versionen |
|
Licens | GNU GPL 3 [3] |
Hemsida | cygwin.com _ |
Mediafiler på Wikimedia Commons |
Cygwin (uttalas /ˈsɪgwɪn/ ) [4] är en UNIX-liknande miljö och kommandoradsgränssnitt för Microsoft Windows . Cygwin tillhandahåller en tät integration av Windows-applikationer, data och resurser med UNIX-liknande applikationer, data och resurser. Från Cygwin-miljön kan du köra vanliga Windows-program, och du kan även använda Cygwin-verktygen från Windows.
Cygwin består av två delar: ett dynamiskt länkbibliotek ( DLL ) cygwin1.dllsom tillhandahåller API -kompatibilitet och implementerar mycket av POSIX- standarden , och en enorm samling applikationer som tillhandahåller en välbekant UNIX-miljö, inklusive Unix-skalet .
Cygwin utvecklades ursprungligen av Cygnus Solutions , som senare förvärvades av Red Hat . Det är fri programvara publicerad under GNU General Public License version 2. Cygwin utvecklas för närvarande av Red Hat-personal, NetApp och många volontärer. Språk som stöds: C , C++ , Objective-C , Fortran , Gambas , Perl , Python , Ruby , Tcl , Ada , CLISP , Scheme , OCaml , Prolog , Self (Self/x86 [5] ).
Microsoft erbjöd också liknande funktionalitet i sitt Services for UNIX -paket , som inkluderar Interix- undersystemet och Subsystem for UNIX-baserade applikationer (i nyare versioner).
Cygwin är ett verktyg för att porta UNIX-programvara till Windows och är ett bibliotek som implementerar POSIX API baserat på Win32- systemanrop . Dessutom inkluderar Cygwin GNU-utvecklingsverktyg för grundläggande programmeringsuppgifter, såväl som några applikationsprogram som motsvarar UNIX-basprogram. 2001 inkluderade Cygwin X Window System -paketet .
Dessutom innehåller Cygwin MinGW- biblioteket , som låter dig arbeta med Microsoft MSVCRT ( Windows API )-biblioteket; MinGW-biblioteket är mindre krävande på mängden RAM och diskminne, distribuerat under en friare licens och kan fungera med vilken programvara som helst, men POSIX-specifikationens funktionalitet är inte implementerad i det så fullständigt som i Cygwin.
Red Hat implementerar Cygwin-biblioteket under GNU GPL , så det kan endast användas i program som distribueras under GPL. För att distribuera program som använder Cygwin-biblioteket under en annan licens än GPL, måste du köpa en licens från RedHat.
På sidan Cygwin Mailing Lists kan du prenumerera på Cygwin Mailing List.
Cygwin-projektet startades 1995 av Steve Chamberlain , en Cygnus-programmerare, som märkte att Windows NT och Windows 95 använde COFF -formatet som sitt objektfilformat . Vid den tiden hade GNU redan implementerat stöd för x86- arkitekturen , COFF , såväl som newlib C-biblioteket; alltså, åtminstone i teorin, var det inte svårt att skaffa en korskompilator från GCC som skulle producera Windows körbara filer. Detta visade sig vara enkelt i praktiken. Snart dök en prototyp upp.
Nästa steg var att få kompilatorn att fungera på Windows, men detta krävde emulering av många Unix-funktioner: till exempel måste GNU-konfigurationsskriptet fungera . Det här skriptet behöver ett skal som bash , vilket i sin tur kräver standard I/O och gaffelsystemanropet . Windows har liknande funktionalitet, och Cygwin-biblioteket översätter bara anrop från program genom att manipulera vissa typer av data, till exempel filbeskrivningar .
1996 anslöt sig andra programmerare till Cygwin-projektet då det blev uppenbart att Cygwin skulle göra det möjligt att använda Cygnus-verktyg på Windows-system (innan detta var det planerat att använda DJGPP ). Det här alternativet var särskilt attraktivt, eftersom korskompilering kunde göras i tre riktningar: du kunde använda den kraftfulla Sun-stationen för att bygga Windows MIPS -korskompilatorn , vilket gjorde det möjligt att avsevärt spara tid. Sedan 1998 har Cygnus erbjudit Cygwin-paketet som en fristående produkt.
Före version 1.7 hade Cygwin inget Unicode- stöd och använde endast ANSI-versionerna av Win32-funktioner; det fanns inte heller stöd för några andra kodningar än de som var inbyggda i Windows och OEM (till exempel, i den ryska versionen av Windows, fungerade Cygwin bara med CP1251 och CP866 , men inte KOI8-R , ISO 8859-5 , UTF-8 eller någon annan.
Från och med version 1.7 är standardkodningen Unicode i formen UTF-8 och följaktligen används lokalen (lokal på engelska) som standardC.UTF-8 . När du anropar Win32-funktioner översätter Cygwin strängar till UTF-16-kodningen som används på Windows-system . Sedan version 1.7.2 kan Cygwin också hämta viss information från Windows-registret enligt inställningarna för språk och territorium i de regionala inställningarna.
Ett annat problem var att Cygwin-konsolen (som CMD.EXE ) använde OEM-kodningen. För att komma runt denna begränsning rekommenderades det att köra rshd- eller sshd -demonerna i Cygwin och använda en terminalemulator med fullt UTF-8-stöd, såsom PuTTY eller MinTTY (ingår i Cygwin). Från och med version 2.0 använder Cygwin MinTTY som en vanlig konsol, som fungerar i UTF-8-kodning, vilket gör att du kan visa textinformation i UTF-8 direkt. Terminalen översätter också information som matats in från tangentbordet i UTF-8, i enlighet med den nationella layout som används.
I moderna versioner av Cygwin kräver arbete med ryska tecken inga ytterligare inställningar. Kyrilliska tecken stöds i neutrala regionala inställningar LANG=C.UTF-8 , inklusive filnamn, användarnamn och registerdata. Du kan ställa in regionala inställningar för ryska språket LANG=ru_RU.UTF-8. Detta kommer att aktivera ryskspråkiga meddelanden (för vissa program), datum på ryska (LC_TIME) och andra regionala inställningar.