标签 微软 下的文章

00 microsoft

最近,微软在开源方面的动作频频引人注目,但是也许你并不知道微软从2004年就开始参与开源了,而就在那一年,Facebook 和 Ubuntu 才刚刚成立。

为此我做了一点研究,向大家揭示从2004年以来微软在开源方面的重大事件。

2004:WiX

01 wix first

WiX 工具集是微软的第一个开源项目,它发布于2004年4月。该工具集包括编译器、链接器、库工具和反编译器。WiX 的原作者 Rob Mensching 在一篇文章中写道,“WiX 成为微软以 OSS 认证的许可证发布的第一个项目,采用的许可证是 Common Public License。”

2005:F# 1.0

02 sharp

F# 是一个微软开发的跨平台、面向对象的编程语言。它在 Apache 2.0 许可证下发布的开源项目。可以运行在 Linux、 Mac OS X、Android、 iOS 和 Windows 下。该项目现在由 F Sharp 软件基金会开发运作。

2006:CodePlex

03 codeplex

CodePlex 是微软的自由开源项目的托管网站,这应该是微软首次重要的开源社区尝试。在该公司发布 CodePlex 的 beta 版时,上面已经有了12个项目。现在该网站上已经托管了几百个项目,也支持 Git 版本控制软件。

2006:在 Windows 上支持 PHP

04 php windows

2003 年,微软和 Zend 公司宣布合作以提升 PHP 在 Windows 服务器上的表现。在公告中,微软说该公司为 PHP 在 Windows 服务器平台部署所开发的各种技术改进都会按照 PHP 许可证提交到 PHP 社区,以寻求社区反馈和贡献。

2006:与 Novell 签署有争议的合作

05 novell

这是一份震动 Linux 世界的公告。微软和 Novell(SUSE 的拥有者)宣布合作了!虽然这两家公司主要关注在微软和 Novell 之间的互操作性的解决方案上,但是其中的专利条款却像捅了蚂蜂窝一样。

2007:微软的开源许可证得到了 OSI 认证

06 microsoft license

开源推进联盟 Open Source Initiative (OSI) 对微软的开源许可证 Microsoft Public License (Ms-PL) 和 Microsoft Reciprocal License (Ms-RL) 进行了认证。在一篇文章中, OSI 写道,“这个决定的通过获得了开源社区大多数人的认可(虽然还有不同意见),这些许可证符合开源定义的10项准则,所以应该通过。”

2007:给 Samba 提供补丁

07 samba

在欧洲法庭上败诉之后,微软与 Samba 项目之间的长期战争终于结束了。微软和由 软件自由法律中心 Software Freedom Law Center 所创建的非盈利机构 协议自由信息基金会 Protocol Freedom Information Foundation PFIF)达成了合作,微软移交该协议的文档,以便 Samba 项目可以无缝的与 Windows 配合。

2008:发布互操作性准则

08 interoperable

2008年,微软在其业务和与开源公司的合作方式方面做了一些重大举措。在一篇文章中,该公司说道,“微软确立了四个互操作性准则,并将它们应用到主要的商业产品上:1、确保开放连接;2、促进数据的可移植性;3、加强对行业标准的支持;4、在客户和行业的开放合作方面投入更多,包括开源组织。”

2008:向 ADOdb 提交补丁

09 adodb

微软向 PHP 社区做的第一次贡献是为 ADOdb 提交补丁,这是 PHP 上的一个流行的数据库抽象层。时任微软平台战略资深总监的 Sam Ramji (现在是 Cloud Foundry 的 CEO)在一篇文章中写道,“该补丁通过 SQL Server 团队开发的原生驱动为 SQL Server 提供了支持。ADOdb 以 LGPL 和 BSD 许可证授权。这是我们第一次贡献到 PHP 社区项目中,但是绝不会是最后一次。”

2008:开始向 Apache Hadoop HBase 贡献代码

010 hbase

微软收购了一家旧金山的初创公司 Powerset,他们重度依赖于 Apache Hadoop 的 HBase 项目。 HBase 是一个以 Java 写的开源的、分布式的列数据库。Powerset 赞助了两名 HBase 开发者,而在微软收购之后依旧保持了赞助,并在一篇文章中写道,“微软参与并对开源社区做出贡献,这有益于客户、有益于社区,也有益于业务。”

2008:为 Apache 项目贡献代码

011 apache

