Only months after Microsoft and Canonical worked together to bring the bash shell to Windows, Microsoft has returned the favor. PowerShell, Windows automation and command line shell, now runs on Linux and OS X, and has been open sourced under the MIT license. There is an alpha release available on GitHub for those who want to get their feet wet.
What this means is that those who are used to working in Windows will be able to do tasks in Linux using familiar tools, just as bash can now be used in Windows by those more comfortable with Linux tools. Life just got easier for a lot of people.
For those who've been around long enough, from both the Windows and Linux camps, this is something akin to a miracle. It is the realization of a peace being established between two former adversaries, a process that began when Satya Nadella took the helm in Redmond and announced a new direction for the company with his "Microsoft loves Linux" proclamation.
There are good solid reasons for Redmond's newly found love for Linux, as well as for the PowerShell/bash exchange. Today's enterprise customers work with multiple platforms and often across several clouds. With this move, Microsoft can now offer customers ease and flexibility when managing both Windows and Linux machines.
In developing the Linux port, Microsoft and its partners have been careful to address differences in the two operating systems. Aspects of PowerShell that pertain only to Windows, such as working with registries, have been removed, and modifications have been made for the Linux command line, such as accounting for its case sensitive nature and its use of the forward slash instead of the backslash when navigating directories.
This is mostly about the cloud, of course. Microsoft is betting much of its future on Azure, where it needs Linux. At last year's All Things Open conference, Microsoft Azure CTO Mark Russinovich explained, "It’s obvious that if we don’t support Linux and open source in our cloud, then we’ll be a Windows only cloud and that would not be practical." It's clear that Microsoft understands that the public cloud doesn't begin and end at Azure's doorstep and has included tools to interact with AWS and VMware in all versions of PowerShell.
As should be expected, there are some chinks in this technology swap that will need smoothing over. In the week leading up to Microsoft's announcement, security experts were warning that Windows Subsystem for Linux, which allows bash and other Linux binaries to be run in Windows (a beta version is included in the Windows Anniversary Update) potentially poses a security threat. This is possible, as Windows and Linux take different approaches to security, but it will be worked out.
When making the PowerShell announcement on Thursday, Microsoft's Jeffrey Snover indicated that more information on this project will be made available at next week's LinuxCon expo in Toronto.