“The Bash shell is coming to Windows. Yes, the real Bash is coming to Windows”
Kevin Gallo, talking at Build 2016
Over recent weeks, Microsoft has made an enormous leap in the world of code. At Build 2016, Kevin Gallo – Vice President for the Windows Developer Platform – announced that the Linux Bash shell will become a developer feature on Windows 10. For the coding community, this is major news – marking something of a leap in Microsoft’s position within the industry.
After years of using third-party tools like CygWin – or the coder-friendly Apple MacBook – developers can now use Linux directly on Windows 10. Most surprisingly of all, Linux will not be run via a virtual machine or third-party tool. Instead, it will run natively directly within Windows – which is a major bonus for those who have Linux systems but prefer working within Microsoft’s operating system.
For developers working within Windows, this has huge implications. By allowing the fast, lightweight use of real binaries with a full Ubuntu image, Microsoft is showing commitment to the vast number of coders who favour Linux. So how will it all work, and are there any drawbacks?
Getting started with the Bash shell on Windows 10
To launch the shell, you’ll need to download Bash from the Windows Store. Alternatively, type ‘bash’ into the start menu, and the full Linux command line console will open.
As this is Linux, the binaries need to be downloaded, with a full Ubuntu user space including MySQL, PHP, Perl, Ruby and ssh allowing you to write Bash scripts and run them on Windows 10.
Once installed, one of the biggest plus-points of the native Bash shell is that Linux will be able to access the Windows file system. By doing away with the need to download files from the web and transfer them to a Linux virtual machine, the shell is much more seamless than the third-party apps that have gone before.
Are there any limitations?
It’s worth remembering that this is not necessarily a complete Linux system, with Microsoft saying that they will not support graphical applications. Instead, it’s intended to be a developer tool set for writing and building code – and while it provides developers with the ability to work seamlessly within the Linux Bash shell, it’s not a full virtual machine. But that being said, some users have pointed out that Microsoft has actually added a full Ubuntu-based shell to windows – which means that it can potentially be used to run almost any Linux system.
The Bash shell isn’t built to interact with Windows tools, either – which means you won’t be able to write Bash scripts to automate Windows commands.
What does this all mean for Microsoft and the developer community?
Historically Microsoft has been something of an arch-nemesis for developers, but this latest Linux project highlights their renewed respect for the developer community with a refreshing approach to open-source coding. Yes they still want developers to code for Microsoft platforms, but they also want to create an environment for cross-platform app development – and that’s why this latest move is so significant.
Over the next few weeks, expect to see more information unfold as the technical details are revealed. The shell is still in beta mode, and at the moment we’re still unsure if desktop-style apps will become available – although we expect that they will start appearing. If Microsoft make it easy for developers to package open source Linux for Windows apps, then we anticipate the Windows Bash shell will get popular. Watch this space.