Any developer creating apps, websites and services for various platforms and devices using the Windows Operating System knows just how much of a struggle using open-source tools on Windows can be. Well, Microsoft knows about this struggle and, at the Microsoft Build conference, announced two things they have done to progress towards making Windows an awesome place for developers. The first thing Microsoft has done is that they have invested a lot in improving CMD, PowerShell and a lot of other command-line tools and developer scenarios (both native and third-party).
The second thing that Microsoft has done is more of a kicker – Microsoft has added native Bash to Windows and along with it support for a plethora of Linux command-line tools, all of which run on Windows but in an environment that behaves exactly like Linux. In order to do so, Microsoft has created new infrastructure – dubbed the Windows Subsystem for Linux (WSL) – within Windows. WSL allows Windows users to run a genuine Ubuntu user-mode image (which has generously been provided to Microsoft by Canonical, the people behind Ubuntu Linux) within Windows.
As a result of this second and overwhelmingly significant improvement, Windows 10 users will now be able to run native Bash on Ubuntu on Windows. Windows 10 users will be able to run Bash scripts, Linux command-line tools like sed, awk, grep, and even Linux-first tools like Ruby, Git and Python directly and natively on Windows. While running Bash natively on Windows, users will be freely able to access their Windows file-system from within the command-line utility, meaning that they can work on the same files using both Windows tools and Linux command-line tools.
This new technology will be available to Windows 10 users with the Windows 10 “Insiders” builds that roll out after the Microsoft Build conference. This feature being entirely new, Microsoft has decided to mark it as beta, meaning that it is still in its early stages of development and refinement and is bound to have some kinks that Microsoft is going to need the community’s help with in ironing out. Also, since native Bash on Windows is currently in its beta stage, some Bash scripts and tools are bound to either not work or not work perfectly.
Microsoft would like all current and potential users of native Bash on Windows to know that it is intended to be a developer toolset to be used for writing and building code for all scenarios and platforms, not a server platform for hosting websites and running server infrastructure.
While native Bash on Ubuntu on Windows is an amazing improvement to Windows 10’s existing arsenal of command-line tools and is a more than welcome addition for developers, it certainly has its limitations on the Windows OS, chief among them being the fact that Bash and Linux tools on Windows will not be able to interact with Windows applications and tools and the same applies vice-versa.