BASH on Windows
Bash on Windows (circa 1999) – The action of voicing a negative opinion toward Microsoft and/or the Windows operating system, typically, involving a large degree of sarcasm.
Bash on Windows (circa 2016) – Something entirely different…
Of all the ways to describe the long-heated rivalry between Windows and Linux, a calm, rational difference of opinion would not be counted among them. The choice between Windows and Linux elicits passionate responses and spirited discussions. Each tribe champions their cause with a religious zeal. At its height, the battle was referred to as a Holy War between operating systems.
To be honest, the rivalry was much more intense during the first few years of the tech bubble. At that point, Linux was still an unproven environment. Very few executives were willing to trust their businesses to a first-generation platform largely maintained by an anonymous group of hackers working in their spare time. However, IT managers quickly noted one quality that could really help them meet their budgets.
Free is a good price.
And thus started the open source movement, and Microsoft’s battle against open source software. In the early days, Microsoft repeatedly denounced open source software as destroying intellectual property. “Linux is a cancer that attaches itself in an intellectual property sense to everything it touches,” said Microsoft CEO Steve Ballmer in 2001, stating a principle that would guide Microsoft for the next decade. However, during that time Microsoft’s market share dropped from >90% of the desktop market and >55% of the server market to just under 12% of the world device market in 2015.
Well, so much for taking a principled stand.
Today, Linux and other open source products are no longer unproven platforms. Nearly 80% of companies report using some open source package to run their business. Faced with these realities, Microsoft changed direction and started to embrace the open source movement. Microsoft recognized that to succeed in today’s devices and services world, developers must embrace your platform. With >70% of developers adopting open source, well, that doesn’t leave very many options, does it?
So in April 2016, the seemingly impossible has occurred. As a result of a partnership between Microsoft and Canonical, the Ubuntu version of Linux may now be run natively on Windows 10. Just to be clear, this is not a recompiled version of Linux such as Cygwin. Microsoft has developed a Linux interface called the Windows Subsystem for Linux (WSL) that translates Linux syscalls into Windows syscalls. Windows run a bit-for-bit, checksum-for-checksum copy of the Ubuntu ELF binaries. This is truly Linux running on Windows!
Every developer understands the hassles of running Windows and developing in Linux. Typically, a virtual system or emulator is needed just to open a simple terminal screen. With Ubuntu on Windows, the developer no longer needs to worry about a VM. It goes something like this,
1. On Windows 10, open the Start menu.
2. Type “bash” [enter]
3. A console shell opens running /bin/bash
4. The users has full access to all of Ubuntu user space including apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch and so on.
Pretty cool, right? OK, now here are the caveats straight from the Microsoft blog.
This is beta software. There are some rough edges and some things will break. Do not expect every bash script you write to run perfectly!
This is a developer toolset to help developers write code. This is not a server platform! There are other Microsoft products – Azure, Hyper-V, Docker – to run production software.
Sadly, Bash cannot call Windows apps and vice versa. Sorry, you can’t open Notepad from Bash, or run Ruby from Powershell. 🙁
So, are you ready to explore Linux on Windows? First, you need to be a member of the Windows Insider program that has access to early release software. From there you can find the installation details at,