Cygwin review part 1: Running Linux programs… on Windows?

Hi everyone.

Cygwin: What is it?

Cygwin is a way of running Linux programs on Windows, somewhat like what WINE is for Linux. However, Cygwin works in a fundamentally different way, and programs have to be re-compiled to work in it. Nevertheless, it is and has been a fairly popular way of running a lot of Linux programs on Windows. I reviewed it because I was interested, and also I wanted to see if I might be able to support Windows users with DDRescue-GUI using Cygwin. This review is in two parts because I followed up after the video on a 64-bit machine and things worked better.

On to the review!

This is a video review, with text to accompany it. You should probably watch the video first – they sort of accompany each other. There was an amount of rambling in the video, but hopefully it’s interesting rambling 🙂

Accompanying text

So, my first impressions were quite good, and I was really impressed. I don;’t particularly like having to run the graphical setup program to install software, but as I found out later, there is an alternative (https://stackoverflow.com/questions/9751845/apt-get-for-cygwin). It does still work by the way, I tried it later. Anyways. I set about installing some software and seeing what was available. There is a reasonably good selection of software, but I noticed some things like Libreoffice and Firefox were missing. I guess people just use the Windows versions when they need to. Unsurprisingly, core system tools like lsblk, lshw, dmidecode and so on are often missing. I reckon this is because low-level hardware access isn’t available, so it’s fairly reasonable to not have them.

What about the X server and desktop environments?

Funny you should mention it, I was pretty curious too. As it turns out, you can install an X server and a desktop environment. To install the x server, I followed the instructions here, and it worked just fine. Next, I installed LXDE, just to see if it would work, and astonishingly, it works really well! It IS a bit slow, but then it’s in a virtual machine, and given how much Cygwin is doing to make it work, I think it runs at a perfectly acceptable speed really. I know someone who used to use Cygwin to run Linux development tools on Windows NT, and having used it, I can see why that was perfectly doable – it wasn’t as slow as I’d thought it might be.

X applications like Abiword and Epiphany (a web browser for GNOME) installed, both worked, though Abiword flickered a bit. GIMP, unfortunately, didn’t work, but as I found out later, it works fine in 64-bit Cygwin :). It really did feel like I was using a virtual machine, really weird!

Can you run games?

I have absolutely no idea, but I would guess the answer is no, because of the lack of hardware access. I did have a quick look for games like Neverball and Extreme Tux Racer, but they were nowhere to be found. When I follow this up, I’ll look a bit harder, and maybe try compiling them. Really, it’s kind of pointless, because you could just run the games in Windows. However, given that the next post is about me running Damn Small Linux on a Raspberry Pi,  I reckon I might as well try – I doubt I’ll ever do anything more silly than that XD.

Why would you run Cygwin?

I think it’s mostly aimed at developers, and people who have to have a particular piece of Linux software on their system. Note that you can use it to run tools like GNU ddrescue too, which is probably very helpful. There is another use for it though: you can bundle it with your program. This is what Libreoffice does to run easily on Windows. It might also be why Libreoffice can look a bit alien on Windows, but it nevertheless seems to work pretty well. I guess it’s similar to bundling Wine with your Linux program, like Google did with Picasa.

Can I run DDRescue-GUI on Windows with Cygwin?

Not yet :). I did say in the video that it probably wouldn’t work, but that was from an unreliability perspective, which only seems to be an issue on 32-bit systems. Apparently I have a knack for testing things in a way that makes them unreliable, like in my KDE Plasma Mobile Review. I managed to get it wrong both times, because I forgot to use my Intel graphics instead of the graphics card XD. Anyway, this will be some of what the next video shows. It won’t work “in-situ” and will need some modifications, but I will see if I can get a limited version of the GUI to work on video, because I think it’s definitely a possibility. I will probably mess it up the first time I try, but it should at least be entertaining :).

Summary

Cygwin is awesome. I love it, and if I couldn’t install Linux for some reason, I’d probably spend my entire life in Cygwin. Okay, maybe a bit of an exaggeration. I do like it though, and I can see why it is a popular choice for porting Linux software to Windows. Stay tuned for the next part of this adventure; I don’t often venture into Windows, especially if I want to have some fun tinkering, so this is really weird for me!

Note: As I mentioned above this virtual machine had a 32-bit install of Windows 7 on it. It turns out Cygwin works much better on 64-bit Windows.

Hamish

Tagged , , , , , . Bookmark the permalink.

About Hamish McIntyre-Bhatty

I'm currently studying for a Computing and IT degree with the Open University, and am a software developer as well. I enjoy coding in Python, C++ (still learning), and Java. Having written 4 open-source programs (hosted on launchpad.net), set up my own website, and started volunteering at Wimborne Model Town to work on their river control system, I still find the time to enjoy cycling, acting, photography, and playing bass guitar. I go climbing every now and then as well. As you may have guessed, I also enjoy blogging :)

Comments are closed.