微软通过成为 Apache 软件基金会 Apache Software Foundation 的白金赞助商而逐渐向开源 Web 服务器 Apache 项目靠拢。同年,微软与 Sourcesense 达成了合作关系,目标之一是为 Apache 软件基金会的顶级项目 Apache POI 的新版本开发贡献力量。

2009:向 Linux 内核贡献代码

013 linux many

2009年,微软向 Linux 内核贡献了超过两万行的代码。这些代码大大增强了在 Windows Server 2008 Hyper-V 或 Windows Server 2008 R2 Hyper-V 上运行的 Linux 操作系统虚拟机的性能。这些贡献让微软在一段较短的时间内成为了 Linux 内核排名第一的贡献者。

2011:Node.js 跑在了 Windows 上

012 node

微软与 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 开源了

014 asp net

2012年,该公司在 Apache 2.0 许可证下开源了它的部分 Web 产品体系,包括 ASP.NET MVC、Razor 和 Web API。在一篇文章中,微软的 Scott Guthrie 说道,“这样做可以带来更开放的开发模式,社区中的每个人都可以参与,并通过提交代码、修正错误、开发新功能等方式来提交反馈,也可以使用它的最新源代码和测试用例随时构建和测试产品。”如 Scott 所说,这也是第一次微软外部的开发者可以给他们提交补丁和贡献代码,微软的开发团队会审核这些代码,并有可能合并到产品中。

(LCTT 译注:原文称作“ASP.NET MCV”,但是微软原文称为“MVC”,不知本文原文何故,译文径改之。)

2012:微软成立“微软开放技术公司”

015 ms open

2012年,微软宣布成立一个全资子公司, 微软开放技术公司 Microsoft Open Technologies, Inc. ,其主要目标是“推动公司在开放性方面的投入,包括互操作性、开放标准和开源”,微软的 Jean Paoli 写道

2012:TypeScript

016 typescript

TypeScript 是一个自由开源的编程语言,微软讲该开源项目以 Apache 2.0 许可证下发布。在一篇宣布这个消息的文章中,微软的 S.Somasegar 解释道,它是“一个 JavaScript 的超集,将类型检查、静态分析、明确接口,以及最佳的体验共同组成了一门语言及编译器。”

2013:VM Depot

017 vmdepot

2013年,上面提到的微软开放技术公司宣布了一个 VM Depot 项目,这是一个由社区驱动的 Linux 和 FreeBSD 虚拟机镜像库,用于微软 Azure。在该项目的公告中, Gianugo Rabellino 写道,“在 VM Depot 中,社区可以构建、部署和分享他们的 Linux 配置、创建定制的开源软件组合、与他人协作、在云上创建新的架构,以充分利用 Windows Azure 平台的开放性和灵活性。”

2014:.NET 开源

018 net

2014年,微软宣布它将开源 .NET 的整个服务器端体系。在发布公告中,微软写道,它将“以开源的方式提供完整的 .NET 服务器端体系,包括 ASP.NET、.NET 编译器、.NET 核心库、框架和库,可以让开发者能够横跨 Windows、Mac 和 Linux 开发 .NET 程序。” .NET 的发展推动由 .NET 基金会进行。

2014:向 OpenJDK 贡献代码

019 openjdk

2014年,微软开放技术公司向 OpenJDK 的 JDK9 开放团队提交了第一个补丁。Martin Sawicki 在一篇宣布这次贡献的文章中写道,“这些代码的开发是应我们的合作伙伴之请,它可以让 Java 的套接字能够利用 Windows 的 TCP 回环快速路径 TCP Loopback Fast Path 能力,以提升在同一台机器上的套接字之间的通讯速度。”

2014:纳德拉自称爱上 Linux

020 microsoft linux

2014年,微软的新 CEO 萨提亚.纳德拉 Satya Nadella 宣称“微软爱 Linux”。从勉强同意到技术上认同,这为微软带来了巨大的关注,但是在业界还有不少疑虑。

2015:Debian 来到 Azure

021 debian

微软通过与 credativ 合作,将最流行的 Linux 发行版之一的 Debian 带到了它的 Azure 上。在一篇宣布此消息的文章中,Azure 的高级程序经理 Stephen Zarkos 写道,“通过此次发布,客户现在可以选择由 credativ 构建的最新的 Debian 7 和 Debian 8 在微软 Azure 中创建基于 Debian 的虚拟机。”

2015:RHEL 来到 Azure

022 red hat

2015年末,微软与 Red Hat 达成合作,将 Red Hat 企业版 Linux(RHEL)带到了它的 Azure 云。这两家公司决定协同工作来“解决企业、ISV 和开发者在跨私有云和公有云的 Red Hat 软件上构建、分发和管理应用的常见需求。”

