The tech giant lays out its plans for the future of Ubuntu and Bash on Windows 10.
Microsoft has pledged that Windows 10 will eventually run the bulk of Linux software used by developers.
The firm recently updated Windows 10 to let users run a range of Linux tools from inside the OS.
In what appears to be an attempt by Microsoft to woo developers using Linux-based OSes and Mac OS X, the firm has said it will continue to improve Windows 10's support for Linux command-line tools.
"We're not done yet. We have a long way to go yet until we can fully say that this thing is really comprehensibly compatible with the majority of the tools that you want to use," said Rich Turner, senior program manager at Microsoft, in a recent update.
He appealed to developers to use the Windows Subsystem for Linux (WSL) to run all of the software and services they would normally run on a Linux-based OS.
"Fire up a Windows 10 Insiders' build instance and run your code, run your tools, host your website on Apache, access your MySQL database from your Java code," he said.
"Whatever it is that you normally do on Linux to build an application: whether it's in Go, in Erlang, in C, whatever you use, please, give it a try on Bash WSL, and importantly file bugs on us.
"It really makes our life a lot easier and helps us build a product that we can all use and be far more productive with."
The pledge to improve Windows' support for Linux tools reflects a recent change in Microsoft's rhetoric towards open-source software. While Microsoft's then CEO Steve Ballmer described open-source software as a cancer in 2001, in 2014 Microsoft CEO Satya Nadella proclaimed that "Microsoft loves Linux".
Nadella's declaration may be simplistic, and ignore Microsoft's desire to stop organizations switching from Microsoft to open-source desktop software, as seen in Munich, but the tech giant has changed its hardline approach—even if only for pragmatic reasons.
This month Microsoft became a platinum member of the Linux Foundation, the culmination of years of Microsoft gradually making greater use of Linux, as evidenced by everything from Microsoft supporting eight different Linux distros on its Azure cloud platform to rolling its own specialized Linux distro called Azure Cloud Switch.
Matthias Kirschner, president of the Free Software Foundation Europe (FSFE), said Microsoft's gradual acceptance of Linux was a compliment, an acknowledgement of the quality of Free Software.
"It is an implied admission of the high quality of Free Software tools on behalf of Microsoft," he said.
"The same way demand for high performance operating systems compelled Microsoft to offer several flavours of GNU/Linux on their Azure cloud platform, the elegance and efficiency of Free Software command line tools have pushed Microsoft to develop the Windows Subsystem for GNU/Linux in a bid to remain competitive."
And while he said he'd prefer individuals used an entirely free and open software system, "we understand this is not always possible for them".
"At the end of the day it just means there is more Free Software getting used by more people. It is a net gain for the Free Software movement."
In Windows 10, Ubuntu/Linux software runs on top of the Windows Subsystem for Linux (WSL). Users run Linux software and issue commands at the command line via the Bash shell, or using alternative shells like zsh and fish, which can be installed using the apt-get package manager.
While some users have got Ubuntu apps with graphical interfaces running on the system, Microsoft is focusing its efforts on getting command-line tools to work on Bash on Windows at native or near-native speeds.
Turner also outlined the improvements to Bash on Windows that will be generally available in Windows 10 after the Creators Update early next year.
Forthcoming updates, some of which are already available to those testing early builds of Windows 10 under the Windows Insider Program, include support for Ubuntu 16.04 and more Linux tools.
Broader and deeper support for Linux syscalls will improve support for languages such as node.js, Go, Ruby, Java.
Improvements to the networking stack will also add support for ping and ifconfig commands, in turn unlocking other technologies that rely on the widely-used ifconfig command.
The other major new addition will be increased interoperability between the Bash and Windows environments. Effectively this will let developers call Windows applications from within Bash — allowing them to write a Bash script to automate a complex build that includes Windows applications — and to invoke Bash applications from Windows PowerShell.
Finally, more minor changes include better UI rendering for complex console-based applications such as vim, emacs, tmux and mc, as well as mouse support within these tools.