最近微软在提升 Linux开源方面受到了大量的关注,但是大家肯定都很好奇微软自从 2004 年开始开源事业以来的一些重大事件。2004 年刚好也是 Facebook 和 Ubuntu 正式发布的一年。
00-microsoft-100656199-gallery.idge

本篇文章主要介绍了微软 2004 年至今的一些开源重大事件:

2004:WiX

WiX 工具集是微软的第一个开源项目,在 2004 年 4 月份发布。工具集包括一个编译器,一个链接器,一个 lib 工具和一个反编译器。在这篇博客中,WiX 的最初作者 Rob Mensching 写道,“WiX 是微软基于 OSS 认证的授权协议发布的第一个项目,协议名称为 Common Public License”。

01-wix-first-100656200-gallery.idge

2005: F# 1.0

F# 是一个跨平台,面向对象的编程语言,是微软基于 Apache 2.0 授权协议发布的开源项目,支持 Linux,Mac OS X,Android,iOS 和 Windows 平台,该项目当前由 F Sharp Software Foundation 开发。

02-sharp-100656202-gallery.idge

2006: CodePlex

CodePlex 是微软免费开源项目的托管网站,这可以说是微软第一次重要的开源社区尝试。在微软发布 CodePlex Beta 版本的时候,网站就已经有 12 个项目了。今天该网站有上千个项目,并且支持 Git 作为源代码控制选项。

03-codeplex-100656204-gallery.idge

2006:在 Windows 上支持 PHP

微软和 Zend 技术团队宣布合作,以推进在 Windows Server 2003 平台上支持 PHP。在这份声明中,微软宣称,微软为 PHP 在 Windows Server 平台部署所做的所有技术改进都会以 PHP 协议提交到 PHP 社区,作为一种反馈和贡献。

04-php-windows-100656205-gallery.idge

2006:与 Novell 的协议争议

这份声明无疑是微软对 Linux 世界的一种动摇。当时 Microsoft 和 Novell (SUSE 的拥有者) 达成一项协议,在一起工作。虽然当时两个公司主要是关注微软和 Novell 解决方案的一些互操作性,也直接导致了专利协议条款的一些争论。

05-novell-100656207-gallery.idge

2007::开源协议获得 OSI 认证

Open Source Initiative (OSI) 通过了 Microsoft 的开源授权协议 Microsoft Public License (Ms-PL) 和 Microsoft Reciprocal License (Ms-RL) 的认证。OSI 在博客中写道,“这些授权协议符合的 10 项关键的开源定义,所以给予通过。”

06-microsoft-license-100656208-gallery.idge

2007:关于 Samba 补丁

微软在欧洲法庭上败诉之后,正式结束了与 Samba 项目的长期斗争。微软和 Protocol Freedom Information Foundation (PFIF),软件自由法律中心创建的一个非营利性组织,与微软关于授权协议文档达成一项协议,所以 Samba 项目可以无缝的在 Windows 平台使用。

07-samba-100656209-gallery.idge

2008:宣布互操作性原则

在 2008 年,微软在业务和开源公司投入方面有了些实质性的改变。 微软在一篇博客中写道,“微软创建了 4 个新的互操作性原则和大容量业务产品之间通信行为:(1) 确保开放连接; (2) 提升数据便携性 (3) 增强对工业标准的支持; (4) 培养更多用户和工业方面的开放投入,包括开源社区。 ”

08-interoperable-100656210-gallery.idge

2008:提交分支给 ADOdb

Microsoft 对 PHP 社区项目进行的首次贡献是通过提交一个分支到  ADOdb 项目,一个流行的 PHP 数据库抽象层。微软当时的平台战略高级执行官 (现在是 Cloud Foundry 的 CEO) Sam Ramji,在一篇博客写道,“这个分支主要是 SQL Server 团队通过新的原生驱动器来让 PHP 支持 SQL Server。ADOdb 遵循 LGPL 和 BSD 开源协议。这是微软首次对 PHP 社区项目的代码贡献,但不是最后一次。 ”

09-adodb-100656212-gallery.idge

2008:开始参与 Apache Hadoop HBase 项目

Microsoft 收购了一个 San-Francisco 启动的 Powerset,对 Apache Hadoop 的 HBase 有重度依赖。Hbase 是一个开源的,使用 Java 编写的分布式数据库。Powerset 之前赞助了两位 HBase 的开发者,微软收购之后,恢复了对 HBase 项目的贡献,在一篇博客写道,“我们现在只是稍微参与了开源社区的贡献,这对用户是好的,对业务也是好的。”

010-hbase-100656213-gallery.idge

2008:参与 Apache 项目

Microsoft 慢慢的向开源 Web 服务器 Apache 项目靠近,通过作为白金赞助商参与 Apache Software Foundation。微软同时也贡献分支给 PHP 代码,让 PHP 和 Microsoft SQL Server 能更好的结合工作。在同一年,微软签署了一项与 Sourcesense 的合作。最初的目的之一是贡献一个新版本的 Apache POI,一个高级别的 Apache 软件基金会项目。

011-apache-100656215-gallery.idge

2009:参与 Linux Kernel 项目

在 2009 年,微软贡献了超过 20,000 行代码给 Linux Kernel 项目。这些代码大大增强了 Linux 操作系统在 Windows Server 2008 Hyper-V 和 Windows Server 2008 R2 Hyper-V 上虚拟化的性能。在这次的贡献中,微软在比较短的时间内还是主导了这次的贡献。

013-linux-many-100656218-gallery.idge

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 服务器上运行。

012-node-100656219-gallery.idge

2012:开源 ASP.NET MCV

2012 年的时候微软开源了 Web 栈的一部分,包括  ASP.NET MCV, Razor 和 Web API,遵循 Apache 2.0 协议。Microsoft 的 Scott Guthrie 在一篇博客写道,“社区会对所有人开放更多的开发模型,大家可以反馈代码检测,bug 修复,新特性开发等信息,开发者也可以提交分支和进行代码贡献。”

014-asp-net-100656220-gallery.idge

2012:微软成立 Microsoft Open Technologies

在 2012 年,微软宣布启动 微软开放技术,主要责任是 “引导公司在开放技术上的投资 – 包括交互,开放标准和开源。” Microsoft 的 Jean Paoli 解释到。

015-ms-open-100656221-gallery.idge

2012: TypeScript

TypeScript 是一款免费开源的编程语言。微软遵循 Apache 2.0 开源授权协议发布了 TypeScript。微软的 S.Somasegar 解释到,这是一个 JavaScript 的超集,结合了类型检测,静态分析等特性。

016-typescript-100656222-gallery.idge

2013:VM Depot

2013 年,微软开放技术机构发布了 VM Depot 项目,一个为 Microsoft Azure 准备的,社区驱动的 Linux 和 FreeBSD 虚拟机镜像库。Gianugo Rabellino 写道,“在 VM Depot 中,社区可以构建,部署和分享他们的 Linux 配置,创建自定义的开源栈,可以与其他的开源栈结合使用,在云上构建新架构,可以在 Windows Azure 平台充分利用他们的开放性和灵活性。”

017-vmdepot-100656224-gallery.idge

2014:开源 .NET

2014 年微软开源了整个 .NET 的服务端栈,再一次重大的版本发布中,微软宣称会 “以开源的形式提供完整的 .NET 服务端栈,包括  ASP.NET,.NET 编译器,.NET Core Runtime,框架和库,允许开发者跨 Windows,Linux 和 Mac OS X 平台使用 》NET。”

018-net-100656225-gallery.idge

2014:贡献 OpenJDK 项目

在 2014 年,Microsoft 开放技术机构贡献了第一个分支到 OpenJDK 的 JDK 9 dev 流。 Martin Sawicki 在一篇博客写道,“这次贡献代码主要是因为一些合作伙伴提出的要求,允许 Java sockets 拥有 Windows 的 TCP Loopback Fast Path 功能,加快了相同机器之间的通讯速度。”

019-openjdk-100656226-gallery.idge

2014:Nadella 公开示爱 Linux 

2014 年微软的新任 CEO Satya Nadella 发布声明说 “微软爱 Linux” 。

020-microsoft-linux-100656227-gallery.idge

2015:Debian 入驻 Azure

Microsoft 通过与 credativ 合作将 Debian 移植到 Azure,Debian 是最流行的 Linux 发行版之一。在一篇博客中,Azure 高级项目经理 Stephen Zarkos 写道,“用户可以在 Microsoft Azure 上通过选择 credativ 构建的最新 Debian 7 (codename “wheezy”) 和 Debian 8 (codename “jessie”) 版本,使用基于 Debian 的虚拟机。”

021-debian-100656229-gallery.idge

2015:RHEL 入驻 Azure

2015 年底,微软与竞争对手 Red Hat 合作,将 Red Hat Enterprise Linux (RHEL) 移植到 Azure 云。h这两个公司也达成了一致的协议,合作完成 “在私有云和公有云上提供在 Red Hat 上开发者构建,部署和管理需要的常规的企业需求,ISV 等应用。”

022-red-hat-100656231-gallery.idge

2015:OpenSSH 入驻 Windows

Linux 运行在超过 25% 的 Azure 云机器上,用户急需一个功能,能让他们安全的登陆这些机器进行管理操作。 Microsoft 计划把开源项目 SSH 通过 PowerShell 移植到 Windows 平台。微软宣称不仅仅是通过 PowerShell 来支持 SSH,还会继续贡献 OpenSSH 社区。

023-openssh-100656232-gallery.idge

2016:Ubuntu 进入 Azure

2016 年 1 月份,微软和 Canonical 展示了 Azure Stack 运行 Ubuntu 的首个技术预览版。John Zannos 在 Ubuntu 博客写道,他们致力于 Ubuntu 镜像,允许开源应用能在 Azure Stack 环境很好的工作。在这次声明中,微软在其 Azure 云提供了所有主流的 Linux 发行版。

024-ubuntu-100656233-gallery.idge

2016:SQL Server for Linux

微软允许用户在 Linux 平台上运行 SQL Server。Microsoft 的 Scott Guthrie 在一篇博客写道,“今天我们把核心关系型数据库功能发布预览版本,预计在 2017 年年中完成整个计划。”

025-sql-100656237-gallery.idge

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 等。

026-bash-windows-100656238-gallery.idge

本文编译自 CIO