写点什么

微软向 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:472346
用户头像

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

关注

评论

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

spark学习之IDEA配置spark并wordcount提交集群

我是程序员小贱

区块链技术--公证人机制

CECBC

区块链 数字货币 公证人

正则表达式位置匹配——匹配两个特殊符号中间的内容

jerry.mei

Java 正则表达式 大前端 字符串匹配

螺旋矩阵算法,臭代码解析,微服务架构 Service Mesh 服务网格 RPC 协议实现原理 Dubbo 通讯协议,John 易筋 ARTS 打卡 Week 13

John(易筋)

ARTS 打卡计划

[python基础]2 python数据类型上篇

我是程序员小贱

全面剖析PHP-FPM+Nginx通信原理

书旅

nginx 正向代理与反向代理 PHP-FPM

准时下班的秘密:集成 GitLab && JIRA 实现自动化工作流

Phoenix

团队协作 研发效能

ARTS 07 - 使用 supervisor 配置 ngrok 内网穿透为守护进程

jerry.mei

算法 练习 ARTS 打卡计划 ARTS活动 内网穿透

如何选择:Bootstrap Or Layui

引花眠

bootstrap layui

python必备知识总结

我是程序员小贱

Nginx之反向代理

xcbeyond

nginx 反向代理 代理

一次由默认参数引起的思考

白日梦想家

编程 思考

结算场景下的跳坑记

李印

SpringBoot系列(七):SpringBoot 中使用Redis缓存

xcbeyond

Java redis 微服务 springboot

SpringBoot系列(八):SpringBoot 中的事务处理

xcbeyond

Java 微服务 事务 springboot

Java统一异常处理(配置文件集中化定义)

xcbeyond

Java 架构 后端 统一异常

JDK中居然也有反模式接口常量

看山

Java 源码阅读

蓝绿部署、金丝雀发布(灰度发布)、AB测试

看山

微服务 持续集成

SICP,我的函数式编程启蒙书

Kurtis Moxley

读书 函数式编程

航运区块链 抗疫危中有机

CECBC

区块链 航运

这样看mybatis,谁都会分析源码!

诸葛小猿

源码 mybatis mybatis源码

[python基础]3 python数据类型下篇(不得不看的字典,列表大总结)

我是程序员小贱

异常处理的那些事儿

松花皮蛋me

Java 设计模式

IT人为什么难以拿高薪?

看山

成长 随笔杂谈 薪资 心灵鸡汤

ARTS Week12

时之虫

ARTS 打卡计划 arts

Bash 脚本的单元测试

柴锋

bash Linux DevOps Unit Test Shell

目前数字人民币试点仍是“4+1” 别误读了

CECBC

数字货币 央行 人民币

全面了解CGI、FastCGI、PHP-FPM

书旅

CGI PHP-FPM Fast-CGI

16张图入门Nginx——(前端够用,运维入门)

执鸢者

nginx 运维 大前端

这些年看过的Linux相关书籍推荐

我是程序员小贱

ARTS打卡 第12周

引花眠

微服务 ARTS 打卡计划

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