Home » Questions » Computers [ Ask a new question ]

Virtual Machines vs Cygwin

Virtual Machines vs Cygwin

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?

Asked by: Guest | Views: 64
Total answers/comments: 2
Guest [Entry]

"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."
Guest [Entry]

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.