Microsoft, a tech company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.[1]
Microsoft open sourced some of its code, including the .NET Framework, and made investments in Linux development, server technology, and organizations, including the Linux Foundation and Open Source Initiative. Linux-based operating systems power the company's Azure cloud services. Microsoft acquired GitHub, the largest host for open source project infrastructure, in 2018. Microsoft is among the site's most active contributors. While this acquisition led a few projects to migrate away from GitHub,[2] this proved a short-lived phenomenon as by 2019 there were over 10 million new users of GitHub.[citation needed]
Since 2017, Microsoft is one of the biggest open source contributors in the world,[3] measured by the number of employees actively contributing to open source projects on GitHub, the largest host of source code in the world.[4][5]
The paradigm of freely sharing computer source code—a practice known as open source—traces back to the earliest commercial computers, whose user groups shared code to reduce duplicate work and costs.[6] Following an antitrust suit that forced the unbundling of IBM's hardware and software, a proprietary software industry grew throughout the 1970s, in which companies sought to protect their software products. The technology company Microsoft was founded in this period and has long been an embodiment of the proprietary paradigm and its tension with open source practices, well before the terms "free software" or "open source" were coined. Within a year of founding Microsoft, Bill Gates wrote an open letter that positioned the hobbyist act of copying software as a form of theft.[7]
Microsoft successfully expanded in personal computer and enterprise server markets through the 1990s, partially on the strength of the company's marketing strategies.[8] By the late 1990s, Microsoft came to view the growing open source movement as a threat to their revenue and platform. Internal strategy memos from this period, known as the Halloween documents, describe the company's potential approaches to stopping open source momentum. One strategy was "embrace-extend-extinguish", in which Microsoft would adopt standard technology, add proprietary extensions, and upon establishing a customer base, would lock consumers into the proprietary extension to assert a monopoly of the space. The memos also acknowledged open source as a methodology capable of meeting or exceeding proprietary development methodology. Microsoft downplayed these memos as the opinions of an individual employee and not Microsoft's official position.[9]
While many major companies worked with open source software in the 2000s,[10] the decade was also marked by a "perennial war" between Microsoft and open source in which Microsoft continued to view open source as a scourge on its business[11] and developed a reputation as the archenemy of the free and open source movement.[12] Bill Gates and Microsoft CEO Steve Ballmer suggested free software developers and the Linux kernel were communist.[13][14][15] Ballmer also likened Linux to a kind of cancer on intellectual property. Microsoft sued Lindows, a Linux operating system that could run Microsoft Windows applications, as a trademark violation. The court rejected the claim and after Microsoft purchased its trademark, the software changed its name to Linspire.[11]
In 2002, Microsoft began experimenting with 'shared source', including the Shared Source Common Language Infrastructure, the core of .NET Framework.[16]
In 1998, Microsoft published at least one public beta release of their Services for UNIX (SFU)[17] based on the MKS toolkit, which in turn included some GNU utilities licensed under the GPL. Microsoft fulfilled the obligations imposed by the GPL and other Open Source Software (FLOSS) licenses by offering the source code of these software components and their licenses for download.
Services for UNIX (SFU) v1.0 was released in February 1999.
In April 2004, Windows Installer XML (WiX) was the first Microsoft project to be released under an open-source license, the Common Public License. Initially hosted on SourceForge, it was also the first Microsoft project to be hosted externally.
In June 2004, for the first time Microsoft was represented with a booth at LinuxTag, a free software exposition, held annually in Germany.[18] LinuxTag claims to be Europe's largest exhibition for open source software.
In August 2004, Microsoft made the complete source code of the Windows Template Library (WTL) available under the Common Public License and released it through SourceForge. Since version 9.1, the library is licensed under the Microsoft Public License.[19]
In September 2004, Microsoft released its FlexWiki, making its source code available on SourceForge.[20] The engine is open source, also licensed under the Common Public License. FlexWiki was the third Microsoft project to be distributed via SourceForge, after WiX and Windows Template Library.
In 2005, Microsoft released the F# programming language under the Apache License 2.0.[16]
In 2006, Microsoft launched its CodePlex open source code hosting site, to provide hosting for open-source developers targeting Microsoft platforms. In the same year, Microsoft ported PHP to Windows under PHP License[16] and also partnered with and commissioned Vertigo Software to create Family.Show, a free and open-source genealogy program, as a reference application for Microsoft's latest UI technology and software deployment mechanism at the time, Windows Presentation Foundation and ClickOnce.[21][22][23] The source code has been published on CodePlex and is licensed under the Microsoft Public License.
In November 2006, Microsoft and Novell announced a broad partnership to make sure Windows interoperates with SUSE Linux. The initial agreement endured until 2012 and included promises not to sue over patents as well as joint development, marketing and support of Windows – Linux interoperability solutions. In addition, Microsoft and Novell agreed to work to ensure documents created in the free OpenOffice.org productivity suite can seamlessly work in Office 2007, and vice versa. Both companies also agreed to develop on translators to improve interoperability between Office Open XML and OpenDocument formats. The company also purchased 70,000 one-year SUSE Linux Enterprise Server maintenance and update subscription coupons from Novell. Microsoft could distribute the coupons to customers as a way to convince them to choose Novell's Linux rather than a competitor's Linux distribution.[24]
Microsoft CEO Steve Ballmer acknowledged that more customers are running mixed systems and said about the partnership with Novell:
While we're going to compete, we're going to collaborate in the right way.
— Steve Ballmer, CEO of Microsoft[25]
In June 2007, Tom Hanrahan, former Director of Engineering at the Linux Foundation, became Microsoft's Director of Linux Interoperability.[26][27] The Open Source Initiative approved the Microsoft Public License (MS-PL) and Microsoft Reciprocal License (MS-RL) in 2007.[16] Microsoft open sourced IronRuby, IronPython, and xUnit.net under MS-PL in 2007.[16]
In 2008, Microsoft joined the Apache Software Foundation[28] and co-founded the Open Web Foundation with Google, Facebook, Sun, IBM, Apache, and others.[16] Also in 2008, Microsoft began distributing the open source jQuery JavaScript library together with the Visual Studio development environment for use within the ASP.NET AJAX and ASP.NET MVC frameworks.[29][30]
When Microsoft released Hyper-V in 2008, SUSE Linux Enterprise Server became the first non-Windows operating system officially supported on Hyper-V. Microsoft and Novell signed an agreement to work on interoperability two years earlier.[31]
Microsoft first began contributing to the Linux kernel in 2009.[16] The CodePlex Foundation, an independent 501(c)(6) non-profit corporation founded by Microsoft and led mostly by Microsoft employees and affiliates, was founded in September 2009. Its goal was to "enable the exchange of code and understanding among software companies and open source communities."[32][33] Later in September 2010, the name Outercurve Foundation was adopted.[34]
In November 2009, Microsoft released the source code of the .NET Micro Framework to the development community as free and open-source software under the Apache License 2.0.[35]
StyleCop, an originally proprietary static code analysis tool by Microsoft, was re-released as an open-source in April 2010 on CodePlex. Based on customer feedback, Microsoft relicensed IronRuby, IronPython, and the Dynamic Language Runtime (DLR) under Apache License 2.0 in July 2010.[36]
Microsoft signed the Joomla contributor agreement and started upstreaming improvements in 2010.[16]
In 2011, Microsoft started contributing code to the Samba project. The same year, Microsoft also ported Node.js to Windows, upstreaming the code under Apache License 2.0.[16] The first version of Python Tools for Visual Studio (PTVS) was released in March 2011. After acquiring Skype in 2011, Microsoft continued maintaining the Skype Linux client.[16] In July 2011, Microsoft was the fifth largest contributor to the Linux 3.0 kernel at 4% of the total changes.[37][38] The company became a partner with LinuxTag for their 2011 event and also sponsored LinuxTag 2012.[39][40]
In 2012, Microsoft began hosting Linux virtual machines in the Azure cloud computing service and CodePlex introduced git support.[16] The company also ported Apache Hadoop to Windows, upstreaming the code under MIT License.[16] In March 2012, a completely rewritten version of ChronoZoom was made available as open source[41] via the Outercurve Foundation. Also, ASP.NET, ASP.NET MVC, ASP.NET Razor, ASP.NET Web API, Reactive extensions, and IL2JS (an IL to JavaScript compiler) were released under Apache License 2.0.[16] The TypeScript programming language was released under Apache License 2.0 in 2012. It was the first Microsoft project hosted on GitHub.[16] In June 2012, Microsoft contributed Open Management Infrastructure to The Open Group with the goal "to remove all obstacles that stand in the way of implementing standards-based management so that every device in the world can be managed in a clear, consistent, coherent way and to nurture [and] spur a rich ecosystem of standards-based management products."[42]
In 2013, Microsoft relicensed the xUnit.net unit testing tool for the .NET Framework under Apache License 2.0 and transferred it to the Outercurve Foundation.[16] Also in 2013, Microsoft added Git support to Visual Studio and Team Foundation Server using libgit2, the most widely deployed version of Git. The company is dedicating engineering hours to help further develop libgit2 and working with GitHub and other community programmers who devote time to the software.[43]
In 2014, Satya Nadella was named the new CEO of Microsoft. Microsoft began to adopt open source into its core business. In contrast to Ballmer's stance, Nadella presented a slide that read, "Microsoft loves Linux".[12] At the time of the acquisition of GitHub, Nadella said of Microsoft, "We are all in on open source." As the industry trended towards cloud, embedded, and mobile computing, Microsoft turned to open source to stay apace in these open source dominated fields. Microsoft's adoption of open source included several surprising turns.
In 2014, the company opened the source of its .NET Framework to promote its software ecosystem and stimulate cross-platform development. Microsoft also started contributing to the OpenJDK the same year.[16] The Wireless Display Adapter, released in 2014, was Microsoft's first hardware device to use embedded Linux.[16]
In the beginning of 2015, Microsoft open sourced the Z3 Theorem Prover, a cross-platform satisfiability modulo theories (SMT) solver.[44]
Also in 2015, Microsoft co-founded the Node.js Foundation[45] and joined the R Foundation. After completing the acquisition of Revolution Analytics in 2015,[46] Microsoft integrated the open source R programming language into SQL Server 2016, SQL Server 2017, SQL Server 2019, Power BI, Azure SQL Managed Instance, Azure Cortana Intelligence, Microsoft ML Server and Visual Studio 2017.[47]
The same year, Microsoft also open sourced Matter Center, Microsoft's legal practice management software and also Chakra, the Microsoft Edge JavaScript engine at the time.[16] Also in 2015, Microsoft released Windows 10 with native support for the open-source AllJoyn framework, which means that any Windows 10 device can control any AllJoyn-aware Internet of Things (IoT) device in the network.[48] Microsoft has been developing AllJoyn support and contributing code upstream since 2014.[16]
Microsoft opened the keynote speech at All Things Open in 2015 by stating that:
Microsoft's approach to open today is: Enable, integrate, release, and contribute.
In August 2015, Microsoft released WinObjC, also known as Windows Bridge for iOS, an open-source middleware toolkit that allows iOS apps developed in Objective-C to be ported to Windows 10.[50][51][52] On November 18, 2015, Visual Studio Code was released under the proprietary Microsoft License and a subset of its source code was posted to GitHub under the MIT License.[53]
In January 2016, Microsoft became Gold Sponsor of SCALE 14x – the fourteenth annual Southern California Linux Expo, a major convention.[55]
When Microsoft acquired Xamarin and LinkedIn in 2016, it relicensed the Mono framework under MIT License and continued maintaining the Kafka stream-processing software platform as open source.[16] Also in 2016, Microsoft introduced the Windows Subsystem for Linux, which lets Linux applications run on the Windows operating system. The company invested in Linux server technology and Linux development to promote cross-platform compatibility and collaboration with open source companies and communities, culminating with Microsoft's platinum sponsorship of the Linux Foundation and seat on its board of directors.[56]
Microsoft released SQL Server and the now open source PowerShell for Linux.[16] Also, Microsoft began porting Sysinternals tools, including ProcDump and ProcMon, to Linux.[57] R Tools for Visual Studio were released under Apache License 2.0 in March 2016.
In March 2016, Ballmer changed his stance on Linux, saying that he supports his successor Satya Nadella's open source commitments. He maintained that his comments in 2001 were right at the time but that times have changed.[58][59]
Commentators have noted the adoption of open source and the change of strategy at Microsoft:[60]
The company has become an enthusiastic supporter of Linux and of open source and a very active member of many important projects.
— Jim Zemlin, Executive Director of The Linux Foundation[61]
At EclipseCon in March 2016, Microsoft announced that the company is joining the Eclipse Foundation as a Solutions Member.[62]
The BitFunnel search engine indexing algorithm and various components of the Microsoft Bing search engine were made open source by Microsoft in 2016.[63][64] vcpkg, a cross-platform open source package manager, was released in September 2016.[65]
Microsoft joined the Open Source Initiative, the Cloud Native Computing Foundation, and the MariaDB Foundation in 2017.[16] The Open Source Initiative, formerly a target of Microsoft, used the occasion of Microsoft's sponsorship as a milestone for open source software's widespread acceptance.
The Debian-based SONiC network operating system was open sourced by Microsoft in 2017.[66]
Also the same year, the Windows development was moved to Git and Microsoft open sourced the Git Virtual File System (GVFS) developed for that purpose.[67][68] Other contributions to Git include a number of performance improvements useful when working with large repositories.[69][70] Microsoft opened the Microsoft Store to open source applications and gave the keynote speech at the Open Source Summit North America 2017 in Los Angeles.[16]
In 2018, the Microsoft CTO of Data spoke with ZDNet about the growing importance of open source stating that:
We meet customers where they are, and in particular if you want Linux we'll give you Linux; if you want MySQL, well we'll give you MySQL; you want NoSQL well we'll give you NoSQL -- that means you need to be part of open source; open source by nature is a community thing.
— Raghu Ramakrishnan, Microsoft CTO of Data[71]
Microsoft became Platinum Sponsor and delivered the keynote of the 2018 Southern California Linux Expo – the largest community-run open-source and free software conference in North America.[72][73]
Microsoft developed Linux-based operating systems for use with its Azure cloud services. Azure Cloud Switch supports the Azure infrastructure and is based on open source and proprietary technology, and Azure Sphere powers Internet of things devices. As part of its announcement, Microsoft acknowledged Linux's role in small devices where the full Windows operating system would be unnecessary.[73]
Also in 2018, Microsoft acquired GitHub, the largest host for open source project infrastructure. Microsoft is among the site's most active contributors and the site hosts the source code for Microsoft's Visual Studio Code and .NET runtime system. The company, though, has received some criticism for only providing limited returns to the Linux community, since the GPL license lets Microsoft modify Linux source code for internal use without sharing those changes.[76]
In 2018, Microsoft included OpenSSH, tar, and curl commands in Windows.[77][78] Also, Microsoft released Windows Calculator as open source under MIT License on GitHub.[79]
Since 2018, Microsoft has been a sponsor of the AdoptOpenJDK project. It is a drop-in replacement for Oracle's Java/JDK.[80]
In April 2018, Microsoft released the Windows 3.x/Windows NT File Manager source code licensed under the MIT License.[81][82] In August 2018, Microsoft added support for the open source Python programming language to Power BI.[83] In October 2018, Microsoft joined the Open Invention Network[84] and cross-licensed 60,000 patents with the open source community.[85][86]
In 2019, Microsoft's Windows Subsystem for Linux 2 transitioned from an emulated Linux kernel to a full Linux kernel within a virtual machine, improving processor performance manifold. In-keeping with the GPL open source license, Microsoft will submit its kernel improvements for accommodation into the master, public release.[87]
Also in 2019, Microsoft released Windows Terminal, PowerToys, and the Microsoft C++ Standard Library as open source[16] and transitioned its Edge browser to use the open source Chromium as the basis.[88] The Windows Console infrastructure was open-sourced under the MIT License alongside Windows Terminal.[89]
After publishing exFAT as an open specification, Microsoft contributed the patents to the Open Invention Network (OIN), and started upstreaming the device driver to the Linux kernel.[16]
At Build 2019, Microsoft announced that it is open-sourcing its Quantum Development Kit, including its Q# compilers and simulators.[90]
In December 2019, Microsoft released Microsoft Teams for Linux. This marked the first time Microsoft released an Office app for the Linux operating system. The app is available in native packages in .deb and .rpm formats.[91] Also in December 2019, after JS Foundation and Node.js Foundation merged to form OpenJS Foundation, Microsoft contributed the popular cross-platform desktop application development tool Electron to OpenJS Foundation.[92][93]
Project Verona, a memory-safe research programming language, was open sourced in January 2020.[94][95] Microsoft released DeepSpeed, an open source deep learning optimization library for PyTorch, in February 2020.[96]
In 2020, Microsoft open sourced the Java extension for Microsoft SQL Server,[16] MsQuic (a Windows NT kernel library for the QUIC general-purpose transport layer network protocol),[97] Project Petridish, a neural architecture search algorithm for deep learning,[98] and the Fluid Framework for building distributed, real-time collaborative web applications.[99] Microsoft also released the Linux-based Azure Sphere operating system.[16]
In March 2020, Microsoft acquired npm, the open source Node package manager. It is the world’s largest software registry with more than 1.3 million packages that have 75 billion downloads a month.[100][101] Also in March 2020, Microsoft together with researchers and leaders from the Allen Institute for AI, the Chan Zuckerberg Initiative, the Georgetown University's Center for Security and Emerging Technhology, and the National Library of Medicine released CORD-19, a public dataset of academic articles about COVID-19 and research related to the COVID-19 pandemic.[102] The dataset is created through the use of text mining of the current research literature.[103][104]
After exploring different alternative options and talking with various well-known commercial and open source package manager teams including Chocolatey, Scoop, Ninite and others such as AppGet, Npackd and the PowerShell based OneGet package manager-manager, Microsoft decided to develop and release the open source Windows Package Manager in 2020.[105]
Microsoft was one of the silver sponsors for the X.Org Developer’s Conference 2020 (XDC2020). Microsoft had multiple developers presenting on the opening day.[106]
Microsoft completed the first phase of porting the Java OpenJDK for Windows 10 on ARM devices in June 2020.[80]
In August 2020, Microsoft became founding member of the Open Source Security Foundation (OpenSSF), a cross-industry forum for a collaborative effort to improve open source software security.[107][108]
In September 2020, Microsoft released the Surface Duo, an Android-based smartphone with a Linux kernel.[109] The same month, Microsoft released OneFuzz, a self-hosted fuzzing-as-a-service platform that automates the detection of software bugs.[110] It supports Windows and Linux.[111]
Microsoft is a major contributor to the Chromium project with the highest percentage of all non-Google contributors coming from Microsoft (35.2%). The company has contributed 29.4% of all non-Google commits to the source code in 2020.[112] CBL-Mariner, a cloud infrastructure operating system based on Linux and developed by the Linux Systems Group at Microsoft for its edge network services and as part of its Microsoft Azure cloud infrastructure was open sourced in 2020.[113][114]
In February 2021, Microsoft made the source code for its Extensible Storage Engine (ESE) available on GitHub under MIT License.[115] Also in February 2021, Microsoft, together with four other founding companies (AWS, Huawei, Google, and Mozilla) formed the Rust Foundation as an independent non-profit organization to steward the open source Rust programming language and ecosystem.[116][117] In March 2021, Microsoft became founding member of the new Eclipse Adoptium Working Group whose goal is to promote free, open source Java runtimes.[118] Microsoft released a preview of the Microsoft Build of OpenJDK in April 2021. It is available for x64 server and desktop editions of Windows, as well as on Linux and macOS. The company provides long-term support for this distribution of the OpenJDK.[119] In April 2021, Microsoft also released a Windows 10 test build that includes the ability to run Linux graphical user interface (GUI) apps using Windows Subsystem for Linux 2.[120] In the following month, Microsoft launched an open source project to make the Berkeley Packet Filter work on Windows.[121]
At the Windows 11 announcement event in June 2021, Microsoft showcased the new Windows Subsystem for Android (WSA) that will enable support for the Android Open Source Project (AOSP) and will allow users to run Android apps on their Windows desktop.[122]
In August 2021, Microsoft announced that it is expanding its partnership to become a Strategic Member at the Eclipse Foundation.[123]
Microsoft released the source code of 3D Movie Maker under the MIT License in May 2022,[124][125] following a request by the Twitter user Foone a month earlier.[126] Also in May, Microsoft joined the XDP community and released a new open-source Express Data Path interface for Windows.[127][128]
In August 2022, Microsoft open sourced more than 1,500 of its 3D emoji to let creators remix and customize them. The library is available on Figma and GitHub.[129]
Microsoft is either founding member, joining member, contributing member, and/or sponsor of a number of open source related organizations and initiatives. Examples include:
This section needs expansion. You can help by adding to it. (April 2019) |