Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Cygwin

From Wikipedia, the free encyclopedia
Unix-like environment for Windows

Cygwin
Running Cygwin, includingCygwin/X, underWindows XP
Original authorsSteve Chamberlain,Cygnus Solutions
DevelopersCygnus Solutions,Red Hat, Cygwin project volunteers
Initial releaseOctober 18, 1995; 30 years ago (1995-10-18)
Stable release
3.6.5-1[1] Edit this on Wikidata / 9 October 2025; 50 days ago (9 October 2025)
Repository
Written inC/C++
Operating systemMicrosoft Windows
TypePOSIX standard utilities,POSIX standard library,C standard library,compatibility layer
LicenseGPLv3,LGPLv3[2]
Websitecygwin.com Edit this on Wikidata

Cygwin (/ˈsɪɡwɪn/SIG-win)[3] is afree and open-sourceUnix-likeenvironment andcommand-line interface (CLI) forMicrosoft Windows. The project also provides a software repository containingopen-source packages. Cygwin allowssource code forUnix-like operating systems to be compiled and run on Windows. Cygwin provides native integration of Windows-based applications.

Theterminal emulatormintty is the default command-line interface provided to interact with the environment. The Cygwin installation directory layout mimics theroot file system of Unix-like systems, with directories such as/bin,/home,/etc,/usr, and/var.

Cygwin is released under theGNU Lesser General Public License version 3.[4] It was originally developed byCygnus Solutions,[5][6] which was later acquired byRed Hat (now part ofIBM), to port the GNUtoolchain toWin32, including theGNU Compiler Suite. Rather than rewrite the tools to use the Win32runtime environment, Cygwin implemented aPOSIX-compatible environment in the form of a DLL.[7]

The brand motto is "Get that Linux feeling – on Windows", although Cygwin doesn't have Linux in it.[8]

History

[edit]
icon
This sectionneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources in this section. Unsourced material may be challenged and removed.(January 2024) (Learn how and when to remove this message)

Cygwin began in 1995 as a project of Steve Chamberlain, aCygnus engineer who observed that Windows NT and 95 usedCOFF as theirobject file format, and that GNU already included support forx86 and COFF, and theC librarynewlib. He thought that it would be possible to retargetGCC and produce across compiler generating executables that could run on Windows. A prototype was later developed. Chamberlainbootstrapped the compiler on a Windows system, to emulate Unix to let theGNU configureshell script run.

Initially, Cygwin was calledCygwin32.[6][note 1] WhenMicrosoft registered the trademark Win32, the "32" was dropped to simply becomeCygwin.

In 1999, Cygnus offered Cygwin 1.0 as acommercial product.[9] Subsequent versions have not been released, instead relying on continued open source releases.

Geoffrey Noer was the project lead from 1996 to 1999.[10][11] Christopher Faylor was lead from 1999 to 2004; he left Red Hat and became co-lead with Corinna Vinschen.[12][13] Corinna Vinschen has been the project lead from mid-2014 to date (as of September, 2024).[14]

From June 23, 2016, the Cygwin library version 2.5.2 was licensed under theGNU Lesser General Public License (LGPL) version 3.[15]

Description

[edit]

Cygwin is provided in two versions: the full64-bit version and a stripped-down32-bit version, whose final version was released in 2022.[16] Cygwin consists of a library that implements thePOSIX system callAPI in terms of Windows system calls to enable the running of a large number of application programs equivalent to those onUnix systems, and aGNU development toolchain (includingGCC andGDB). Programmers have ported theX Window System,K Desktop Environment 3,GNOME,[17]Apache, andTeX. Cygwin permits installinginetd,syslogd,sshd,Apache, and other daemons as standardWindows services. Cygwin programs have full access to theWindows API and other Windows libraries.

Cygwin programs are installed by running Cygwin's "setup"[18] program, which downloads them from repositories on the Internet.

The Cygwin API library is licensed under the GNU Lesser General Public License version 3 (or later), with an exception to allow linking to anyfree and open-source software whose license conforms to theOpen Source Definition.[19]

Cygwin consists of two parts:

  1. Adynamic-link library in the form of aC standard library that acts as acompatibility layer for the POSIXAPI and
  2. A collection ofsoftware tools and applications that provide a Unix-likelook and feel.[20]

Cygwin supports POSIXsymbolic links, representing them as plain-text files with the system attribute set. Cygwin 1.5 represented them asWindows Explorershortcuts, but this was changed for reasons of performance and POSIX correctness. Cygwin also recognisesNTFS junction points and symbolic links and treats them as POSIX symbolic links, but it does not create them. The POSIX API for handlingaccess control lists (ACLs) is supported.[21]

Technical details

[edit]

A Cygwin-specific version of the Unixmount command allows mounting Windows paths as "filesystems" in the Unix file space. Initial mount points can be configured in/etc/fstab, which has a format very similar to Unix systems, except that Windows paths appear in place of devices. Filesystems can be mounted in binary mode (by default), or in text mode, which enables automaticconversion betweenLF andCRLF endings (which only affects programs that open files without explicitly specifying text or binary mode).

Cygwin 1.7 introduced comprehensive support for POSIXlocales, and theUTF-8Unicode encoding became the default.

Thefork system call for duplicating a process is fully implemented, but thecopy-on-write optimization strategy could not be used.[22][23][24]

Cygwin's default user interface is thebash shell running in themintty terminal emulator.[25] The DLL also implementspseudo terminal (pty) devices, and Cygwin ships with a number ofterminal emulators that are based on them, includingrxvt/urxvt andxterm. The version of GCC that comes with Cygwin has various extensions for creating Windows DLLs, such as specifying whether a program is a windowing or console-mode program. Support for compiling programs that do not require the POSIX compatibility layer provided by the Cygwin DLL used to be included in the default GCC, but as of 2014[update], it is provided by cross-compilers contributed by theMinGW-w64 project.

