Microsoft today announced at its Build conference in San Francisco that it’s bringing the Bash shell to Windows.
Bash is a common Unix command-line tool for working with source code. It ships with Macs. And for Microsoft to do this is big because Bash runs on Linux.
“This is not a VM. This is not cross-compiled. This is native Ubuntu binaries running on Windows through the magic of Windows subsystems,” Kevin Gallo, corporate vice president for Microsoft’s Windows and Devices Group, said onstage today. (ZDNet reported on plans to launch Bash on Windows earlier this week.)
The work is a result of a partnership with Microsoft and Canonical, the company behind the Ubuntu Linux operating system. This comes after Microsoft threw aside its longtime competition with Red Hat, which distributed the Red Hat Enterprise Linux (RHEL) distribution, to bring RHEL to Microsoft Azure.
Microsoft has publicly supported certain open source software projects and released more of its software under open source licenses in the past few years.
In late 2014 Microsoft started to open-source its .NET framework. Last year Microsoft introduced and within a few months open-sourced a text editor called Visual Studio Code. Most recently, the company committed to releasing a version of its SQL Server database software on top of Linux, even though Microsoft for decades has been a Windows company before anything else.
Microsoft’s Scott Hanselman has a blog post on the technology here.
Of course, developers can still use PowerShell, which comes with Windows 10.
The implementation has a few peculiarities — and just to make sure people realize that, it’s listed as a beta. There are some things you can’t do with Bash on Windows that might come as a surprise.
“Note that Bash and Linux tools cannot interact with Windows applications and tools, and vice-versa. So you won’t be able to run Notepad from Bash, or run Ruby in Bash from PowerShell,” Microsoft program manager Clint Rutkas wrote in a blog post. And not every single Bash command will work.
In addition, Rutkas wrote, Bash for Windows is not meant to be run on a server.
“For running production workloads on Ubuntu, we have some great solutions using Azure, Hyper-V, and Docker, and we have great tooling for developing containerized apps within Windows using Docker Tools for Visual Studio, Visual Studio Code and yo docker,” Rutkas wrote.
Update on April 6: This feature shipped in Windows 10 preview build 14316 for Insiders in the fast ring.