Bash, or the Bourne Again Shell, is the standard text-based command line utility used on the vast majority of Linux distributions to drive applications and the operating system itself.
It's easily the most popular for Linux users, also comes in Apple’s OS X operating system, and now... it's in Windows 10!
Microsoft has developed a level of Linux compatibility with binary shims that translate Linux system calls to Windows ones, but this first iteration is, unfortunately, pretty weak.
If you’re champing at the bit to start Bashing away in Windows 10, cool your jets and be prepared for some pain: installing the Ubuntu on Windows package with Bash requires joining the Windows Insider Fast Ring pre-release software program.
You'll need the Insider build 14316 of Windows 10 that came out this week.
That involves upgrading the operating system - a lengthy process with downloads and reboots - and then you also have to enable developer options before adding the Windows Subsystem for Linux feature.
With that out of the way, typing “bash” in a Windows command shell will connect to Microsoft’s app store and grab Ubuntu on Windows for you and install it. Oh, another reboot is required after that too.
Once installed, you'll have Bash running on Windows 10, but not very happily. Bash is marked as beta software, but this first effort is much more raw than that label indicates.
Whether the problem lies in the Windows Subsystem for Linux translation layer or other areas like permissions is uncertain, but you can’t do all that much with Bash on Win10 at this stage because there’s so much breakage.
Most network tools like ping and traceroute don’t work because they can’t access raw sockets.
You are presented with a UNIX-like file system, and it’s kind of cool to be able to do cat /proc/cpuinfo to check processor features, access the Windows file system through Bash (sort of), and run VIM (it’s not vi) and EMACS.
For any serious work, you’re better off using secure shell connections into a stable Linux box, or running the Penguin OS in a virtual machine. Or just go with Apple OS X.
Why is Microsoft doing this then? Under Ballmer’s leadership the company tried its hardest to wring the Penguin’s neck, but that murderous intent went out of the window (along with Steve) because businesses love Linux.
With the Azure cloud now being seriously Linux-infested, Microsoft has to keep up with the cool kids and make sure Windows can talk to the Penguin.
If not, developers who are under pressure to do things faster, cheaper and more effectively would likely take flight and abandon Windows, if they haven’t done so already.
How far Microsoft intends to take Linux on Windows remains to be seen, but something had to be done, even if only a PR exercise like the current Bash hack.
Microsoft has run hot and cold when it comes to working with UNIX (and UNIX-like) operating systems over the years, but never ignored them totally.
The irony is that Microsoft could’ve done the Linux integration in a less complicated fashion: in 2004, the company released the last, version 3.5 of its Services for UNIX subsystem
SFU was based on the portable operating system interface conformant Interix subsystem for Windows NT that Microsoft bought in 1999, and which worked pretty well - especially the last 3.5 version.
It could run UNIX csh and ksh command shells, vi and emacs text editors, the network file system, PERL scripts, the Apache web server, the gcc compiler for application development, and much more.
Although SFU was built into Windows 7 Enterprise and Ultimate as well as Windows Server 2008 and could be enabled easily, it clearly didn’t set the world on fire like Linux has.
It is no longer available for Windows 10, not even as a separate download.
Vale, SFU, you were a good utility. Pity Microsoft bashed your head in.