Machine learning made easy

Running Unix apps on Windows

When it comes to machine learning, most software seems to be in either Python, Matlab or R. Plus native apps, that is, compiled C/C++ - these are the fastest. Most of them are written for Unix environments, for example Linux or MacOS. So how do you run them on your computer if you have Windows installed?

Back in the day, you re-partitioned your hard drive and installed Linux alongside Windows. The added thrill was, if something went wrong, your computer wouldn’t boot.

Now it’s easier. You just run Linux inside Windows, using what’s called a virtual machine. You need virtualization software and a machine image to do so.

Most popular software seems to be VMware. There is also VirtualBox - it is able to run VMware images. We have experience with WMware mostly, so this is what we’ll refer to. VMware player is free to download and use.

There are also many images available, of various flavours of Linux and other operating systems. In fact, you can run Windows inside Linux if you wish to. But we want to run Linux inside Windows, because we are used to Windows and only want to run Unix apps.

When you run a virtual machine, you want to be able to copy files between the host (Windows) and guest (Linux), and also use copy-and-paste between them. To do so in VMware, you need VMware tools. There are images that have them pre-installed. Otherwise, you install them in a guest environment (Linux in this case).

That’s it, basically. Play the image in a player and you have Linux on your computer. The apps are mostly command-line, so you just open a terminal, download or copy some files, and proceed. If you don’t know Unix command line, it’s relatively easy but much more powerful than Windows command line. You’ll need just basic commands like cd, ls, mv, cp etc. (plus wget for downloading).

VMware has a feature called Unity - it allows you to have guest apps directly on host desktop, out of the player’s window. It’s an amazing experience to have a Unix terminal on a Windows taskbar.