Cygwin

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 15 maj 2015; kontroller kräver 24 redigeringar .
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).

Beskrivning

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.

Historik

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.

Internationalisering

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.

Arbeta med kyrilliska

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.

Anteckningar

  1. cygwin 3.3.6-1 - 2022.
  2. 1 2 https://www.openhub.net/p/cygwin/analyses/latest/languages_summary
  3. http://cygwin.com/COPYING
  4. Larry Hall. Re: Hur uttalar man det?  (engelska) (14 september 2004). Hämtad 27 april 2010. Arkiverad från originalet 25 augusti 2011.
  5. Self/x86 (nedlänk) . www.gliebe.de. Hämtad 24 december 2016. Arkiverad från originalet 10 juli 2016. 

Se även

Länkar