
Until a week ago I would have said that Cygwin was the best available way to hybridize Windows and *nix. I was relatively happy with my xterms and ssh. But that was all that I could use it for. Running X applications compiled for Cygwin was unusably slow. So I had to use VNC to connect to run X11 apps. Well, I no longer have Cygwin on my machine, it has been replaced by Cooperative Linux.
I don't know what rock I've been hiding under for the past two years but I had not heard of Cooperative Linux until a few weeks ago. Cooperative Linux is a recompilation of the Linux kernel as a Windows executable. All of the native posix commands get remapped to the Windows kernel. And it's fast. It's unbelievably fast. Once the kernel is running, it can run native Linux binaries. In other words, you can boot your Debian/Gentoo/*buntu/etc. distribution while in Windows without any binary recompilation a la VMWare or Virtual PC.
I've configured coLinux as a service so that when I login my Debian unstable distribution loads in the background. When I need to access it I load up Putty to ssh in. The only connection between coLinux and the Windows install is the local networking, so you can either ssh into it or open up the coLinux terminal window. Since coLinux does not have access to native graphics hardware, I export X11 over the internal network to the Windows XServer (Xming). Some of the graphics updates are imperfect, but it's a small price to pay to have Emacs, Kile, and all of my other favorite Linux applications running at what feels like 95% speed.
If you are interested in trying coLinux out, I grabbed my copy here. I used the 20070302-Snapshot release. It can be confusing to get it started, check out their wiki as a resource. The biggest hurdle is networking. If you don't have Linux experience then I recommend having a friend help who does. Good luck, it's completely worth it.
