(原标题:2004至今 微软开源大事记)
最近微软在提升 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 等。