{"slug": "cygwin", "name": "Cygwin", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 13, "warners": 1, "score": 3.995, "rising": -1.31, "first": "2025-11-02", "latest": "2026-10-31", "why": "I used Cygwin a lot for giving Windows a more refined developer experience.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 8, "compare": 2, "warn": 1}, "spark": [0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I used Cygwin a lot for giving Windows a more refined developer experience.", "kind": "", "icon": false, "domain": null, "github_repo": null, "official_url": "https://www.cygwin.com/", "pricing": "", "aliases": ["Cygwin"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 774385424, "item_id": 48399089, "url": "https://news.ycombinator.com/item?id=48399089", "by": "rbanffy", "date": "2026-06-04", "stance": "recommend", "quote": "I used Cygwin a lot for giving Windows a more refined developer experience.", "excerpt": "I used Cygwin a lot for giving Windows a more refined developer experience. My life would have been miserable otherwise.", "context": "", "use_case": "Unix dev environment on Windows", "switched_from": "", "story": "Coreutils for Windows Overview \u2013 Microsoft Learn"}, {"id": 765783104, "item_id": 47861444, "url": "https://news.ycombinator.com/item?id=47861444", "by": "rahen", "date": "2026-04-22", "stance": "recommend", "quote": "Cygwin was technically the correct approach", "excerpt": "Before WSL, the best ways to run unmodified Linux binaries inside Windows were CoLinux and flinux. http://www.colinux.org/ https://github.com/wishstudio/flinux flinux essentially had the architecture of WSL1, while CoLinux was more like WSL2 with a Linux kernel side-loaded. Cygwin was technically the correct approach: native POSIX binaries on Windows rather than hacking in some foreign Linux plumbing. Since it was me", "context": "", "use_case": "", "switched_from": "", "story": "Windows 9x Subsystem for Linux"}, {"id": 752451601, "item_id": 47028225, "url": "https://news.ycombinator.com/item?id=47028225", "by": "okanat", "date": "2026-02-15", "stance": "recommend", "quote": "the bigger thing that enabled them is indeed Cygwin project since it unlocked the path", "excerpt": "I do appreciate it as a daily user of MSYS2. However the bigger thing that enabled them is indeed Cygwin project since it unlocked the path to build things that are using strict Unix tooling. autoconf, Make, bash etc cannot run under a pure Windows environment. They are too dependent to the underlying system being a Unix. To use pacman, bash and make in MSYS2, you need msys-2.0.dll. Even they cite Cygwin's URL in the", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 765905520, "item_id": 47869095, "url": "https://news.ycombinator.com/item?id=47869095", "by": "kristopolous", "date": "2026-04-22", "stance": "warn", "quote": "It was slow.", "excerpt": "I used cygwin pretty heavily in the late 90s and early 2000s. It was slow. I had scripts that took days to run dealing with some network file management. When I moved them over to linux out of frustration (I think I brought in something like a pentium 90 laptop, gateway solo I think?) they were done in tens of minutes. I'm sure they did the best they could ... it was just really painful to use.", "context": "", "use_case": "", "switched_from": "", "story": "Windows 9x Subsystem for Linux"}]}], "who": [], "tags": [], "use_cases": ["unix dev environment on windows", "unix tools on windows", "unix shell and utilities on windows"], "compared": [{"slug": "msys2", "name": "MSYS2", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "windows-subsystem-for-linux", "name": "Windows Subsystem for Linux", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "mingw", "name": "MinGW", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "linux", "name": "Linux", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47861270", "title": "Windows 9x Subsystem for Linux", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=48372853", "title": "Coreutils for Windows", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47022891", "title": "I Fixed Windows Native Development", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50251070", "title": "Why a program doesn't work when run from a batch file, but works when clicked", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48402137", "title": "OCaml Onboarding: Introduction to the Dune build system", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48396114", "title": "Coreutils for Windows Overview \u2013 Microsoft Learn", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 2}, "2025-12": {}, "2026-01": {"neutral": 2}, "2026-02": {"recommend": 1, "compare": 1}, "2026-03": {"neutral": 1}, "2026-04": {"recommend": 2, "warn": 1}, "2026-05": {}, "2026-06": {"compare": 1, "neutral": 2, "recommend": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {"neutral": 1}}, "quotes": [{"id": 804991713, "item_id": 50311982, "url": "https://news.ycombinator.com/item?id=50311982", "by": "kazinator", "date": "2026-10-31", "stance": "neutral", "quote": "I produced a fork of the Cygwin DLL", "excerpt": "I produced a fork of the Cygwin DLL in which the POSIX chdir() provides this same feature: the \"currently logged drive\" and per-drive current directory. https://www.kylheku.com/cygnal/ It's behind quite a bit; haven't done a rebase in a while. This is just one of the features (Issue 7); the idea is to provide a POSIX run-time for easily porting programs to Windows, but follow the conventions of the Windows environmen", "context": "", "use_case": "", "switched_from": "", "story": "Why a program doesn't work when run from a batch file, but works when clicked"}, {"id": 775322321, "item_id": 48457645, "url": "https://news.ycombinator.com/item?id=48457645", "by": "chris_armstrong", "date": "2026-06-09", "stance": "neutral", "quote": "cygwin is just used for build", "excerpt": "Installing via opam and using the cygwin method is supported and should be working fine (cygwin is just used for build - binaries still just link with mingw). That specific combination (ocaml + mingw) has a known problem with ocamlfind that's still awaiting a new release (see https://github.com/ocaml/ocamlfind/pull/112). ocamlfind underpins quite a bit of the package ecosystem, so this one is annoying, as the mingw w", "context": "", "use_case": "", "switched_from": "", "story": "OCaml Onboarding: Introduction to the Dune build system"}, {"id": 774385424, "item_id": 48399089, "url": "https://news.ycombinator.com/item?id=48399089", "by": "rbanffy", "date": "2026-06-04", "stance": "recommend", "quote": "I used Cygwin a lot for giving Windows a more refined developer experience.", "excerpt": "I used Cygwin a lot for giving Windows a more refined developer experience. My life would have been miserable otherwise.", "context": "", "use_case": "Unix dev environment on Windows", "switched_from": "", "story": "Coreutils for Windows Overview \u2013 Microsoft Learn"}, {"id": 774011457, "item_id": 48375716, "url": "https://news.ycombinator.com/item?id=48375716", "by": "okanat", "date": "2026-06-02", "stance": "neutral", "quote": "They fork Cygwin, put some patches on", "excerpt": "You're conflating MSYS2 with Mingw-w64. MSYS2 installation comes with multiple environments/ABIs and MSYS2 mode is actually a fork of Cygwin. They fork Cygwin, put some patches on and rename the DLL as msys-2.0.dll . Here is the sources for MSYS2 runtime that produces it: https://github.com/msys2/msys2-runtime . To run bash you need termios API, stty, fork, exec and signals (and some other POSIX-specific funtions). D", "context": "", "use_case": "", "switched_from": "", "story": "Coreutils for Windows"}, {"id": 773993264, "item_id": 48374579, "url": "https://news.ycombinator.com/item?id=48374579", "by": "rzzzt", "date": "2026-06-02", "stance": "compare", "quote": "Cygwin executables need cygwin1.dll to run", "excerpt": "Cygwin executables need cygwin1.dll to run while MSYS-based distributions are using Windows APIs directly. One major difference is around process management: in Cygwin fork() is implemented* while MSYS2 packages will need to use whatever the NT kernel provides (i.e. also need to modify the source to build for this target): https://stackoverflow.com/questions/985281/what-is-the-closest-thing-windows-has-to-fork", "context": "", "use_case": "", "switched_from": "", "story": "Coreutils for Windows"}, {"id": 765953826, "item_id": 47872114, "url": "https://news.ycombinator.com/item?id=47872114", "by": "mech422", "date": "2026-04-22", "stance": "recommend", "quote": "", "excerpt": "I used to use LOADLIN.exe - worked pretty, IIRC", "context": "", "use_case": "", "switched_from": "", "story": "Windows 9x Subsystem for Linux"}, {"id": 765905520, "item_id": 47869095, "url": "https://news.ycombinator.com/item?id=47869095", "by": "kristopolous", "date": "2026-04-22", "stance": "warn", "quote": "It was slow.", "excerpt": "I used cygwin pretty heavily in the late 90s and early 2000s. It was slow. I had scripts that took days to run dealing with some network file management. When I moved them over to linux out of frustration (I think I brought in something like a pentium 90 laptop, gateway solo I think?) they were done in tens of minutes. I'm sure they did the best they could ... it was just really painful to use.", "context": "", "use_case": "", "switched_from": "", "story": "Windows 9x Subsystem for Linux"}, {"id": 765783104, "item_id": 47861444, "url": "https://news.ycombinator.com/item?id=47861444", "by": "rahen", "date": "2026-04-22", "stance": "recommend", "quote": "Cygwin was technically the correct approach", "excerpt": "Before WSL, the best ways to run unmodified Linux binaries inside Windows were CoLinux and flinux. http://www.colinux.org/ https://github.com/wishstudio/flinux flinux essentially had the architecture of WSL1, while CoLinux was more like WSL2 with a Linux kernel side-loaded. Cygwin was technically the correct approach: native POSIX binaries on Windows rather than hacking in some foreign Linux plumbing. Since it was me", "context": "", "use_case": "", "switched_from": "", "story": "Windows 9x Subsystem for Linux"}, {"id": 759395570, "item_id": 47462223, "url": "https://news.ycombinator.com/item?id=47462223", "by": "riedel", "date": "2026-03-20", "stance": "neutral", "quote": "", "excerpt": "I am using Windows now for about 20 years after being a FreeBSD user. I switched to Linux actually to be able to interact with my work environment which was using Windows tools (both office but also embedded development tools at the time) and I think virtualization/emulation was a lot easier. After bricking my laptop multiple times while traveling, because I always feeled inclined to fiddle with everything in my OS e", "context": "", "use_case": "Unix tools on Windows", "switched_from": "", "story": "Our Commitment to Windows Quality"}, {"id": 752857553, "item_id": 47053597, "url": "https://news.ycombinator.com/item?id=47053597", "by": "yellowapple", "date": "2026-02-17", "stance": "compare", "quote": "the only two with \u201cmany\u201d packages are Cygwin and MSYS2", "excerpt": "> If you're just a guy trying to compile a C application on Windows, and you end up on the mingw-w64 downloads page, it's not exactly smooth sailing: https://www.mingw-w64.org/downloads/ One of the options on that page is MSYS2, which I specifically listed above alongside MinGW-w64. And that download page is much smoother sailing: https://www.msys2.org/ There are other options on the MinGW-w64 page, but most of those", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752451601, "item_id": 47028225, "url": "https://news.ycombinator.com/item?id=47028225", "by": "okanat", "date": "2026-02-15", "stance": "recommend", "quote": "the bigger thing that enabled them is indeed Cygwin project since it unlocked the path", "excerpt": "I do appreciate it as a daily user of MSYS2. However the bigger thing that enabled them is indeed Cygwin project since it unlocked the path to build things that are using strict Unix tooling. autoconf, Make, bash etc cannot run under a pure Windows environment. They are too dependent to the underlying system being a Unix. To use pacman, bash and make in MSYS2, you need msys-2.0.dll. Even they cite Cygwin's URL in the", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 749052945, "item_id": 46815809, "url": "https://news.ycombinator.com/item?id=46815809", "by": "1vuio0pswjnm7", "date": "2026-01-29", "stance": "neutral", "quote": "I used Cygwin and later MSYS on Windows in the process of moving back to UNIX", "excerpt": "Many years ago before I stopped using Windows and switched back to NetBSD (I had originally used it on the VAX), I used Cygwin and later MSYS on Windows in the process of moving back to UNIX I was not interested in graphical programs, I only wanted a UNIX shell and standard UNIX utilities I recently received a used computer with pre-installed Windows 10 Home for personal use so I will be experimenting with it offline", "context": "", "use_case": "UNIX shell and utilities on Windows", "switched_from": "", "story": "Microsoft forced me to switch to Linux"}, {"id": 746283793, "item_id": 46642737, "url": "https://news.ycombinator.com/item?id=46642737", "by": "abbeyj", "date": "2026-01-15", "stance": "neutral", "quote": "Or you could install and old copy of Cygwin or MinGW.", "excerpt": "It depends on what you want. If you want to install an old copy of Visual Studio from 20 years ago then you should be able to write a program and compile it and have that work on XP. But that comes with limitations. You're not going to be able to use even C++11 and will be stuck with C++03, or maybe even C++98. If that's acceptable to you then it can work. But if you want to compile something that somebody else wrote", "context": "", "use_case": "", "switched_from": "", "story": "Go-legacy-winxp: Compile Golang 1.24 code for Windows XP"}, {"id": 737642993, "item_id": 46102687, "url": "https://news.ycombinator.com/item?id=46102687", "by": "kazinator", "date": "2025-11-30", "stance": "neutral", "quote": "In the Cygnal fork of the cygwin.dll, I hacked Cygwin's POSIX chdir() function", "excerpt": "In the Cygnal fork of the cygwin.dll, I hacked Cygwin's POSIX chdir() function, as well as the path resolution mechanism, to support the per-drive-letter name current directory concept. A path like \"f:myfile.txt\" actually means f:\\path\\to\\whatever\\myfile.txt\" where \\path\\to\\whatever is the current working directory of the f drive. This is one of the details which makes the replacement DLL more of a \"native\" run-time ", "context": "", "use_case": "", "switched_from": "", "story": "Windows drive letters are not limited to A-Z"}, {"id": 732695345, "item_id": 45793459, "url": "https://news.ycombinator.com/item?id=45793459", "by": "doublerabbit", "date": "2025-11-02", "stance": "neutral", "quote": "I was more a Cygwin user", "excerpt": "I jumped ship when WSL came to be. I was more a Cygwin user, all the features of linux but done differently. Been using FreeBSD for years now.", "context": "", "use_case": "", "switched_from": "", "story": "Linux gamers on Steam cross over the 3% mark"}]}