Lately Microsoft has received a lot of attention for its embracing of Linux and open source, but it may surprise you to know that Microsoft has been doing open source since 2004, the same year Facebook and Ubuntu were launched.

I did a bit of digging, with some help, and uncovered the most important open source announcements from Microsoft since 2004. Watch for this slideshow to grow as the company continues its open source journey.

01 wix first
2004: WiX toolset
The WiX toolset was Microsoft’s first open source project released back in April, 2004. The toolset came with a compiler, a linker, a lib tool and a decompiler. In a blog post, Rob Mensching, the original author of WiX wrote, “WiX became the first project from Microsoft to be released under an OSS approved license, namely the Common Public License.


02 sharp
F# is a cross-platform, object oriented programming language developed by Microsoft. It was released as an open source project under the Apache 2.0 license. It runs on Linux, Mac OS X, Android, iOS and Windows. The project is now being developed by the F Sharp Software Foundation.

03 codeplex
CodePlex

CodePlex is Microsoft’s free open source project hosting site. It’s seen as Microsoft’s first major attempt at engaging with the open source community. When the company announced the beta, CodePlex had 12 projects on the site. Today the site hosts hundreds of projects and also supports Git as a source control option.

04 php windows
2006: Support for PHP on Windows
Microsoft and Zend Technologies announced a collaboration to improve the support for PHP on Windows Server 2003. In a press release about the announcement, Microsoft stated that whatever technical improvements the companies make for “PHP deploying on the Windows Server platform will be submitted under the PHP license to the PHP community for feedback and contribution.”

05 novell
2006: Signs controversial deal with Novell
This was the announcement that shook the Linux world. Microsoft and Novell (then owner of SUSE) announced a deal to work together. Though the companies primarily focused on interoperability between Microsoft and Novell solutions it was the patent agreement clause that stirred the hornet’s nest.

06 microsoft license
2007: Open source licences get OSI approval
Open Source Initiative (OSI) approved Microsoft’s open source licenses Microsoft Public License (Ms-PL) and the Microsoft Reciprocal License (Ms-RL). In a blog post OSI wrote, “The decision to approve was informed by the overwhelming (though not unanimous) consensus from the open source community that these licenses satisfied the 10 criteria of the Open Source definition, and should therefore be approved.”

07 samba
2007: Patches things up with Samba
After losing in the European courts, Microsoft’s long fight with the Samba project came to an end. Microsoft and Protocol Freedom Information Foundation (PFIF), a non-profit organization created by the Software Freedom Law Center, signed a deal under which Microsoft handed over the protocol documentation so that the Samba project can work seamlessly with Windows.

08 interoperable
2008: Announces interoperability principles
In 2008, Microsoft made some really significant changes to the way it did business and engaged with the open source companies. In a blog post, the company said: ”Microsoft is implementing four new interoperability principles and corresponding actions across its high-volume business products: (1) ensuring open connections; (2) promoting data portability; (3) enhancing support for industry standards; and (4) fostering more open engagement with customers and the industry, including open source communities.

09 adodb
2008: Submits a patch for ADOdb
Microsoft made its first contribution to the PHP community projects by submitting a patch for the ADOdb, a popular database abstraction layer for PHP. Sam Ramji, Microsoft’s then senior director of platform strategy (now CEO of Cloud Foundry) wrote in a blog post, “The patch enables support for SQL Server through the new native driver for PHP built by the SQL Server team.  ADOdb is licensed under the LGPL and BSD.  This is our first code contribution to PHP community projects but will not be the last.”

010 hbase
2008: Starts contributing to Apache Hadoop HBase
Microsoft acquired a San-Francisco based start-up Powerset, which heavily relied on Apache Hadoop’s HBase project.  Hbase is an open-source, column-oriented, distributed database written in Java. Powerset had sponsored two developers who worked on Hbase and post-acquisition Microsoft resumed contribution to the HBase project and wrote in a blog post, “We’re just scratching the surface on the range of opportunities for Microsoft to participate in and contribute to open source communities in ways that are good for customers, good for communities – and good for business.”

011 apache
2008: Contributes to Apache projects
Microsoft inched closer toward open source Web server Apache project by joining the Apache Software Foundation as a platinum sponsor. The company also contributed a patch to help PHP code work better with Microsoft SQL Server. In the same year, Microsoft signed a partnership deal with Sourcesense. One of the initial goals of which is contributing to the development of a new version of Apache POI, a top-level project of the Apache Software Foundation (ASF).

013 linux many
2009: Contributes to Linux kernel
In 2009 Microsoft contributed over 20,000 lines of code to the Linux kernel. The code enhanced the performance of the Linux operating system when virtualized on Windows Server 2008 Hyper-V or Windows Server 2008 R2 Hyper-V.  This contribution made Microsoft one of the leading contributors to the Linux kernel … for a short time.

012 node
2011: Node.js comes to Windows
Microsoft worked with Joyent and Node.js author Ryan Dahl to port Node.js to Windows. In a 2011 blog post Microsoft’s Claudio Caldato wrote, “Our first goal is to add a high-performance IOCP API to Node to give developers the same high-performance/scalability on Windows that Node is known for, given that the IOCP API performs multiple simultaneous asynchronous input/output operations.” Microsoft’s Azure team also worked on iisnode to enable hosting of Node.js on Microsoft’s IIS server.