2015:OpenSSH 来到 Windows

023 openssh

超过1/4的 Azure 云服务器运行着 Linux,这些用户需要能够安全地登录进机器来管理它们。微软计划通过 PowerShell 将开源项目 SSH 带到 Windows 上。该公司,他们不仅会将 SSH 支持带到 PowerShell 中,他们也会给 OpenSSH 社区贡献代码。

2016:Ubuntu 来到 Azure

024 ubuntu

2016年1月,微软和 Canonical 展示了在 Azure 上运行 Ubuntu Linux 的第一个技术预览版。John Zannos 在 Ubuntu 博客上写道,他们贡献了可验证的 Ubuntu 镜像,让开源应用可以很好地运行在 Azure 环境中。在此宣告后,微软现在已经将所有的领先的 Linux 发行版带到了 Azure 云上。

2016:SQL Server for Linux

025 sql

通过这一计划,微软将可以让客户跨 Windows 服务器和 Linux 运行 SQL Server ,带来持续一致的数据平台。微软的 Scott Guthrie在一篇文章中说,“我们会将核心数据库能力拿出来,预计时间是2017年中。”

2016:Bash on Windows

026 bash windows

微软与 Canonical 紧密合作,将最流行的 Linux 命令行工具带到了 Windows 10 上面。微软创建了一个名为 Windows Subsystem for Linux 的技术,可以让 Ubuntu 运行在 Windows 内核上。Mike Harsh 在一篇文章中写道,“你现在可以运行 Bash 脚本、类似 sed、awk、grep 的 Linux 命令行工具,甚至你可以直接在 Windows 上试试那些主要用在 Linux 上工具,如 Ruby、Git、Python 等等。”

3月30日在美国旧金山的莫斯康展览中心,微软召开了 Build 2016开发者大会,大会上微软除了介绍自家生态系统的产品与技术外,还为开发者带来了 Ubuntu on Windows 功能

Bash 是 Linux/Unix 上非常流行的命令行 Shell,它是 Ubuntu、RHEL 等 Linux 发行版以及苹果 OS X 操作系统默认的命令行 Shell。

Bash on Ubuntu on Windows 是通过 Windows Subsystem for Linux(WSL)这一 Windows 10 的最新特性实现的,使用此功能,你可以在 Windows 中原生运行 Linux 的大多数命令行程序。

其实在 Windows 7 之前的操作系统中,都含有一个 POSIX 子系统,以便将 UNIX 的程序源代码编译为 Windows 程序。微软为 POSIX 子系统提供了众多的 UNIX 工具,而这些工具都是基于 POSIX 子系统直接使用GNU 的原生代码编译实现的,你也可以在这个 POSIX 子系统运行 C Shell、Korn Shell 等命令行 Shell。不过Windows 7 以后的操作系统中都默认移除了 POSIX 子系统。如果有兴趣的话可以在 Windows 7 操作系统中的“启用或关闭 Windows 功能”中启用“基于 UNIX 的应用程序子系统”,即可体验 POSIX 子系统。

启用 WSL 功能之后,如果使用 Bash,则 Windows 10 操作系统会下载一个由 Canonical 创建的 Ubuntu用户模式镜像 Ubuntu user-mode image ,然后 Bash 程序以及其他的 Linux 二进制程序就可以运行于该 Ubuntu 镜像上。此外,微软也承诺未来会提供更多 Linux 发行版以供选择。

Bash on Ubuntu on Windows 功能主要是面向于开发者,尤其是 Web 开发者或者参与某些开源项目的开发者,他们可以在 Windows 中使用一些 Linux 生态链的开发工具。

之前我们为大家披露过 Ubuntu on Windows 的一些技术细节,今天为大家带来更具体的技术细节和体验方式。

如何安装体验 Ubuntu on Windows

启用Bash on Ubuntu on Windows

启用 Bash on Ubuntu on Windows 功能,首先你得先满足以下2个条件。

  • 使用x86-64架构的 CPU。
  • 使用 Windows 10 Insider Preview (Build 14316)64位版本。

如何获取 Windows 10 Insider Preview (Build 14316)呢?

这里有两种办法:

  • 第一种是从网上下载由别人制作好的 Windows 10 Insider Preview (Build 14316)安装镜像进行安装,但是由于安装镜像来源的问题,所以不推荐此方法,当然如果你是要在虚拟机中体验一下的话,用这种方式最合适不过了。
  • 第二种是加入 Windows Insider 计划,然后将 Windows 10 正式版升级至最新的 Insider Preview 版本。

