写点什么

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

  • 2009-07-26
  • 本文字数:1317 字

    阅读完需:约 4 分钟

微软在 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

2009-07-26 23:472431
用户头像

发布了 88 篇内容, 共 273.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

[Day33-03]-[二叉树] 二叉树展开为链表

方勇(gopher)

LeetCode 二叉树 数据结构和算法

二、应用高可用设计要点

穿过生命散发芬芳

5月月更 高可用设计

读《Software Engineering at Google》(20)

术子米德

架构师成长笔记

读《Software Engineering at Google》(21)

术子米德

架构师成长笔记

极简Java数据结构-环形队列突破上限

芝士味的椒盐

Java 数据结构 5月月更

Nacos 源码简析之 Nacos Client 自动注册原理

道嗔

源码 nacos

如何在 WordPress 中创建登录页面

海拥(haiyong.site)

WordPress 5月月更

TypeScript 概述

Emperor_LawD

typescript 5月月更

《Linux是怎么样工作的》读书笔记

懒时小窝

Linux Linux Kenel

读《Software Engineering at Google》(18)

术子米德

架构师成长笔记

读《Software Engineering at Google》(16)

术子米德

架构师成长笔记

读《Software Engineering at Google》(22)

术子米德

架构师成长笔记

【愚公系列】2022年05月 二十三种设计模式(二)-抽象工厂模式(Abstract Factory Pattern)

愚公搬代码

5月月更

洞见科技李博:科技向实,隐私计算规模化应用吹响号角

洞见科技

金融科技 隐私计算

安装Maven到Idea配置Maven竟如此简单

芝士味的椒盐

Java maven 5月月更

LeetCode 242:有效的字母异位词

武师叔

5月月更

某年某周每一天的时间是多少

入门小站

工具

Netty篇之内存管理器

邱学喆

内存管理器 netty内存管理 jemalloc管理器

[Day33-02]-[二叉树] 恢复二叉搜索树

方勇(gopher)

LeetCode 二叉树 数据结构和算法

Apache Calcite整体架构及处理流程

不穿格子衬衫的程序员

大数据 Apache Calcite database SQL解析

Go链表与切片比较

jinjin

List 链表 slice Go 语言 切片

全链路压测(十):测试要做的准备工作

老张

性能测试 全链路压测 稳定性保障

ubuntu 18及以上版本配置IP的方法,你get了吗

伍工

Linux 网络

在线Excel转YAML工具

入门小站

工具

读《Software Engineering at Google》(17)

术子米德

架构师成长笔记

读《Software Engineering at Google》(23)

术子米德

架构师成长笔记

读《Software Engineering at Google》(24)

术子米德

架构师成长笔记

阿里巴巴Java性能调优实战

Joseph295

公众号运营推广方式

源字节1号

软件开发

Centos7升级Python2到Python3

入门小站

Linux

读《Software Engineering at Google》(19)

术子米德

架构师成长笔记

微软向Linux Kernel贡献两万行代码_开源_Abel Avram_InfoQ精选文章