最近微軟在提升 Linux 和開源方面受到了大量的關注,但是大家肯定都很好奇微軟自從 2004 年開始開源事業以來的一些重大事件。2004 年剛好也是 Facebook 和 Ubuntu 正式發布的一年。
本篇文章主要介紹了微軟 2004 年至今的一些開源重大事件:
2004:WiX
WiX 工具集是微軟的第一個開源項目,在 2004 年 4 月份發布。工具集包括一個編譯器,一個鏈接器,一個 lib 工具和一個反編譯器。在這篇博客中,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 Software Foundation 開發。
2006: CodePlex
CodePlex 是微軟免費開源項目的托管網站,這可以說是微軟第一次重要的開源社區嘗試。在微軟發布 CodePlex Beta 版本的時候,網站就已經有 12 個項目了。今天該網站有上千個項目,并且支持 Git 作為源代碼控制選項。
2006:在 Windows 上支持 PHP
微軟和 Zend 技術團隊宣布合作,以推進在 Windows Server 2003 平臺上支持 PHP。在這份聲明中,微軟宣稱,微軟為 PHP 在 Windows Server 平臺部署所做的所有技術改進都會以 PHP 協議提交到 PHP 社區,作為一種反饋和貢獻。
2006:與 Novell 的協議爭議
這份聲明無疑是微軟對 Linux 世界的一種動搖。當時 Microsoft 和 Novell (SUSE 的擁有者) 達成一項協議,在一起工作。雖然當時兩個公司主要是關注微軟和 Novell 解決方案的一些互操作性,也直接導致了專利協議條款的一些爭論。
2007::開源協議獲得 OSI 認證
Open Source Initiative (OSI) 通過了 Microsoft 的開源授權協議 Microsoft Public License (Ms-PL) 和 Microsoft Reciprocal License (Ms-RL) 的認證。OSI 在博客中寫道,“這些授權協議符合的 10 項關鍵的開源定義,所以給予通過。”
2007:關于 Samba 補丁
微軟在歐洲法庭上敗訴之后,正式結束了與 Samba 項目的長期斗爭。微軟和 Protocol Freedom Information Foundation (PFIF),軟件自由法律中心創建的一個非營利性組織,與微軟關于授權協議文檔達成一項協議,所以 Samba 項目可以無縫的在 Windows 平臺使用。
2008:宣布互操作性原則
在 2008 年,微軟在業務和開源公司投入方面有了些實質性的改變。 微軟在一篇博客中寫道,“微軟創建了 4 個新的互操作性原則和大容量業務產品之間通信行為:(1) 確保開放連接; (2) 提升數據便攜性 (3) 增強對工業標準的支持; (4) 培養更多用戶和工業方面的開放投入,包括開源社區。 ”
2008:提交分支給 ADOdb
Microsoft 對 PHP 社區項目進行的首次貢獻是通過提交一個分支到 ADOdb 項目,一個流行的 PHP 數據庫抽象層。微軟當時的平臺戰略高級執行官 (現在是 Cloud Foundry 的 CEO) Sam Ramji,在一篇博客寫道,“這個分支主要是 SQL Server 團隊通過新的原生驅動器來讓 PHP 支持 SQL Server。ADOdb 遵循 LGPL 和 BSD 開源協議。這是微軟首次對 PHP 社區項目的代碼貢獻,但不是最后一次。 ”
2008:開始參與 Apache Hadoop HBase 項目
Microsoft 收購了一個 San-Francisco 啟動的 Powerset,對 Apache Hadoop 的 HBase 有重度依賴。Hbase 是一個開源的,使用 Java 編寫的分布式數據庫。Powerset 之前贊助了兩位 HBase 的開發者,微軟收購之后,恢復了對 HBase 項目的貢獻,在一篇博客寫道,“我們現在只是稍微參與了開源社區的貢獻,這對用戶是好的,對業務也是好的。”
2008:參與 Apache 項目
Microsoft 慢慢的向開源 Web 服務器 Apache 項目靠近,通過作為白金贊助商參與 Apache Software Foundation。微軟同時也貢獻分支給 PHP 代碼,讓 PHP 和 Microsoft SQL Server 能更好的結合工作。在同一年,微軟簽署了一項與 Sourcesense 的合作。最初的目的之一是貢獻一個新版本的 Apache POI,一個高級別的 Apache 軟件基金會項目。
2009:參與 Linux Kernel 項目
在 2009 年,微軟貢獻了超過 20,000 行代碼給 Linux Kernel 項目。這些代碼大大增強了 Linux 操作系統在 Windows Server 2008 Hyper-V 和 Windows Server 2008 R2 Hyper-V 上虛擬化的性能。在這次的貢獻中,微軟在比較短的時間內還是主導了這次的貢獻。
2011:Node.js 進入到 Windows
Microsoft 和 Joyent 以及 Node.js 作者 Ryan Dahl 合作,移植 Node.js 到 Windows 平臺。在 2011 年的一篇博客里面,微軟的 Claudio Caldato 寫道,“我們主要的目標是添加高性能 IOCP API 到 Node 項目,讓開發者在 Windows 上能得到 Node.js 原本就有的高性能和可伸縮性,讓 IOCP API 執行模擬異步輸入輸出操作。 ” 微軟的 Azure 同時也在參與 iisnode 項目,讓 Node.js 能在 Microsoft 的 IIS 服務器上運行。
2012:開源 ASP.NET MCV
2012 年的時候微軟開源了 Web 棧的一部分,包括 ASP.NET MCV, Razor 和 Web API,遵循 Apache 2.0 協議。Microsoft 的 Scott Guthrie 在一篇博客寫道,“社區會對所有人開放更多的開發模型,大家可以反饋代碼檢測,bug 修復,新特性開發等信息,開發者也可以提交分支和進行代碼貢獻。”
2012:微軟成立 Microsoft Open Technologies
在 2012 年,微軟宣布啟動 微軟開放技術,主要責任是 “引導公司在開放技術上的投資 - 包括交互,開放標準和開源。” Microsoft 的 Jean Paoli 解釋到。
2012: TypeScript
TypeScript 是一款免費開源的編程語言。微軟遵循 Apache 2.0 開源授權協議發布了 TypeScript。微軟的 S.Somasegar 解釋到,這是一個 JavaScript 的超集,結合了類型檢測,靜態分析等特性。
2013:VM Depot
2013 年,微軟開放技術機構發布了 VM Depot 項目,一個為 Microsoft Azure 準備的,社區驅動的 Linux 和 FreeBSD 虛擬機鏡像庫。Gianugo Rabellino 寫道,“在 VM Depot 中,社區可以構建,部署和分享他們的 Linux 配置,創建自定義的開源棧,可以與其他的開源棧結合使用,在云上構建新架構,可以在 Windows Azure 平臺充分利用他們的開放性和靈活性。”
2014:開源 .NET
2014 年微軟開源了整個 .NET 的服務端棧,再一次重大的版本發布中,微軟宣稱會 “以開源的形式提供完整的 .NET 服務端棧,包括 ASP.NET,.NET 編譯器,.NET Core Runtime,框架和庫,允許開發者跨 Windows,Linux 和 Mac OS X 平臺使用 》NET。”
2014:貢獻 OpenJDK 項目
在 2014 年,Microsoft 開放技術機構貢獻了第一個分支到 OpenJDK 的 JDK 9 dev 流。 Martin Sawicki 在一篇博客寫道,“這次貢獻代碼主要是因為一些合作伙伴提出的要求,允許 Java sockets 擁有 Windows 的 TCP Loopback Fast Path 功能,加快了相同機器之間的通訊速度。”
2014:Nadella 公開示愛 Linux
2014 年微軟的新任 CEO Satya Nadella 發布聲明說 “微軟愛 Linux” 。
2015:Debian 入駐 Azure
Microsoft 通過與 credativ 合作將 Debian 移植到 Azure,Debian 是最流行的 Linux 發行版之一。在一篇博客中,Azure 高級項目經理 Stephen Zarkos 寫道,“用戶可以在 Microsoft Azure 上通過選擇 credativ 構建的最新 Debian 7 (codename “wheezy”) 和 Debian 8 (codename “jessie”) 版本,使用基于 Debian 的虛擬機。”
2015:RHEL 入駐 Azure
2015 年底,微軟與競爭對手 Red Hat 合作,將 Red Hat Enterprise Linux (RHEL) 移植到 Azure 云。h這兩個公司也達成了一致的協議,合作完成 “在私有云和公有云上提供在 Red Hat 上開發者構建,部署和管理需要的常規的企業需求,ISV 等應用。”
2015:OpenSSH 入駐 Windows
Linux 運行在超過 25% 的 Azure 云機器上,用戶急需一個功能,能讓他們安全的登陸這些機器進行管理操作。 Microsoft 計劃把開源項目 SSH 通過 PowerShell 移植到 Windows 平臺。微軟宣稱不僅僅是通過 PowerShell 來支持 SSH,還會繼續貢獻 OpenSSH 社區。
2016:Ubuntu 進入 Azure
2016 年 1 月份,微軟和 Canonical 展示了 Azure Stack 運行 Ubuntu 的首個技術預覽版。John Zannos 在 Ubuntu 博客寫道,他們致力于 Ubuntu 鏡像,允許開源應用能在 Azure Stack 環境很好的工作。在這次聲明中,微軟在其 Azure 云提供了所有主流的 Linux 發行版。
2016:SQL Server for Linux
微軟允許用戶在 Linux 平臺上運行 SQL Server。Microsoft 的 Scott Guthrie 在一篇博客寫道,“今天我們把核心關系型數據庫功能發布預覽版本,預計在 2017 年年中完成整個計劃。”
2016:Bash 入駐 Windows
Microsoft 與 Canonical 緊密合作,把一些流行的 Linux 命令行工具移植到 Windows 10.微軟創建的一個技術叫 Windows Subsystem for Linux,允許 Ubuntu 在 Windows 內核上運行。Mike Harsh 在一篇博客寫道,“現在大家可以在 Windows 上直接運行 Bash 腳本,Linux 命令行工具(比如 sed,awk,grep),甚至還可以嘗試 Linux-first 的工具,比如 Ruby,Git,Python 等。