We benchmark Bash on Ubuntu on Windows 10 to see how it performs compared with native Ubuntu OS.
Microsoft has come a long way since ex-CEO Steve Ballmer called Linux ' a cancer', softening its stance on open source to the extent that Windows 10 will soon run a selection of Linux software.
Future versions of Windows 10 will run the Bash shell, a command line interpreter that is available on many different Linux distributions, as well as Mac OS X.
The shell is popular among developers, as it includes a host of tools that allow power users to carry out and orchestrate complex chains of commands.
Bash will be available via a Universal Windows Platform app. The app runs on the Windows 10 desktop and provides an image of the Linux-based OS Ubuntu that Bash runs on.
Users can use the Bash shell to download and install programs from the command line, as they do from inside Ubuntu. Microsoft says Ubuntu software will run as fast in the Windows app as it does natively, thanks to a software subsystem for handling Linux system calls.
But just how well does the Bash shell provided in Windows 10 work? We tested the Bash app, which is available in the latest preview build of the OS offered to Windows Insiders testers.
Microsoft's claims that Windows 10's Bash app can run Ubuntu software at least as well as a native Ubuntu OS seem to hold up in the CPU benchmarks.
However, the Windows 10 Bash app was unable to match the results achieved by the native Ubuntu system in tests measuring file I/O and memory.
Open-source website Phoronix also found a similar pattern of performance in its battery of real-world tests comparing the performance of Bash on Ubuntu to that of the Windows 10 app. So it seems that performance is dependent on the type of task being carried out - with applications that frequently access file systems running significantly more slowly.
Our tests were conducted using a Toshiba Portege laptop. The machine has a 2.1GHz Intel Core i7 4600U processor, with 8GB of memory and a 256GB SSD. The Bash on Ubuntu on Windows 10 app was running on the 14316 build of Windows 10, available under the Windows Insider testing program, and was compared to performance of Bash running on Ubuntu 14.04 LTS.
Not all Ubuntu software will run via the the Bash on Ubuntu app. The app only provides access to command line applications -- not a graphical desktop or software -- and reportedly has limits on what it can be used for, such as not being able to run a server.
The app available in preview builds to Windows Insider testers is also a work in progress, with Microsoft warning it expects many things to fail in this beta release.
Most of the commands I tried worked and the system successfully installed each of the Ubuntu applications I tried, using the 'apt-get install' command.
Certains actions in Bash on Windows will generate errors due to missing software packages. For instance, I got error messages relating to upstart and systemd when installing the compiler gcc and the popular version control software git. However, the software packages still seemed to install. Elsewhere online there are mentions that certain packages, such as Oracle JDK, won't install because of missing software dependencies.
There were other quirks. When installing software using the apt-get command the system seemed to get stuck more frequently than on Ubuntu 14.04 LTS, temporarily hanging with the message 'Waiting for headers' on several occasions. As mentioned, however, the Bash on Ubuntu on Windows app is still in beta, so some bugs are to be expected.
Ultimately it seems like Microsoft is off to a good start. Given the number of developers that use Bash tools each day on Linux and Mac OS, bringing this functionality to Windows seems like a smart move. Particularly at a time when one of the world's largest surveys of developers found that coders are gradually moving away from Windows.