Cygwin: Making Windows Livable Since the 20th Century.
All the free GNU tools work just fine on win32 systems thanks to CygnusSolutions (taken over by RedHat in 2000?). Windows can be used as just another *NIX now. Cygwin is broken up into many different packages, so you can pick and choose what software you need - kind of like a Linux package system, but not as sophisticated.
See:
Praise:
- I second the recommendation. I love it.
- CygWin is what keeps me sane when I have to deal with Windows boxen. Nothing compares. It's great that it's GPL-licensed :-) On another note, the CygWin of today is much better than the one talked about [on this page in the past]. Highly recommended.
- I can't sit down at a Windows box without a CygWin installation, and highly recommend it to all Windows developers hankering for some CommandLine power. I must also note that the current CygWin installs and configures itself painlessly, so anyone who tried it before Y2k and was put off by having to fiddle with the configuration should definitely take another look. -- AnthonyBowyerLowe?
- I have used CygWin on Win98SE, WinXP, and Win2k. I find it highly useful, though I [ran into the terminal problem below] -- DanielKnapp
Problems/Solutions:
- Problem: The default terminal (DOS Console) sucks.
- Problem: I'm still working on getting things setup for ease of use, which the documentation is somewhat lacking in. For example, use the 'mount' command to map c:\cygnus\yadayada\bin to /bin
- Solution: One option is to use a symlink: ln -s /cygdrive/c/foo /foo
- Solution: Is this still an issue? I think later versions of Cygwin are set up like this by default, if I understand the problem.
- Problem: fork() doesn't have copy-on-write semantics, since Windows provides no way to implement them. This is worse than it sounds, because it means that anything which generates a large number of small processes will take ages. It particularly afflicts recursive makes and autoconf-generated configure scripts. -- DanielKnapp
- Solution: Learn to be patient while slow stuff runs.
- Problem: Downloading a complete unix environment over a 56k line is a drag. Is there a CD one can order, or a CD Image one can download with a broadband connection on another machine?
- Solution(?): When you install Cygwin, it leaves a directory of everything it downloaded in its wake. Maybe you could CD'ify and somehow reuse that?
- Problem: cygwin is case sensitive, while the underlying filesystem is not.
- Partial solution for Bash command line: Add the line "set completion-ignore-case On" to ~/.inputrc. (Create the file if necessary.)
Tragic Irony:
To score contracts written under the influence of some brainless "POSIX required" verbiage, MicroSoft added a subsystem to WinNt? called "POSIX" which did nothing. So we had to wait for an OpenSource free-ware solution for WinNt? to really do Un*x-style things!
An alternative is to work exclusively on Unix and cross-compile for Windows, targeting either CygWin, if you want to program Windows as if it was UNIX, or MinimalistGnuForWindows (MinGW), which links against Microsoft's C runtime libraries.
CygWin QuickQuestions
Q Posted in late 2004.
- Is there a good Uninstal for this software?
- Does it interfere with other working Windows software?
- With Cygwin running, what is a good recommendation for a simple Wiki-like thing I can get up and running, without any UnixCulturalAssumption?
- Has CygWin got problems on WindowsXp with DotNet framework runtime 1.1 installed?
- How do I avoid "Program too big to fit in memory" message when trying to run a program under Cygwin? I do not have the program's source-code, but I would expect it to need quite a bit of memory. AnswerMe
A
- The Uninstall is simple, just delete the folder (usually c:\cygwin).
- It only interferes if it's in the path before Windows program directories and you install packages with names that shadow Windows programs.
- If you want software free of UnixCulturalAssumption's, then you don't want Cygwin.
- There are no known problems with DotNet framework runtime 1.1 installed.
-
Security aspects
<Moved from Q/A>
Does use of this environment (and other packages requiring this environment) compromise my security provisions (e.g. firewall) configured to run under WindowsXp?
- Can't imagine how it could change your firewall security. It doesn't unless a program is doing something deliberate and malicious. Cygwin is a set of DLL's that provide a degree of POSIX emulation, so everything running under Cygwin is actually a Windows program.
Any comments regarding "Apache Cygwin Directory Traversal Vulnerability" listed at http://www.securityfocus.com/bid/9733? I am concerned about CygWin being used as a backdoor as I expect the likes of ZoneAlarm? would not know about activities in that area.
Answer: As you may have noted reading this site, Cygwin was one of the few platforms NOT affected by this Apache bug. Besides this, how should Cygwin be used as a backdoor? Unless you install an OpenSSH server, Apache webserver, FTP server, any other included server without protection. In any case you must actively install those programs and configure them to your needs. BTW, ZoneAlarm? is able to detect ANY network activity, it doesn't matter on which libraries a program is based. Internally Cygwin uses all kinds of Windows libraries to access the filesystem, the network, ..., like any other Windows program does. Cygwin is just one more DLL.
-- GerritHaase - 2005.10.26
See: BetterCygwinTerminal
CategorySoftwareTool