Software packages

[edit]

Cygwin's base package selection is approximately 100MB,[26] containing thebash (interactive user) anddash (installation)shells and the core file and text manipulation utilities. Additional packages are available as optional installs from within the Cygwin "setup" program and package manager ("setup-x86_64.exe" – 64 bit).[27] The Cygwin Ports project provided[when?] additional packages that were not available in the Cygwin distribution itself. Examples includedGNOME,K Desktop Environment 3,MySQL database, and thePHP scripting language. Most ports have been adopted by volunteer maintainers as Cygwin packages, and Cygwin Ports are no longer maintained. Cygwin ships withGTK+ andQt.

TheCygwin/X project allows graphicalUnix programs to display their user interfaces on the Windows desktop for both local and remote programs.

See also

[edit]

Notes

[edit]
  1. ^Not to be confused with the currentGnuWin32 project.

References

[edit]
  1. ^"cygwin 3.6.5-1". October 9, 2025. RetrievedOctober 29, 2025.
  2. ^"Cygwin Licensing Terms".Archived from the original on July 28, 2012. RetrievedDecember 15, 2022.
  3. ^Hall, Larry (September 14, 2004)."Re: How do you pronounce it?".Cygwin (Mailing list).Archived from the original on August 30, 2011. RetrievedOctober 10, 2007.
  4. ^"Cygwin library now available under GNU Lesser General Public License".Red Hat.Archived from the original on June 24, 2016. RetrievedJune 23, 2016.
  5. ^"A brief history of the Cygwin project".Cygwin. February 2, 2018.Archived from the original on January 8, 2020. RetrievedJanuary 10, 2020.
  6. ^ab"Cygwin32: A Free Win32 Porting Layer for UNIX Applications".USENIX. August 3, 1998.Archived from the original on January 11, 2020. RetrievedJanuary 10, 2020.
  7. ^"(Solved) Linux Subsystem vs Cygwin vs MobaXterm".Tech Help Forum by How-To Geek. January 24, 2017.Archived from the original on February 20, 2023. RetrievedMarch 15, 2019.
  8. ^"Cygwin".www.cygwin.com. RetrievedMarch 11, 2024.
  9. ^"Cygwin Unites Unix and Windows Apps".Google Books. November 15, 1999.Archived from the original on February 20, 2023. RetrievedJanuary 13, 2020.
  10. ^Delorie, DJ (February 17, 1999)."fyi: who does what".Cygwin (Mailing list).Archived from the original on February 14, 2004. RetrievedJanuary 13, 2020.
  11. ^Noer, Geoffrey (February 19, 1999)."A partial goodbye..."Cygwin (Mailing list).Archived from the original on February 2, 2004. RetrievedJanuary 13, 2020.
  12. ^Faylor, Christopher (March 31, 2004)."Changing jobs".Cygwin (Mailing list).Archived from the original on September 6, 2015. RetrievedJanuary 13, 2020.
  13. ^Faylor, Christopher (July 31, 2014)."Christopher Faylor – Withdrawing from the project".Cygwin (Mailing list).Archived from the original on December 17, 2014. RetrievedMay 2, 2015.
  14. ^"Cygwin Notables".www.cygwin.com. RetrievedSeptember 10, 2024.
  15. ^"Cygwin library now available under GNU Lesser General Public License".www.redhat.com.Archived from the original on June 16, 2021. RetrievedMay 27, 2021.
  16. ^Turney, Jon (November 25, 2022)."Cygwin x86 end-of-life". RetrievedSeptember 14, 2023.
  17. ^"Cygwin Ports".Archived from the original on May 11, 2015. RetrievedMay 2, 2015.
  18. ^Delorie, DJ (April 17, 2000)."New Cygwin Net Release".Cygwin (Mailing list).Archived from the original on December 20, 2014. RetrievedJanuary 10, 2020.
  19. ^"What are the licensing terms?".Cygwin.Archived from the original on July 28, 2012.
  20. ^"Cygwin FAQ".cygwin.com.Archived from the original on May 7, 2021. RetrievedJanuary 7, 2021.
  21. ^Vinschen, Corinna (January 16, 2016)."Updated: Cygwin 2.4.0-1".Cygwin Announcements (Mailing list).Archived from the original on January 11, 2020. RetrievedJanuary 11, 2020.
  22. ^"Cygwin FAQ: How is fork() implemented?".cygwin.com.Archived from the original on October 20, 2010. RetrievedOctober 10, 2010.
  23. ^"Highlights of Cygwin Functionality: Process Creation".Archived from the original on December 30, 2014. RetrievedDecember 24, 2014.
  24. ^Blake, Eric (January 15, 2009)."Bash doesn't launch the applications directly".Cygwin (Mailing list).Archived from the original on June 13, 2011. RetrievedOctober 10, 2010.
  25. ^"Chapter 2: Setting Up Cygwin".cygwin.com. RetrievedMarch 17, 2025.
  26. ^"Installing and Updating Cygwin Packages".Cygwin.Archived from the original on January 10, 2020. RetrievedJanuary 11, 2020.
  27. ^"Cygwin Package List".Cygwin.Archived from the original on February 5, 2016. RetrievedJanuary 11, 2020.

External links

[edit]
Wikibooks has more on the topic of:Cygwin
General
Software
packages
Community
Organisations
Licenses
Types and
standards
Challenges
Related
topics
UnixWindows interoperability
Unix-like subsystems
Development environments and shells
Ports of Unix-like utilities for Windows
Windows runtime environments for*nix
Platform virtualization software
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=Cygwin&oldid=1312407321"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp