Which Unix like environment do you prefer on Windows?
I have found Cygwin [1] to be very comfortable for a Windows platform (usually XP).
I am wondering if there is a better alternative (not because I want to move away from Cygwin).
What are the features of Cygwin that you like OR,
What are features you find in alternatives that you miss in Cygwin?
I am often miss binary compatibility of applications built on Cygwin.
These cannot be run directly on another Windows platform.
But, usually fetching a copy of cygwin1.dll
suffices.
A collection of other tools, many of which work directly on the Windows subsystem rather than emulating Unix, like Cygwin does:
"Unix" environment, yes, Cygwin is about the best, as it is pretty much the only one usable, and has a large library of software. Microsoft's "Services for Unix" (SFU) is usable for some people, but it is very corporate / enterprise centric, installing software can be a hassle and in my experience a lot of software available for Cygwin just isn't available via SFU.
While it isn't a Unix environment, I've heard great things about PowerShell, that it really unleashes a lot more potential of Windows for scripting and automation, that a semi-emulated Unix environment doesn't really match on Windows.
I would rather Linux running on a virtual machine and mount a shared filesystem. It woks great and with enough ram you don't notice it.
The problem I had with Cygwin is that I ended up typing
explorer .
All the time. Command prompt support is much better in Vista.
I found MSYS which is based on MinGW to be much better - great performance too.
make
them, but it is some additional work than people may not feel worth while. - Brent.Longborough
Cygwin is great, but make sure you install MinTTY [1] to get proper interactive editing for the terminal.
[1] http://en.wikipedia.org/wiki/MinTTYI definitely enjoy Cygwin. It works so well that a lot of the programming projects we do can be compiled and run on Cygwin with none or only minor adaptations.
I've been using SUA (Subsystem for Unix-based Applications) for a while now on my Windows 7 64-bit machine. My favorite part about it is that I can now SSH into my Windows box. That has come in handy on more than occasion.
You can natively (yes, natively) install applications like bash, apache, grep, vim, gzip, locate, openssh, curl, cat, awk, ruby, libtool, freetds, and hundreds of other things. You can also install an X server like Xming: http://en.wikipedia.org/wiki/Xming
This is a very good resource to checkout what's available and how to install it on your system: http://www.suacommunity.com/SUA.aspx
For you nay-sayers, this is not the same as SFU, it's a more-modern evolution of it. While SFU ran as a service, SUA is literally a subsystem that sits directly on top of the windows kernel.
Cygwin is good when you want to use a Unix shell exclusively but are running under Windows.
However, for myself, I needed to run the cmd shell, and yet missed the Unix command-line tools. So I found that GNU utilities for Win32 [1] was a much better solution. It meant that I was running under cmd, and yet had access to the Unix commands that I was familiar with (e.g. ls, grep, wc).
[1] http://unxutils.sourceforge.net/IMO, The primary downside for Cygwin is performance (it emulates a POSIX environment). The native POSIX subsystem for Windows ( Services for UNIX Applications [1]) is also pretty good, and better than Cygwin performance-wise (it's a native subsystem rather than an emulation, it lives beside Win32 subsystem rather than on top of it).
[1] http://technet.microsoft.com/en-us/library/cc779522%28WS.10%29.aspxI have also run an X Server on the local Windows machine and then exported applications from the Cygwin system to connect to it.
But, it turned out to be a lot of activity and
I realized that most of the time it was just a terminal that I needed.
Since that, its been the default shell and then MinTTY on Cygwin.
Two suggestions from the extreme ends of the spectrum. For *nixy tools running in the Windows shell I use GnuWin32 [1] stuff. For a full Linux on Windows without partioning I use the Xubuntu flavor of Wubi [2].
[1] http://gnuwin32.sourceforge.net/I never found Cygwin comfortable - Unix wannabe shell on a Windows system always felt unnatural, like raping the system.
Unfortunatelly, the fact is that Windows is missing a good shell ( PowerShell [1] aside for now), and what's more, it is even more missing a good terminal. Cmd would be much all right if it came in a more useable terminal.
Cygwin takes care of some of those deficiencies, but it also creates some problems. It is a Unix shell. That means that if you're developing console applications for Windows, you're bound to run into problems concerning slashes/backslashes, file names ...
For that it is probably best to use some of the Unix tools that have been compiled for Windows. unixkit-tiny [2] is my kit of choice, and it works fine. Also, some DVD burners have problems doing their stuff while Cygwin is running (DLL interoperability).
[1] http://en.wikipedia.org/wiki/Windows_PowerShellcygwin1.dll
should not interfere with normal Windows activities/dlls. - nik
I have cygwin, but I don't tend to use it for anything beyond runing unix applications on Windows.
My main way to script on Windows (beyond batch scripts) has been to use Cygwin's perl port, although I've been wanting to start using Python (the offical Windows version) as well.
f
, by the way). I just use them with cmd as my shell. :-) - MiffTheFox
Another solution to consider is coLinux [1], a port of the linux kernel (as defined by the author) that can run on windows. It can be thought of for some purposes as an intermediate solution between Cygwin and full virtualization software like VirtualBox.
[1] http://www.colinux.org/