微软向Linux Kernel贡献两万行代码

微软在GPLv2协议下向Linux Kernel 2.6.32贡献了3个Linux设备驱动,两万行代码。

微软开源技术中心主管Tom Hanrahan解释了微软作出这个非同寻常举动背后的动因:

我们有必要理解虚拟化的一个关键点。如果操作系统作为虚拟机运行,那么它得清楚这件事,这样就不会将调用直接发给各种外围设备了。在微软的术语中,我们称其为启迪(enlightenment)。Windows Server 2008就被设计成这样,因此它清楚何时作为虚拟机运行,何时在物理硬件上运行。

为了让Linux能在Hyper-V上拥有同样的体验,我们必须将这种启迪赋予给它。要想实现这一点则需要运行Linux设备驱动。

以前这些设备驱动是可以下载并用在Hyper-V的第一版上的,然而Linux社区使微软相信(通过Greg Kroah-Hartman,他是在这个议题上与微软进行交涉的第一人)增加Linux设备驱动的办法就是将其贡献给社区,这样任何商业或非商业发布者都能够随意使用、修改并分发它们了。

微软开源技术中心经理Hank Janssen(他领导的团队为这些驱动编写代码)承诺他们不会半途而废:

我们将继续更新驱动代码以不断增强其协同性,同时也希望社区中的开发者觉得这些代码对他们是有用的,值得为其付出。

451 Group的分析师Jay Lyman就微软的这个举动发表了自己的一些看法。他认为微软会保留这些代码的知识产权:

这些代码的版权属于微软,贡献者的荣誉归功于该工程的领导者Hank Janssen——微软开源技术中心的程序经理。

然而他的理解却是微软并不会声明任何专利权,因此也不会向使用代码的人索取任何费用:

我们不妨做最坏的打算,假设微软这么做是个阴谋:他现在为Linux贡献代码,然后去申请专利。但理论上是否存在这个可能完全取决于我们对GPLv2的理解。

...最终这是一个法律上的问题,或取决于律师的口才(显然这么说带有讽刺意味)。与此同时,我们认为微软通过GPLv2来贡献代码包含了一个承诺:不会对代码的使用收取费用,也不会对代码申请任何专利。

Lyman还解释了微软之所以这么做的原因所在:

Red Hat与Novell发布的Linux已经支持enlighten模式了,这要归功于与微软的合作开发。微软向Kernel贡献代码的一个好处是减少了重复开发工作,同时也降低了支持多种不同Linux实现的代价。一旦Kernel接受了代码,微软将以这些代码为基础进行未来的虚拟化集成开发。

这也意味着Linux的社区发布版也可以使用这些代码,这为微软在主机市场上开创了更多的机会,因为Linux的社区发布版如Ubuntu、Debian与CentOS都是非常重要的。这也加强了这些社区操作系统挑战Red Hat与Novell的能力,而后者对于Windows来说是更加直接的挑战者。

别搞错了,微软之所以这么做是由其利益驱使的。他必须要满足使用多种操作系统和混合环境的企业用户的各种需求,微软已经从差异化其Hyper-V技术与虚拟化领导者VMware中受益无穷了。我们有理由相信相对于VMware来说,微软对Windows的虚拟化会对Linux提供更加友好的体验。

需要说明的是,Linux无需借助于上面提到的设备驱动就能运行在Hyper-V上,但性能却很差。这是微软首次向Linux Kernel贡献代码,也是首次在GPLv2下发布代码。

查看英文原文:Microsoft Is Contributing 20,000 Lines of Code to the Linux Kernel

你可能感兴趣的:(微软向Linux Kernel贡献两万行代码)