Who, in a million years, would ever have thought they would hear the words “Microsoft loves Linux.” And yet, Microsoft seems to have a bromance going with the penguin. Under both Bill Gates and Steve Ballmer, Linux was treated as if it were a dangerous disease to be eradicated, kind of like Ebola. Under current CEO Satya Nadella, Microsoft has shifted their thinking. No longer is Linux viewed as an existential threat and, instead, now seems to be seen as an opportunity. Or perhaps it’s a simple realization that Linux is a part of the IT landscape and will simply not go away. Either way, the outward hostile has given way to an embrace of the former enemy.
A few years ago (around 2012), Microsoft began running Linux on their Azure cloud service. At the time it seemed like a small thing. It was an option like any other option. Azure was obviously targeted at the huge world of Microsofties and .Net developers. Sure you could run .Net and SQL Server systems on virtual bare metal IaaS, but wasn’t it more convenient to run Microsoft oriented systems on a cloud provisioned with all the Microsoft bits? Perhaps but a lot of .Net apps still seemed to live on Amazon’s AWS. For this reason, offering Linux on Azure looked like more of a reflexive move. By allowing potential Azure customers to run everything – .Net, Java Stack, or LAMP apps – on one platform they would at least have parity with Oracle, Amazon, IBM, and Google plus a little extra Microsoft goodness.
That, it turned out, was only the beginning of the Microsoft-Linux bro hug. Early this year (2016), Microsoft announced it would make a version of SQL Server available for Linux. This is core stuff. SQL Server and Windows Server 2016 are the heart of Microsoft’s enterprise software infrastructure offerings. To decouple them seems like anathema. Such is the new found commitment to openness and Linux.
Just when everyone thought Microsoft couldn’t cozy up to the Linux world more, came an announcement last week at the annual Build conference. Working with Canonical, the well-known Ubuntu Linux distribution company, Microsoft has built the Linux bash shell right into Windows 10 and will be distributing it with the Anniversary Update this summer. Unlike products such as Cywin, the bash shell is implemented through a Linux subsystem within Windows, and is not just Windows programs masquerading as GNU commands. That means it is not emulated but, instead, running native as a Linux shell should. This makes Windows 10 a Microsoft Windows-Linux hybrid which will allow developers, as well as geeks in general, to write shell scripts for Windows and Linux. It also will allow the running of many other Linux programs on Windows computers.
For developers, bash for Windows represents the best of all possible scenarios. Many developers need to keep two computers – one for development tools and the other for Microsoft Office and email. It’s irritating to have to switch between multiple computers or run an entire virtual machine OS just to do typical tasks such as working with containers or testing on a LAMP stack. Sometimes there are Windows equivalents but not always and rarely are they exactly the same. When this update is released, developers will be able to develop and deploy applications using the same computer as they use for email without running virtual machines.
Clearly, Microsoft finally recognizes that Linux is a force to be reckoned with in the IT world. Unless a developer is a pure .Net programmer, they cannot help but operate some of the time in a Linux environment. By making the bash shell and Linux binaries part of the Windows desktop experience, they protect their desktop OS franchise from encroachment by both Linux and MAC OS X. There’s no doubt that this is not about the love of Linux but showing the love to the Linux developer. In the past, Microsoft endangered its Windows franchise by positioning it as an us-or-them battle to the death with any other OS. Developers almost never see the world that religiously. Instead, they look for the best tools to accomplish their goals. By cozying up to Linux, Microsoft gives all the developers that do not work in a .Net environment a reason to maintain engagement with Microsoft beyond their email and word processor.
This is a sea change for Microsoft, as is the whole hearted adoption of the cloud. Rather than fight with developers and IT professionals, they have learned to embrace their perspective. This is an important and, eventually, profitable change for Microsoft and a testimony to the CEO Nadella’s leadership.