加入Windows Insider 计划方法如下:

1、在 Windows Insider 网站中使用你的微软账户登录,登录成功之后,会出现如下图所示画面:

Windows Insider

然后单击图中的“入门”,会出现注册界面,勾选接受 Insider 计划协议,最后单击“提交”,等待提示注册完成。

2、确保使用上述加入 Windows Insider 计划的微软账户登录你的 Windows 10 操作系统,然后依次转到开始菜单-“设置”-“更新和安全”- “Windows 更新” -“高级选项”>“获取 Insider Preview 版本”,然后单击“开始”按钮,并按照屏幕上的说明进行操作,提示成功之后表示此电脑将会获取 Windows 10 Insider Preview 版本 。

获取 Insider Preview 版本

3、Windows Insider 计划默认自动获取慢速通道的 Insider Preview 版本,而 Windows 10 Insider Preview (Build 14316)属于快速通道版本,所以需要在如下图中,将滑块移至右侧的快速通道模式。

快速通道模式

4、进入快速通道模式之后,需要等待24小时才能获取 Insider Preview 版本,所以请耐心的等待吧!24小时之后检查更新,就会开始下载安装 Windows 10 Insider Preview (Build 14316)。

启用 Bash on Ubuntu on Windows

如果上述条件满足,按照以下步骤即可启用 Bash on Ubuntu on Windows。

1、依次在“设置”-“更新与安全”-“针对开发人员”选项中,启用开发人员模式,如下图所示。

启用开发人员模式

2、在开始菜单中搜索并打开“启用或关闭 Windows功能”,然后勾选其中的“Windows Subsystem for Linux(Beta)”选项,如下图所示,最后按照操作系统提示完成 WSL 安装(需要重启计算机)。

勾选其中的“Windows Subsystem for Linux(Beta)”

此外,也可以在 PowerShell 中输入以下命令完成 WSL 安装。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

3、在命令提示符或 PowerShell 中输入 bash,然后按照提示按下 y 确认继续,操作系统会自动开始安装 Ubuntu on Windows,此时会下载 Ubuntu 用户模式镜像,并创建一个 Bash on Ubuntu on Windows 访问路径。等待安装完成之后,会自动进入 bash,如下图所示:

自动安装 Ubuntu on Windows

使用 Bash on Ubuntu on Windows

在命令提示符或 PowerShell 中输入 bash,或者在开始菜单中查找打开“Bash on Ubuntu on Windows”,即可运行。

运行之后,可以发现使用的是 Ubuntu 14.04.4 LTS 版本,同时也可以使用 apt-get 更新或安装程序,如下图所示。此外。在 bash 当中,Windows 的分区被挂载于 /mnt 目录,可以使用其中存储的数据。

可以使用 apt-get 更新或安装程序

当你试用了 Bash on Ubuntu on Windows 之后,你可能会觉得这是一个虚拟机,但它真不是一个虚拟机。其功能有点类似于模拟器。通过使用 WSL,可以将 Linux 的系统调用实时地转换为 Windows 的系统调用。

此外,在 Windows 下运行这些 Linux 的原生的 ELF(Executable and Linkable Format)二进制程序和在 Linux 下运行所消耗的 CPU 、内存和 IO 性能相当,完全不用担心性能的问题。

Bash on Ubuntu on Windows限制

  • 不支持使用 GUI 的桌面程序或 Gnome、KDE 类应用。
  • 处于 Beta 阶段,支持的 Linux 程序与功能有限,未来会支持更多的 Linux 工具。
  • 目前只支持使用 Ubuntu,未来会提供更多 Linux 发行版。
  • WSL 只支持在 Windows 10 build 14316 以后版本中使用,不支持 Windows Server。

命令参考

有两个命令 bash.exelxrun.exe 用于和 Windows Subsystem for Linux (WSL) 进行交互。它们安装在 \Windows\System32 目录下,可以在命令行或 Powershell 中运行。

  • bash.exe 启动 bash 环境并运行 /bin/bash
  • lxrun.exe 用于管理 WSL,可以用来安装或卸载 Ubuntu 镜像
命令描述
bash在当前目录启动 bash shell,如果 Bash 没有安装,这自动运行 lxrun /install
bash ~启动 bash,并切换到用户的 Ubuntu 主目录,类似运行 cd ~
bash -c "<command>"运行命令、打印输出并返回 Windows 命令行例子: bash -c "ls"
命令描述
lxrun用于管理 WSL 实例
lxrun /install启动下载和安装过程/y 选项可以用于自动应答安装过程的确认提示
lxrun /uninstall卸载并删除 Ubuntu 镜像。默认不删除用户的 Ubuntu 主目录。

/y 选项可以用于自动应答安装过程的确认提示
/full 选项会卸载并删除用户的 Ubuntu 主目录 |

总结

Bash on Ubuntu on Windows 的发布, 让众多的 Linux 粉丝大跌眼镜,曾经被微软视为癌症的 Linux,如今却被部分的集成进了微软最重要的产品中,这背后的目的似乎不是那么很平常。

有人说 Bash on Ubuntu on Windows 是微软布局 Docker 的开始,其实在 Windows Server 2016 预览版中已经加入了对Docker 技术的支持。也有人说是微软看中了 Linux 生态中的海量程序,用以补充自家的生态系统,但是就程序的数量来说,Windows 生态说第二,没人会说第一,所以似乎这个原因也站不住脚。

其实依目前的情况来看,个人觉得 Bash on Ubuntu on Windows 最主要的用处,还是为开发者提供便利,协助完成一些跨平台开发的工作。但是,也说不准微软最终的目的是什么,只能期待7月份的 Windows 10 周年更新里面为 Bash on Ubuntu on Windows 带来更多的功能。

时不时的我们会读到一个能让你喝咖啡呛到或者把热拿铁喷到你显示器上的新闻故事。微软最近宣布的对 Linux 的钟爱就是这样一个鲜明的例子。

从常识来讲,微软和自由开源软件(FOSS)运动就是恒久的敌人。在很多人眼里,微软体现了过分的贪婪,而这正为自由开源软件运动(FOSS)所拒绝。另外,之前微软就已经给自由开源软件社区贴上了"一伙强盗"的标签。

我们能够理解为什么微软一直以来都害怕免费的操作系统。免费操作系统结合挑战微软核心产品线的开源应用时,就威胁到了微软在台式机和笔记本电脑市场的控制地位。

尽管微软有对在台式机主导地位的担忧,在网络服务器市场 Linux 却有着最高的影响力。今天,大多数的服务器都是 Linux 系统。包括世界上最繁忙的站点服务器。对微软来说,看到这么多无法装到兜里的许可证的营收一定是非常痛苦的。

掌上设备是微软输给自由软件的另一个领域。曾几何时,微软的 Windows CE 和 Pocket PC 操作系统走在移动计算的前沿。Windows PDA 设备是最闪亮的和豪华的产品。但是这一切在苹果公司发布了iphone之后都结束了。从那时起,安卓就开始进入公众视野,Windows 的移动产品开始被忽略被遗忘。而安卓平台是建立在自由开源的组件的基础上的。

由于安卓平台的开放性,安卓的市场份额在迅速扩大。不像 IOS,任何一个手机制造商都可以发布安卓手机。也不像Windows 手机,安卓没有许可费用。这对消费者来说是件好事。这也导致了许多强大却又价格低廉的手机制造商在世界各地涌现。这非常明确的证明了自由开源软件(FOSS)的价值。

在服务器和移动计算的角逐中失利对微软来说是非常惨重的损失。考虑一下服务器和移动计算这两个加起来所占有的市场大小,台式机市场似乎是死水一潭。没有人喜欢失败,尤其是涉及到金钱。并且,微软确实有许多东西正在慢慢失去。你可能期望着微软自尝苦果。在过去,确实如此。

微软使用了各种可以支配的手段来对 Linux 和自由开源软件(FOSS)进行反击,从宣传到专利威胁。尽管这种攻击确实减慢了适配 Linux 的步伐,但却从来没有让 Linux 的脚步停下。

所以,当微软在开源大会和重大事件上拿出印有“Microsoft Loves Linux”的T恤和徽章时,请原谅我们表现出来的震惊。这是真的吗?微软真的爱 Linux ?

当然,公关的口号和免费的T恤并不代表真理。行动胜于雄辩。当你思考一下微软的行动时,微软的立场就变得有点模棱两可了。

一方面,微软招募了几百名 Linux 开发者和系统管理员。将 .NET 核心框架作为一个开源的项目进行了发布,并提供了跨平台的支持(这样 .NET 就可以跑在 OS X 和 Linux 上了)。并且,微软与 Linux 公司合作把最流行的发行版本放到了 Azure 平台上。事实上,微软已经走的如此之远以至于要为 Azure 数据中心开发自己的 Linux 发行版了。

另一方面,微软继续直接通过法律或者傀儡公司来对开源项目进行攻击。很明显,微软在与自由软件的所有权较量上并没有发自内心的进行大的道德转变。那为什么要公开申明对 Linux 的钟爱之情呢?

一个显而易见的事实:微软是一个经营性实体。对股东来说是一个投资工具,对雇员来说是收入来源。微软所做的只有一个终极目标:盈利。微软并没有表现出来爱或者恨(尽管这是一个最常见的指控)。

所以问题不应该是"微软真的爱 Linux 吗?"相反,我们应该问,微软是怎么从这一切中获利的。

让我们以 .NET 核心框架的开源发行为例。这一举动使得 .NET 的运行时环境移植到任何平台都很轻松。这使得微软的 .NET 框架所涉及到的范围远远大于 Windows 平台。

开放 .NET 的核心包,最终使得 .NET 开发者开发跨平台的 app 成为可能,比如 OS X、Linux 甚至安卓——都基于同一个核心代码库。

从开发者角度来讲,这使得 .NET 框架比之前更有吸引力了。能够从单一的代码库触及到多个平台,使得使用 .NET 框架开发的任何 app 戏剧性的扩大了潜在的目标市场。

另外,一个强大的开源社区能够提供给开发者一些代码来在他们自己的项目中进行复用。所以,开源项目的可利用性也将会成就 .NET 框架。

更进一步讲,开放 .NET 的核心代码能够减少跨越不同平台所产生的碎片,意味着对消费者来说有对 app 更广的选择。无论是开源软件还是专用的 app,都有更多的选择。

从微软的角度来讲,会得到一队开发者大军。微软可以通过销售培训、证书、技术支持、开发者工具(包括 Visual Studio)和应用扩展来获利。

我们应该自问的是,这对自由软件社区有利还是有弊?

.NET 框架的大范围适用意味着许多参与竞争的开源项目的消亡,迫使我们会跟着微软的节奏走下去。

先抛开 .NET 不谈,微软正在花费大量的精力在 Azure 云计算平台对 Linux 的支持上。要记得,Azure 最初是 Windows 的 Azure。Windows 服务器是唯一能够支持 Azure 的操作系统。今天,Azure 也提供了对多个 Linux 发行版的支持

关于此,有一个原因:付费给需要或者想要 Linux 服务的顾客。如果微软不提供 Linux 虚拟机,那些顾客就会跟别人合作了。

看上去好像是微软意识到“Linux 就在这里”的这样一个现实。微软不能真正的消灭它,所以必须接收它。

这又把我们带回到那个问题:关于微软和 Linux 为什么有这么多的流言?我们在谈论这个问题,因为微软希望我们思考这个问题。毕竟,所有这些谈资都会追溯到微软,不管是在新闻稿、博客还是会议上的公开声明。微软在努力吸引大家对其在 Linux 专业知识方面的注意力。

首席架构师 Kamala Subramaniam 的博文声明 Azure Cloud Switch 背后的其他企图会是什么?ACS 是一个定制的 Linux 发行版。微软用它来对 Azure 数据中心的交换机硬件进行自动配置。

ACS 不是公开的。它是用于 Azure 内部使用的。别人也不太可能找到这个发行版其他的用途。事实上,Subramaniam 在她的博文中也表述了同样的观点。

所以,微软不会通过卖 ACS 来获利,也不会通过赠送它而增加用户基数。相反,微软在 Linux 和 Azure 上花费精力,以加强其在 Linux 云计算平台方面的地位。

微软最近迷上 Linux 对社区来说是好消息吗?

我们不应该慢慢忘记微软的“ 拥抱、扩展、消灭 Embrace, Extend and Exterminate ”的诅咒。现在,微软处在拥抱 Linux 的初期阶段。微软会通过定制扩展和专有“标准”来分裂社区吗?

发表评论吧,让我们知道你是怎么想的。


via: http://www.linuxjournal.com/content/microsoft-and-linux-true-romance-or-toxic-love-0

作者:James Darvell 译者:sonofelice 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在今年的 Linux 合作峰会上,记者发现前甲骨文的 Linux 与虚拟化工程部的高级副总裁 Wim Coekaerts 跳槽到了微软公司。

wim-coekaerts.jpg

Wim Coekaerts

Coekaerts 是一位著名的 Linux 领导者,在甲骨文公司内他被称之为“Linux 先生”。其在甲骨文的任期内,带领该公司推出了甲骨文的第一个 Linux 产品,并将甲骨文的程序员队伍从 Windows 桌面迁移到了 Linux 桌面上,以及通过开发 Red Hat 企业版 Linux (RHEL)的衍生版 Oracle Linux 从而将甲骨文公司变成了 Linux 发行商之一。

微软确认了是他们将 Coekaerts 从甲骨文挖到了该公司,微软的企业云副总裁 Mike Neil 对记者说,“Wim Coekaerts 已经加入到了微软,担任企业云事业群的开源副总裁。我们会继续深化我们开源方面的承诺,Wim 将关注在我们对开源社区的参与、贡献和创新等方面工作的深化。”

Coekaerts 加盟微软代表着该公司对 Linux 前所未有的开放态度,除了将 Linux 带到其 Azure 云对开源项目的投资之外,微软还做了听起来像是愚人节笑话一样的举措:将 Ubuntu 带到了 Windows 10

Coekaerts 在甲骨文任上最出名的事迹是将甲骨文公司变成了一家 Linux 领域的公司,所以你可以想象当他加盟微软会发生什么事情。MS-Linux?或者一个云方面的发行版,我觉得这并不是不可想象的事情。

在微软和 Linux 之间今后也许会发生很多有趣的事情。

昨晚,北京时间2016/3/30 23点30分,微软 //Build 2016 开发者大会在美国旧金山莫斯康展览中心拉开帷幕。

在本次大会上宣布,微软与 Ubuntu 的母公司 Canonical 合作开发了一个超级隐秘的项目,将 Ubuntu 的 用户空间 user space 带到了 Windows 10 之中。 据大会现场消息披露,你现在可以在 Windows 10 中直接运行 Linux 下的 bash 以及其它的数万个二进制程序了

正在旧金山参加本次大会的 Canonical 的 Ubuntu 产品与战略负责人 Dustin Kirkland 也在其博客上宣布了这个消息。

“这对于我来说也许有点奇怪,我已经快有16年没有使用 Windows 了。但在几个月前有了变化,我参与到了微软和 Canonical 合作的一个超级隐秘(也十分令人震惊)的项目中,这一切会在这次 Build 大会上由 Kevin Gallo 揭晓...”,他说,“现在可以在 Windows 10 cmd.exe 窗口内原生地运行 Ubuntu 用户空间和 bash !”

“好吧,这是一个运行在虚拟机的 Ubuntu 吗?” 不!这根本不是一个虚拟机,不用在虚拟机中启动 Linux 内核,它就是 Ubuntu 的用户空间。

“哦,那是运行在容器里面啰?” 不不!这也不是一个容器,这是在 Windows 里面直接运行原生的 Ubuntu 二进制程序。

“嗯,就像 cygwin 那样?”不不不!cygwin 所包括的开源程序是以源代码重新编译后才能原生运行在 Windows 上。而这里,我们说的是一个比特都不差、校验值完全一样的 Ubuntu 的 ELF 二进制程序可以直接运行在 Windows 下

... ...

“那么,这就像是模拟器一样么?”越来越接近真相了,来自微软的一些技术人员正在研究一种技术,将 Linux 的系统调用实时地转换为 Windows 的系统调用。你可以把它当成 Wine 的一种反向技术。微软将其称之为“ Windows 下的 Linux 子系统 Windows Subsystem for Linux ”,当然现在还没有开源。

如果你使用 Windows 10 来开发跨平台应用,那么“Ubuntu on Windows”项目将可以让你从 Windows 启动菜单直接访问 Linux 下的 bash shell。只需要键入 bash ,然后回车,就会打开一个命令行窗口,里面运行着 /bin/bash,然后数以万计的来自 Ubuntu 软件库中的二进制程序就可以运行了,包括但不限于 apt、ssh、 rsync、 find、 grep、 vim、 emacs、 awk、 sed、 ruby、 tar、 sort、php、 mysql、 perl、 python、 wget、 md5sum、 gpg、 curl、 apache、 gcc、 diff、patch 等等。

“这是 Windows 上原生可用的完整 Ubuntu 环境,不是虚拟化或模拟器,这是打破常识的里程碑和通向新天地的里程碑,”Canonical 公司 CEO Mark Shuttleworth 说,“不管怎么说,我们很高兴将 Ubuntu 带到了 Windows ,以一种神奇的方式满足了 Windows 开发者探索 Linux 的需要。”

这个技术当前基于 Ubuntu 14.04 LTS 开发,可以从 Windows Store 中下载早期 beta 版本。有关该项目的进一步技术细节,我们会在之后的文章中进行探讨。

观点:停止向企业收取虚假的 Android 专利。是的,没错,现在还在收着!

我是一个 Linux 和开源软件的老用户了,我是在 Linux Mint 17.3 桌面上使用 LibreOffice 5.1 写的这篇文章。虽然我知道微软做了一些改变,但是我并不真的相信微软改变了它的反开源路线。

让我们来看看微软都做了些什么。2014年,微软 CEO 萨提亚·纳德拉 Satya Nadella 公开宣称说微软爱 Linux。甚至连曾经说过“Linux 是癌症”的前微软 CEO 史蒂夫·鲍尔默 Steve Ballmer ,现在也认为微软走向开源软件是一个好的方向

这并不是微软的最新举措。早在 2008 年,时任微软平台技术战略总监的 Sam Ramji 就说过,“微软的开源战略关注于帮助客户和合作伙伴们在现今琳琅满目的技术世界取得成功。”

空谈容易,代码才是干货,微软确实也做到了这一点。

2016 年伊始,微软宣布开发 Linux 上的 SQL Server将 Eclipse 和 Visual Studio 集成到一起、发布了基于 Debian Linux 的开源网络交换机,已经将 RedHat RHEL 添加到它的 Azure 混合云里面。

这仅仅是一部分。去年,微软努力将 .NET Core 带到了 Linux 上在 Azure 云上支持 Debian GNU/Linux,甚至还有它自己的 Linux 认证。在此基础上,它在 Ubuntu 上提供了开源的 Hadoop 大数据软件。微软甚至还有它自己的 Linux 发行版——Azure Cloud Switch

但是,为什么微软做了这么多开源举措,仍然有很多开源爱好者和开发者认为微软不值得信任?

一些人讨厌微软是因为他们认为微软又在玩老一套的“ 拥抱、扩展、摧毁 Embrace, extend, and extinguish ”的把戏。但是我不这样认为,微软确实在开源许可证下释放了很多代码,这里并没有隐藏的陷阱。

另外一些人讨厌微软纯粹是因为他们一直讨厌而已。对于他们而言,今天的微软同上世纪90年代到本世纪初那个资助 SCO 攻击 Linux 的微软并没什么不同。其实这也是不对的。

开源社区的越来越多的人们认识到 2016 年的微软不再贪婪,不再是 比尔·盖茨 Bill Gates 史蒂夫·鲍尔默 Steve Ballmer 时代的那个微软了。

然而,还有一件事不能让开源人士们真正相信微软:微软还在继续要求 Android 厂商支付 Android 专利费用。在最近的三月初,微软又签下了两份的 Android 专利许可

每次我写了微软开源方面的进展的文章,读者们就会告诉我,如果微软真的成了一个开源拥护者,那它就应该停止强迫其它公司们为它的虚假 Android 专利付费

虚假?是的,虚假!

根据中国商务部公布的信息,我们知道微软在 Android 方面有 310 项专利。据关注于知识产权和无形资产的全球性金融机构 M-Cam 的报告,微软所拥有的 Android 专利中涉及的专利内容已经是“公开领域的一部分”了

这也是为什么2015年9月微软和 Google/摩托罗拉达成了专利和解的一个原因。微软并没有放弃它的专利,但是不再就这些专利向 Google 收费。

那么,为什么人们宁愿付费而不是打专利官司呢?因为专利诉讼非常非常的昂贵。相比去法院碰碰运气,人们宁愿为每台设备花费 $5 到 $15 的小钱。

而微软呢?在 2014 年,微软就从它的 Android 专利上收入了 34 亿美元。仅仅三星就向微软单独支付了 10 亿美金的 Android 专利费用。这甚至对于世界五百强公司来说也是一笔很大的钱了。

在最近的一个财季,批量许可和专利就占到了微软全部收入的大约 9%

这就是为什么微软绝不会停止 Android 专利收费的原因,这个雷蒙德的家伙可以每年从这些专利中源源不断得到数十亿美元,它才不会放弃呢。

为什么呢?虽然一些开源程序员不喜欢微软的专利流氓做法,但是一些诸如 Canonical 和 RedHat 这样的主要的开源企业仍然在同微软合作。

底线是底线。反正那些骨灰级的自由软件开发者绝不会信任微软,可那又如何?只要微软能在同开源企业合作的同时依旧收取 Android 专利费用,它就没有理由停下来不收。