微軟開源十年大事記
最近,微軟在開源方面的動作頻頻引人注目,但是也許你並不知道微軟從2004年就開始參與開源了,而就在那一年,Facebook 和 Ubuntu 才剛剛成立。
為此我做了一點研究,向大家揭示從2004年以來微軟在開源方面的重大事件。
2004:WiX
WiX 工具集是微軟的第一個開源項目,它發佈於2004年4月。該工具集包括編譯器、鏈接器、庫工具和反編譯器。WiX 的原作者 Rob Mensching 在一篇文章中寫道,「WiX 成為微軟以 OSS 認證的許可證發布的第一個項目,採用的許可證是 Common Public License。」
2005:F# 1.0
F# 是一個微軟開發的跨平台、面向對象的編程語言。它在 Apache 2.0 許可證下發布的開源項目。可以運行在 Linux、 Mac OS X、Android、 iOS 和 Windows 下。該項目現在由 F Sharp 軟體基金會開發運作。
2006:CodePlex
CodePlex 是微軟的自由開源項目的託管網站,這應該是微軟首次重要的開源社區嘗試。在該公司發布 CodePlex 的 beta 版時,上面已經有了12個項目。現在該網站上已經託管了幾百個項目,也支持 Git 版本控制軟體。
2006:在 Windows 上支持 PHP
2003 年,微軟和 Zend 公司宣布合作以提升 PHP 在 Windows 伺服器上的表現。在公告中,微軟說該公司為 PHP 在 Windows 伺服器平台部署所開發的各種技術改進都會按照 PHP 許可證提交到 PHP 社區,以尋求社區反饋和貢獻。
2006:與 Novell 簽署有爭議的合作
這是一份震動 Linux 世界的公告。微軟和 Novell(SUSE 的擁有者)宣布合作了!雖然這兩家公司主要關注在微軟和 Novell 之間的互操作性的解決方案上,但是其中的專利條款卻像捅了螞蜂窩一樣。
2007:微軟的開源許可證得到了 OSI 認證
開源推進聯盟 (OSI) 對微軟的開源許可證 Microsoft Public License (Ms-PL) 和 Microsoft Reciprocal License (Ms-RL) 進行了認證。在一篇文章中, OSI 寫道,「這個決定的通過獲得了開源社區大多數人的認可(雖然還有不同意見),這些許可證符合開源定義的10項準則,所以應該通過。」
2007:給 Samba 提供補丁
在歐洲法庭上敗訴之後,微軟與 Samba 項目之間的長期戰爭終於結束了。微軟和由 軟體自由法律中心 所創建的非盈利機構 協議自由信息基金會 (PFIF)達成了合作,微軟移交該協議的文檔,以便 Samba 項目可以無縫的與 Windows 配合。
2008:發布互操作性準則
2008年,微軟在其業務和與開源公司的合作方式方面做了一些重大舉措。在一篇文章中,該公司說道,「微軟確立了四個互操作性準則,並將它們應用到主要的商業產品上:1、確保開放連接;2、促進數據的可移植性;3、加強對行業標準的支持;4、在客戶和行業的開放合作方面投入更多,包括開源組織。」
2008:向 ADOdb 提交補丁
微軟向 PHP 社區做的第一次貢獻是為 ADOdb 提交補丁,這是 PHP 上的一個流行的資料庫抽象層。時任微軟平台戰略資深總監的 Sam Ramji (現在是 Cloud Foundry 的 CEO)在一篇文章中寫道,「該補丁通過 SQL Server 團隊開發的原生驅動為 SQL Server 提供了支持。ADOdb 以 LGPL 和 BSD 許可證授權。這是我們第一次貢獻到 PHP 社區項目中,但是絕不會是最後一次。」
2008:開始向 Apache Hadoop HBase 貢獻代碼
微軟收購了一家舊金山的初創公司 Powerset,他們重度依賴於 Apache Hadoop 的 HBase 項目。 HBase 是一個以 Java 寫的開源的、分散式的列資料庫。Powerset 贊助了兩名 HBase 開發者,而在微軟收購之後依舊保持了贊助,並在一篇文章中寫道,「微軟參與並對開源社區做出貢獻,這有益於客戶、有益於社區,也有益於業務。」
2008:為 Apache 項目貢獻代碼
微軟通過成為 Apache 軟體基金會 的白金贊助商而逐漸向開源 Web 伺服器 Apache 項目靠攏。同年,微軟與 Sourcesense 達成了合作關係,目標之一是為 Apache 軟體基金會的頂級項目 Apache POI 的新版本開發貢獻力量。
2009:向 Linux 內核貢獻代碼
2009年,微軟向 Linux 內核貢獻了超過兩萬行的代碼。這些代碼大大增強了在 Windows Server 2008 Hyper-V 或 Windows Server 2008 R2 Hyper-V 上運行的 Linux 操作系統虛擬機的性能。這些貢獻讓微軟在一段較短的時間內成為了 Linux 內核排名第一的貢獻者。
2011:Node.js 跑在了 Windows 上
微軟與 Joyent 公司和 Node.js 的作者 Ryan Dahl 一起將 Node.js 移植到了 Windows。在一篇 2011 年的文章上,微軟的 Claudio Caldato 寫道,「我們的首要目標是給 Node 增加一個高性能的 IOCP API,讓開發者可以在 Windows 上也獲得 同 Node 在其它平台上一樣的高性能和可伸縮性,IOCP API 可以讓你執行多個並發的非同步輸入/輸出操作。」微軟的 Azure 團隊也在開發 iisnode ,以便可以在微軟的 IIS 伺服器上運行 Node.js。
2012:ASP.NET MVC 開源了
2012年,該公司在 Apache 2.0 許可證下開源了它的部分 Web 產品體系,包括 ASP.NET MVC、Razor 和 Web API。在一篇文章中,微軟的 Scott Guthrie 說道,「這樣做可以帶來更開放的開發模式,社區中的每個人都可以參與,並通過提交代碼、修正錯誤、開發新功能等方式來提交反饋,也可以使用它的最新源代碼和測試用例隨時構建和測試產品。」如 Scott 所說,這也是第一次微軟外部的開發者可以給他們提交補丁和貢獻代碼,微軟的開發團隊會審核這些代碼,並有可能合併到產品中。
(LCTT 譯註:原文稱作「ASP.NET MCV」,但是微軟原文稱為「MVC」,不知本文原文何故,譯文徑改之。)
2012:微軟成立「微軟開放技術公司」
2012年,微軟宣布成立一個全資子公司, 微軟開放技術公司 ,其主要目標是「推動公司在開放性方面的投入,包括互操作性、開放標準和開源」,微軟的 Jean Paoli 寫道。
2012:TypeScript
TypeScript 是一個自由開源的編程語言,微軟講該開源項目以 Apache 2.0 許可證下發布。在一篇宣布這個消息的文章中,微軟的 S.Somasegar 解釋道,它是「一個 JavaScript 的超集,將類型檢查、靜態分析、明確介面,以及最佳的體驗共同組成了一門語言及編譯器。」
2013:VM Depot
2013年,上面提到的微軟開放技術公司宣布了一個 VM Depot 項目,這是一個由社區驅動的 Linux 和 FreeBSD 虛擬機鏡像庫,用於微軟 Azure。在該項目的公告中, Gianugo Rabellino 寫道,「在 VM Depot 中,社區可以構建、部署和分享他們的 Linux 配置、創建定製的開源軟體組合、與他人協作、在雲上創建新的架構,以充分利用 Windows Azure 平台的開放性和靈活性。」
2014:.NET 開源
2014年,微軟宣布它將開源 .NET 的整個伺服器端體系。在發布公告中,微軟寫道,它將「以開源的方式提供完整的 .NET 伺服器端體系,包括 ASP.NET、.NET 編譯器、.NET 核心庫、框架和庫,可以讓開發者能夠橫跨 Windows、Mac 和 Linux 開發 .NET 程序。」 .NET 的發展推動由 .NET 基金會進行。
2014:向 OpenJDK 貢獻代碼
2014年,微軟開放技術公司向 OpenJDK 的 JDK9 開放團隊提交了第一個補丁。Martin Sawicki 在一篇宣布這次貢獻的文章中寫道,「這些代碼的開發是應我們的合作夥伴之請,它可以讓 Java 的套接字能夠利用 Windows 的 TCP 迴環快速路徑 能力,以提升在同一台機器上的套接字之間的通訊速度。」
2014:納德拉自稱愛上 Linux
2014年,微軟的新 CEO 薩提亞.納德拉 宣稱「微軟愛 Linux」。從勉強同意到技術上認同,這為微軟帶來了巨大的關注,但是在業界還有不少疑慮。
2015:Debian 來到 Azure
微軟通過與 credativ 合作,將最流行的 Linux 發行版之一的 Debian 帶到了它的 Azure 上。在一篇宣布此消息的文章中,Azure 的高級程序經理 Stephen Zarkos 寫道,「通過此次發布,客戶現在可以選擇由 credativ 構建的最新的 Debian 7 和 Debian 8 在微軟 Azure 中創建基於 Debian 的虛擬機。」
2015:RHEL 來到 Azure
2015年末,微軟與 Red Hat 達成合作,將 Red Hat 企業版 Linux(RHEL)帶到了它的 Azure 雲。這兩家公司決定協同工作來「解決企業、ISV 和開發者在跨私有雲和公有雲的 Red Hat 軟體上構建、分發和管理應用的常見需求。」
2015:OpenSSH 來到 Windows
超過1/4的 Azure 雲伺服器運行著 Linux,這些用戶需要能夠安全地登錄進機器來管理它們。微軟計劃通過 PowerShell 將開源項目 SSH 帶到 Windows 上。該公司說,他們不僅會將 SSH 支持帶到 PowerShell 中,他們也會給 OpenSSH 社區貢獻代碼。
2016:Ubuntu 來到 Azure
2016年1月,微軟和 Canonical 展示了在 Azure 上運行 Ubuntu Linux 的第一個技術預覽版。John Zannos 在 Ubuntu 博客上寫道,他們貢獻了可驗證的 Ubuntu 鏡像,讓開源應用可以很好地運行在 Azure 環境中。在此宣告後,微軟現在已經將所有的領先的 Linux 發行版帶到了 Azure 雲上。
2016:SQL Server for Linux
通過這一計劃,微軟將可以讓客戶跨 Windows 伺服器和 Linux 運行 SQL Server ,帶來持續一致的數據平台。微軟的 Scott Guthrie在一篇文章中說,「我們會將核心資料庫能力拿出來,預計時間是2017年中。」
2016:Bash on Windows
微軟與 Canonical 緊密合作,將最流行的 Linux 命令行工具帶到了 Windows 10 上面。微軟創建了一個名為 Windows Subsystem for Linux 的技術,可以讓 Ubuntu 運行在 Windows 內核上。Mike Harsh 在一篇文章中寫道,「你現在可以運行 Bash 腳本、類似 sed、awk、grep 的 Linux 命令行工具,甚至你可以直接在 Windows 上試試那些主要用在 Linux 上工具,如 Ruby、Git、Python 等等。」
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive