Microsoft Puts Spotlight on Open Source at Build

Microsoft made several moves to strengthen its open source bona fides during this week's Build conference, announcing support for the Bash shell on Windows and open-sourcing the core Xamarin platform.

The Bash support, announced during the Day 1 keynote talk at Build, relates to the native Bash command-line tool running on Windows. Bash is the familiar coding tool that Linux developers and administrators use, but Microsoft just added this capability for Windows to meet developer needs at this point. It's not designed to host Linux-based Web sites or run server infrastructure, Microsoft explained in an announcement. The Bash shell isn't running in a virtual machine; it runs natively in Windows. Microsoft went ahead with this project to add native support to meet the needs of developers who typically use open source, Linux-based tools.

Moreover, the Bash shell on Windows capability is just at the beta test stage for now. It will "first become available in Windows 10 'Insiders' builds after the Build conference," the announcement added.

To get the Bash shell on Windows, Microsoft built a "Windows Subsystem for Linux" within Windows. Specifically, Microsoft worked with Canonical to build the Windows Subsystem for Linux into the Windows kernel. Consequently, right now, it's the Bash shell running on Ubuntu Linux user-mode binaries within Windows. It's running the "Trusty" version of Ubuntu Linux.

Here's Microsoft's diagram of the Windows Subsystem for Linux, showing the design:

[Click on image for larger view.] Windows Subsystem for Linux. (Source: Build 2016 presentation.)

With the Windows Subsystem for Linux in place, developers can run various Linux tools on Windows, such as awk, sed, grep and vi, according to a blog post by Microsoft developer Scott Hanselman. Microsoft also beefed up the underlying console to add better support for ANSI and VT110. Hanselman also noted that Microsoft plans to release technical details on the Bash shell for Windows "in the coming weeks." Ruby, Git, and Python also can be used directly on Windows with the Bash shell on Windows capability, Microsoft's announcement explained.

The new Bash shell support is at the preview stage and "some stuff doesn't work," according to a Build 2016 presentation by Rich Turner and Russ Alexander, both senior programming managers at Microsoft. They presented this slide showing the present deficiencies of the Bash shell support:

What works and doesn't in the Bash for Linux preview. (Source: Build 2016 presentation.)

Another drawback of the Bash shell on Windows is 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's announcement explained.

However, Microsoft is looking for feedback on such issues. It seems open to building what developers most want to see.

Open Source Xamarin
Microsoft followed up Wednesday's Bash announcement with news on Thursday that it will offer its newly acquired Xamarin tooling at no cost and that it will contribute its core platform to the .NET Foundation.

Scott Guthrie, Microsoft's executive vice president for cloud and enterprise, made the Xamarin announcement during the Build Day 2 keynote. Microsoft acquired Xamarin, which offers popular tooling for developing mobile apps based on the .NET Framework and C# language, last month. Microsoft will make the tooling available free of charge to all Visual Studio developers, including those using the free Visual Studio Community edition, Guthrie said.

Attendees responded to the news with rousing applause. The announcement will open the path for .NET developers to build C#-based applications that can run natively on iOS, Android and Windows without recompiling them for each platform.

Guthrie also announced that Microsoft will contribute the Xamarin core platform to the open source community via the .NET Foundation, which Microsoft created last year. The .NET Foundation is an independent organization to bring collaboration between the open source and C# developer communities.

"This means everything you need to run a Xamarin app on any device is open source," Guthrie said. "We think this makes Xamarin more attractive for mobile development for any device."

The .NET Foundation received a major boost from Red Hat, Unity and JetBrains, who are the latest to join, Guthrie announced. "It's a really exciting time to be a .NET developer and we're excited to see .NET apps be built."

About the Authors

Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.

Jeffrey Schwartz is editor of Redmond magazine and also covers cloud computing for Virtualization Review's Cloud Report. In addition, he writes the Channeling the Cloud column for Redmond Channel Partner. Follow him on Twitter @JeffreySchwartz.