Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

With the arrival of virtual machine software like VirtualBox, VMWare, Parallels etc., is Cygwin any useful on the Windows platform to give a linux like environment?

share|improve this question
up vote 20 down vote accepted

Virtual machines and Cygwin answer two different questions.

Virtual machines are for when you want to run multiple operating systems at the same time. It's like having two computers without the expense of purchasing two sets of hardware.

Cygwin is intended to give Windows a number of Unix tools, so that Unix geeks can more effectively use Windows (though I'd argue that Cygwin doesn't actually do that very well), and to provide some tools that have greater features than Windows provides on its own. I don't think the characterization of Cygwin providing a "linux like environment" is particularly accurate. (Cygwin is actually intended to provide a more complete POSIX development environment for Windows, and, in doing so, provides a number of utilities. The end result for end users, though, is that it merely provides tools.)

There's actually kind of a third option, Cooperative Linux, which I think actually does provide a Linux-like environment within Windows. It actually runs the Linux kernel as a process within Windows. There are some distributions that run under it; andLinux comes to mind. With these systems, you actually do have a Linux environment that can more directly interact with your Windows environment than a virtual machine can.

share|improve this answer
Cygwin being a bunch of utilities is actually merely a side-effect. It's foremost intended as a Linux-like environment for software, not for the user, so you have the appropriate APIs wrapped in emulation. With coLinux the Linux kernel runs as a device driver inside the Windows kernel, not as a process. – Joey Oct 11 '09 at 13:12
I only install cygwin to be able to have a decent shell to work on my windows files. I would be lost without find, grep, sed and it's ilk. – Nifle Oct 11 '09 at 13:59
@Johannes: the coLinux web page says "coLinux always utilizes only one process of the host OS for all its Linux processes, privately managing their scheduling, resources, and faults". AFAICR, it runs as a service, not a driver. – wfaulk Oct 11 '09 at 14:42

It is still useful for running Unix tools like rsync, which you want to operate on the files on the Windows box rather than it being stuck away in a virtual machine. You can also then use the Windows scheduler for starting jobs with the tools.

share|improve this answer
I'd rather take native builds than install cygwin, though. – Joey Oct 11 '09 at 13:10
not everything's available in native builds, though. – quack quixote Oct 11 '09 at 14:43

As far as I am concerned, Cygwin is a different concept. Unlike virtual machine it provides an DLL which emulates an Linux environment/layer, which can run and build linux program on a windows machine. For example, if you want to use some library that is only distributed as source code and is intended for built in Linux system, what if you want to use this library in Visual Studio? You cannnot use VS to build it since it relies on Linux dependencies, so you need Cygwin in this situation.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .