Cygwin | |
---|---|
Típusú | ingyenes és nyílt forráskódú szoftverek , Unix-szerű operációs rendszer , parancssori felület és számítógépes platform [d] |
Fejlesztő | piros kalap |
Beírva | C++ [2] és C [2] |
Operációs rendszer | Microsoft Windows |
Első kiadás | 1995 |
Hardver platform | Microsoft Windows |
legújabb verzió |
|
Engedély | GNU GPL 3 [3] |
Weboldal | cygwin.com _ |
Médiafájlok a Wikimedia Commons oldalon |
A Cygwin (ejtsd: /ˈsɪgwɪn/ ) [4] egy UNIX-szerű környezet és parancssori felület a Microsoft Windowshoz . A Cygwin a Windows-alkalmazások, adatok és erőforrások szoros integrációját biztosítja UNIX-szerű alkalmazásokkal, adatokkal és erőforrásokkal. A Cygwin környezetből normál Windows alkalmazásokat futtathat, és használhatja a Windows Cygwin eszközeit is.
A Cygwin két részből áll: egy dinamikus hivatkozási könyvtárból ( DLL ) cygwin1.dll, amely API -kompatibilitást biztosít, és a POSIX szabvány nagy részét megvalósítja , valamint egy hatalmas alkalmazásgyűjteményből, amelyek ismerős UNIX környezetet biztosítanak, beleértve a Unix shellt is .
A Cygwin-t eredetileg a Cygnus Solutions fejlesztette ki , amelyet később a Red Hat felvásárolt . Ez egy ingyenes szoftver , amelyet a GNU General Public License 2. verziója alatt tettek közzé. A Cygwint jelenleg a Red Hat munkatársai, a NetApp és sok önkéntes fejleszti. Támogatott nyelvek: C , C++ , Objective-C , Fortran , Gambas , Perl , Python , Ruby , Tcl , Ada , CLISP , Scheme , OCaml , Prolog , Self (Self/x86 [5] ).
A Microsoft hasonló funkcionalitást kínált a Services for UNIX csomagban is, amely tartalmazza az Interix alrendszert és a UNIX-alapú alkalmazások alrendszerét (az újabb verziókban).
A Cygwin egy eszköz a UNIX szoftverek Windows rendszerre történő portolására, és egy olyan könyvtár, amely a POSIX API -t Win32 rendszerhívásokon alapul . Ezenkívül a Cygwin tartalmaz GNU fejlesztőeszközöket az alapvető programozási feladatokhoz, valamint néhány, a UNIX alapprogramjaival egyenértékű alkalmazási programot. 2001- ben a Cygwin beépítette az X Window System csomagot .
Ezenkívül a Cygwin tartalmazza a MinGW könyvtárat , amely lehetővé teszi a Microsoft MSVCRT ( Windows API ) könyvtárral való együttműködést; a MinGW könyvtár kevésbé igényes a RAM és a lemezmemória mennyiségét illetően, szabadabb licenc alatt terjesztve és bármilyen szoftverrel működik, de a POSIX specifikáció funkcionalitása nem valósul meg benne olyan teljes mértékben, mint a Cygwinben.
A Red Hat a Cygwin könyvtárat a GNU GPL alatt valósítja meg, így csak a GPL alatt terjesztett programokban használható. A Cygwin könyvtárat nem GPL licenc alatt használó programok terjesztéséhez licencet kell vásárolnia a RedHattól.
A Cygwin levelezőlisták oldalon feliratkozhat a Cygwin levelezőlistára.
A Cygwin projektet 1995-ben Steve Chamberlain , a Cygnus programozója indította el, aki észrevette, hogy a Windows NT és a Windows 95 a COFF formátumot használja objektumfájlformátumként . Addigra a GNU már megvalósította az x86 architektúra , COFF , valamint a newlib C könyvtár támogatását; így, legalábbis elméletben, nem volt nehéz olyan keresztfordítót szerezni a GCC-től , amely Windows futtatható fájlokat hozna létre. Ez a gyakorlatban könnyűnek bizonyult. Hamarosan megjelent a prototípus.
A következő lépés a fordító Windows rendszeren való működése volt, de ehhez számos Unix szolgáltatás emulációja volt szükséges: például a GNU configure szkriptnek működnie kellett . Ennek a szkriptnek szüksége van egy parancsértelmezőre, például a bash -ra , ami viszont szabványos I/O-t és a fork rendszerhívást igényel . A Windows hasonló funkciókkal rendelkezik, és a Cygwin könyvtár csak bizonyos típusú adatok, például fájlleírók manipulálásával fordítja le a programokból érkező hívásokat .
1996- ban más programozók is csatlakoztak a Cygwin projekthez, mivel nyilvánvalóvá vált, hogy a Cygwin lehetővé teszi a Cygnus eszközök használatát Windows rendszereken (ezt megelőzően a DJGPP használatát tervezték ). Ez a lehetőség különösen vonzó volt, mert a keresztfordítást három irányban lehetett végrehajtani: a nagy teljesítményű Sun állomás segítségével megépítették a Windows MIPS keresztfordítóját , amivel jelentős időt takarítottak meg. A Cygnus 1998 óta kínálja a Cygwin csomagot önálló termékként.
Az 1.7-es verzió előtt a Cygwin nem rendelkezett Unicode támogatással , és csak a Win32 funkciók ANSI verzióit használta; a Windowsban és az OEM-ben natív kódolásokon kívül más kódolások sem támogatottak (például a Windows orosz verziójában a Cygwin csak a CP1251 és CP866 kódokkal működött , de a KOI8-R , ISO 8859-5 , UTF-8 ill . bármely más.
Az 1.7-es verziótól kezdődően az alapértelmezett kódolás a Unicode UTF-8 formátumban , és ennek megfelelően a területi beállítás (angol nyelven locale) alapértelmezés szerintC.UTF-8 használatos . A Win32 függvények meghívásakor a Cygwin a karakterláncokat a Windows rendszereken használt UTF-16 kódolásra fordítja . Az 1.7.2-es verzió óta a Cygwin a Windows Registry-ből is tud bizonyos információkat lekérni a regionális beállítások nyelvi és területi beállításai szerint.
Egy másik probléma az volt, hogy a Cygwin konzol (mint a CMD.EXE ) az OEM kódolást használta. Ennek a korlátozásnak a kikerüléséhez javasolt az rshd vagy az sshd démonok Cygwinben való futtatása, és teljes UTF-8 támogatással rendelkező terminálemulátor használata , például PuTTY vagy MinTTY (a Cygwin része). A 2.0-s verziótól kezdve a Cygwin a MinTTY-t használja normál konzolként, amely UTF-8 kódolásban működik, amely lehetővé teszi az UTF-8 szöveges információk közvetlen megjelenítését. A terminál a billentyűzetről bevitt információkat is lefordítja UTF-8-ban, az alkalmazott nemzeti elrendezésnek megfelelően.
A Cygwin modern verzióiban az orosz karakterekkel végzett munka nem igényel további beállításokat. A cirill karakterek semleges regionális beállításokban LANG=C.UTF-8 támogatottak , beleértve a fájlneveket, a felhasználóneveket és a rendszerleíró adatbázis adatait. Megadhatja az orosz nyelvű regionális beállításokat LANG=ru_RU.UTF-8. Ez bekapcsolja az orosz nyelvű üzeneteket (egyes programoknál), az orosz dátumokat (LC_TIME) és más regionális beállításokat.