NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

封装Ajax

Jason199

ajax 7月月更

Spring Cloud Alibaba 2.2.8 版本发布与社区未来规划介绍

阿里巴巴云原生

阿里云 云原生 spring cloud alibaba

关于对JavaScript变量提升的理解

是乃德也是Ned

JavaScript 前端 7月月更

【LeetCode】粉刷房子Java题解

Albert

LeetCode 7月月更

毕业总结

michael

架构实战营 #架构实战营 「架构实战营」

疫情来袭--远程办公之思考|社区征文

桑榆

初夏征文

资深工程师的技术方案思考模型

刘绍

方法论 工程师 软件设计 技术方案 程序员进阶

透过JVM-SANDBOX源码,了解字节码增强技术原理

柠檬汁Code(binbin0325)

互联网架构 源码剖析 字节码增强 源码解读 Java’

图解网络:什么是热备份路由器协议HSRP?

wljslmz

网络技术 路由协议 7月月更 热备份路由器协议 HSRP

ORACLE进阶(二)视图详解

No Silver Bullet

oracle 视图 7月月更

到底什么才是DaaS数据即服务?别再被其他DaaS概念给误导了

雨果

DaaS数据即服务

SAP UI5 应用的主-从-从(Master-Detail-Detail)布局模式的实现步骤

Jerry Wang

前端开发 SAP UI5 ui5 web前端开发 7月月更

Container killed by YARN for exceeding memory limits

怀瑾握瑜的嘉与嘉

spark 7月月更

Qt如何实现打包,实现EXE分享

小肉球

qt 7月月更

线程常用的方法

zarmnosaj

7月月更

【Python技能树共建】Beautiful Soup

梦想橡皮擦

Python 7月月更

Spring Cloud源码分析之Eureka篇第一章:准备工作

程序员欣宸

Java spring SpringCloud 7月月更

从0到1建设智能灰度数据体系:以vivo游戏中心为例

vivo互联网技术

数据分析 根因分析 数据分析体系

自主工业软件的创新与发展

Geek_2d6073

国内酒店交易DDD应用与实践——代码篇

Qunar技术沙龙

架构

CSS 文本阴影 text-shadow 悬停效果

南城FE

前端 动画 HTML5, CSS3 7月月更 hover

Go 语言入门很简单:Go 实现凯撒密码

宇宙之一粟

密码学 Go 语言 7月月更

如何远程办公更有效率 | 社区征文

宇宙之一粟

效率 居家办公 初夏征文

函数计算异步任务能力介绍 - 任务触发去重

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

EventBridge 在 SaaS 企业集成领域的探索与实践

阿里巴巴云原生

阿里云 云原生 SaaS 事件总线

毕业设计项目

michael

架构实战营 #架构实战营 「架构实战营」

JDBC 进阶

武师叔

7月月更

如何有效远程办公之我见 | 社区征文

踏雪痕

远程办公 居家办公 初夏征文

叮~您有一封Vue.js挑战邀请函,请查收

😶

JavaScript vue.js 前端 前端开发 开源项目

免费商城系统源码——如何选择?

开源直播系统源码

二次开发 免费源码 商城源码 免费商城源码

高中肄业,从月薪1000到几亿融资的创业者,是它拯救了我!

博文视点Broadview

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