014 asp net
2012: ASP.NET MCV goes open source
In 2012 the company open sourced parts of its Web stack, including ASP.NET MCV, Razor and Web API under Apache 2.0 license. In a blog post, Microsoft’s Scott Guthrie said, “Doing so will enable a more open development model where everyone in the community will be able to engage and provide feedback on code checkins, bug-fixes, new feature development, and build and test the products on a daily basis using the most up-to-date version of the source code and tests.” This was also the first time, as Scott wrote, that developers outside of Microsoft would be allowed to submit patches and code contributions that the Microsoft development team would review for potential inclusion in the products.

015 ms open
2012: Microsoft Open Technologies, Inc.
In 2012 Microsoft announced the launch of a wholly owned subsidiary called Microsoft Open Technologies, Inc., whose primary goal was to “advance the company’s investment in openness – including interoperability, open standards and open source,” wrote Microsoft’s Jean Paoli.

016 typescript
TypeScript is a free and open source programming language that Microsoft released as an open source project under the Apache 2.0 license. In a blog post, announcing TypeScript Microsoft’s S.Somasegar explained it is “a superset of JavaScript that combines type checking and static analysis, explicit interfaces, and best practices into a single language and compiler.

017 vmdepot
In 2013, the aforementioned Microsoft Open Technologies, Inc. announced VM Depot, a community-driven repository of Linux and FreeBSD virtual machine images for Microsoft Azure. Announcing the project, Gianugo Rabellino wrote, “On VM Depot the community can build, deploy and share their favorite Linux configuration, create custom open source stacks, work with others and build new architectures for the cloud that leverage the openness and flexibility of the Windows Azure platform.”

018 net
2014: .NET goes open source
In 2014 Microsoft announced it would open source the entire server side stack of .NET. In a press release, Microsoft wrote that it would be “providing the full .NET server stack in open source, including ASP.NET, the .NET compiler, the .NET Core Runtime, Framework and Libraries, enabling developers to build with .NET across Windows, Mac or Linux.” The .NET initiative was made under the umbrella of the .NET Foundation.

019 openjdk
2014: Contributes to OpenJDK
Microsoft Open Technologies contributed its first patch into OpenJDK’s JDK9 dev stream in 2014. Announcing the contribution, Martin Sawicki wrote in a blog post, “This code was developed as a result of requests from some of our partners, and it enables Java sockets to take advantage of Windows’ TCP Loopback Fast Path capability, which speeds up the communication between sockets that are on the same machine.”

020 microsoft linux
2014: Nadella professes love for Linux
In 2014 Microsoft’s new CEO Satya Nadella proclaimed that “Microsoft Loves Linux.” This was a sea change in sentiment from the Microsoft that grudgingly agreed to technologically work with Linux, but acted with hostility towards it in the business world.

021 debian
2015: Debian comes to Azure
Microsoft brought Debian, one of the most popular Linux distributions, to its Azure cloud through a partnership with credativ. In a blog post about the announcement, Stephen Zarkos, Senior Program Manager, Azure, wrote, “With this announcement, customers are able to provision Debian-based virtual machines in Microsoft Azure by selecting the most up-to-date point versions of Debian 7 (codename “wheezy”) and Debian 8 (codename “jessie”) built by credativ.”

022 red hat
2015: RHEL comes to Azure
By the end of 2015, Microsoft made a deal with rival Red Hat to bring Red Hat Enterprise Linux (RHEL) to its Azure cloud. The two companies also agreed to work together to “address common enterprise, ISV and developer needs for building, deploying and managing applications on Red Hat software across private and public clouds.”

023 openssh
2015: OpenSSH coming to Windows
Linux runs on more than 25% of Azure cloud machines. Those users need the ability to securely log into their machines to manage them. Microsoft planned to bring the open source project SSH to Windows through PowerShell. The company said that not only will it bring SSH support to PowerShell they will also contribute to the OpenSSH community.

024 ubuntu
2016: Ubuntu comes to Azure
In January, 2016 Microsoft and Canonical showcased the first Technical Preview of the Azure Stack with Ubuntu Linux. John Zannos wrote on an Ubutu blog that they are contributing validated Ubuntu images that enable open source applications to work great in Azure Stack environments. With this announcement, Microsoft now has all leading Linux distributions  available for its Azure cloud.

025 sql
Credit: Microsoft SQL Server Logo
2016: SQL Server for Linux
With this move Microsoft will enable customers to run SQL Server as a consistent data platform across Windows Server and Linux, as well as on-premises and cloud. Microsoft’s Scott Guthrie said in a blog post, “We are bringing the core relational database capabilities to preview today, and are targeting availability in mid-2017.”

026 bash windows
Microsoft worked closely with Canonical to bring the popular Linux command-line tool to Windows 10. Microsoft created a technology called Windows Subsystem for Linux that allows Ubuntu to run on the Windows kernel. Mike Harsh wrote in a blog post. “You can now run Bash scripts, Linux command-line tools like sed, awk, grep, and you can even try Linux-first tools like Ruby, Git, Python, etc. directly on Windows.”

A version of the story was first published in CIO.com