谷歌似乎对开源社区的贡献极大,开发创新贡献奖出了多种开源系统、软件。为什么微软和苹果都没有谷歌这么热衷开源?

三种说法 网友辣评微软为何开源.NET
 作者: 老鱼 编辑:
  【IT168&评论】近日,微软公布了.NET开发环境开源计划,开发者可在Windows以外的其他平台上开发.NET应用程序,同时微软承诺将对这些平台提供.NET应用的运行环境及框架支持。▲微软公布.NET开源计划  要知道微软与开源一直都是对立的两面,此消息一出,开发者一片哗然,立刻网络上铺天盖地各种评论文章尽出,标题极尽夸张,微软阴谋论、末路论、自杀论等论调层出不穷。但都没让小编找到想要的答案,微软到底出于什么目的开源.NET? 开发者们对微软开源.NET又持有什么样的看法呢?  微软为什么开源.NET的原因,根据小编从网上收集整理的网友火辣评论,网友观点大致可分为以下3种说法:“放羊说”,“被迫说”“拉客说”(生态圈说)  一、放羊说  网友jet9600:“.NET早已风雨飘摇。对微软来说,能赚钱的东西才是好东西,赚不到钱的东西嘛,随便了,“开源”的意思就是放羊了。随它去了,让它自生自灭了,也就是说微软对这玩意儿已经兴趣不大了,不靠它赚钱了,它不再是未来的“战略”了,目测结果:.NET前景更加堪忧。”  小编点评:放羊说这种观点比较悲观,个人认为可能性不大,放羊还这么高调,有没有搞错!!!  二、被迫说  网友曾学海:C#从来都是跨平台的语言,.net也一直都有开源实现,也没见怎么样,如今的局面下,微软宣布开源,乃是仓皇无奈之举,不是规划好的战略决策,这年头还在拼语言和运行时,就out了,没有强大的社区和牛叉的生态环境,就没啥玩的了,所以综上,可以看做微软已经对今时今日的局面无可奈何,对于.net dev而言,不是什么好事。老想依靠一个平台、一个语言,只能永远都是IT屌丝,吃不到肉。  网友chinacodegear:这位王者感到巨大的压力和近乎绝望,才放的这个大招。 即是强大的表现,也是底气不足的暴露。  小编点评:被迫说这种观点来自微软日益剧烈的市场竞争压力,在移动与大数据这两方面,微软确实已经落后太多,不排除这方面的的因素。  三、拉客说(生态圈说)  网友胡康桥:微软在三哥CEO上台以后,一直在推崇One blabla的概念(概括起来可以说是“一个微软”)。以这个概念为指导思想,不难看出微软一系列动作背后的深层原因。  为什么要开源:生产力,信任  开源是互联网时代的一个核心价值观。在同一个价值体系下还有众筹,众包等概念。这是在人与人沟通交流合作成本大大降低后提高生产力的必然产物。全球各地都有开发者,贡献者,监督者,这个力量与十几个精英分子坐在小黑屋里埋头苦干的力量不可同日而语。信任是开源的另外一个关键词,你可以随时随地检查源代码,你有什么理由不去使用一个你可以完全信赖的东西?  .NET跨平台——对开发者的意义  跨平台,One blabla。写一次代码,到处跑,这难道不是每个普通开发者梦寐以求的?这难道不是JAVA流行的根本原因?  .NET跨平台——对微软的意义  微软是一个上市公司,上市公司的首要责任就是保证股东们赚钱。互联网时代靠单纯的收取授权费来赚钱已经不是一个理想的方式,吃肉喝汤才是正确思路。——构建生态圈。构建生态圈的第一步就是拥抱开发者。核心代码不用做重大修改就能运行在Windows, Linux, Android, iOS, Mac OS X,一门语言既能做桌面开发,又能做网站开发,又能做,那么作为一个开发者,有什么理由不去拥抱这样一门语言,这样一个生态链呢(简历上只 有一门语言不好看?呵呵)?  微软的布局大家已经看的很清楚了:开源.NET-&拥抱开发者-&Azure套牢-&构建生态圈(包括硬件生态,Windows Phone, Surface Pro, XBox One)-&吃肉喝汤。 我们单独看其中任意一环毫无意义,任何一环都有替代品,但是当我们真正步入这个生态圈并开始使用一整套的服务时,那完全是另一番天地。甚至当我们开始使用 Windows phone,Surface pro,Xbox时,发现这个服务链简直完善得无以复加。而微软的另一个优势是在国内和国外有着相似的用户体验。喜欢Google的技术和服务?抱歉,在大陆不存在。  网友Leo_刘峰:掌控力不在于专利和条款,在于开发者不由自主的追随。  网友李慧_in_A:在桌面以及部分上微软占据了很大的地盘,但是移动崛起,谷歌苹果开拓了更广阔的疆土,微软却出师不利Windows Phone屡战屡败,还没有走出家门。硬件无法占领新大陆,就只能派软件去传教。  网友詹子知:大数据和移动互联网的兴起,企业应用相关的平台日子都不太好过,无论是J2EE还是.NET,不过Java在关键时刻抓住了Android和大数据这两棵大树,除非WP能搞起来,否则微软依然无法从根本上改变目前的困境。开源可以使C#及.NET平台发展的更好。  网友Tenzing Jia:进一步推广整个微软技术,开源.NET,微软官方的解释是:“方便开发者调试和学习”,确实,.NET开源用了开源界承认的最严格的开源协议,一旦修改必须销毁不得分发,对于开发者更多的作用不是拿来直接用,而是学习和参考,吸引开发者,虽然不一定会有更多的应用,但一定会有更多的追随者。  小编点评:拉客这种说法,小编认为最靠谱,网友胡康桥的分析相当专业详细,跨平台是每个普通开发者梦寐以求的事,微软想要破局,要想要赢得市场,必须赢得大量开发者的心。
IT168企业级&主题:为啥只有苹果敢靠封闭系统赚钱?微软和谷歌就不行呢?
泡网分: 10.421
主题: 1179
帖子: 9646
注册: 2012年09月
哪些没有系统用安卓的手机商还是洗洗睡吧。
微信扫一扫分享
&浏览:1039&&回帖:37 &&
泡网分: 31.268
精华: 1帖子: 15968
注册: 2008年08月
苹果在开发者层面并没有很封闭 事实上搞了不少开源项目 它封闭的是消费端 如果随意传歌 谁花钱去iTunes上买正版音乐啊 以前都说mp3出来 唱片工业要完蛋 Napster就是撒旦那感觉 幸好苹果出来挽救 其实你非要越狱什么谁也拦不住 但是我们中国人为啥可以不花钱享受各种高品质盗版音乐呢 还不就是国外那些花钱的消费者帮我们养活了创作者么 所以这个消费体系还是有好处的
泡网分: 5.086
帖子: 5896
注册: 2014年02月
con 发表于
然并卵, oracle起码十年前就可以运行在liunx上了, 但是linux上大把开源好用的数据库, 所以很少人会去用oracle, sql server就更不可能有人去用了互联网和企业级是两个不同的市场,各有各的诉求点。貌似微软的Azure云上也支持Linux,mySQL, NoSQL,Pathon,Java, apache Hadoop,storm,spark等开源产品,比起以前攻击linux和开源已经有了非常可观的转变了。
泡网分: 0.875
注册: 2016年08月
不刀不舒服斯基 发表于
没错,想一下如果没有linux、没有安卓,这世界会是个什么样子?
...全部开源肯定不现实,不然谁来开发?人家也要吃饭,难道吃西北风? 没有安卓也有其他,不是?
本帖由安卓客户端发布
泡网分: 28.669
帖子: 1082
注册: 2003年01月
zephyrxie 发表于
.net framework 开源了,微软拥抱Linux了,Linux进入了Win10, 马上SQL Server可以运行在Linux上了。然并卵, oracle起码十年前就可以运行在liunx上了, 但是linux上大把开源好用的数据库, 所以很少人会去用oracle, sql server就更不可能有人去用了
泡网分: 39.118
帖子: 6204
注册: 2005年12月
微软最初是一家纯软件公司,依托IBM的PC发展起来的,PC工业基础架构开放后,导致兼容的PC繁荣,AT&T,COMPAQ,HP,都是曾经的受益者,加上众多的其他品牌兼容机市场蓬勃发展,作为IBM合作伙伴,微软也得到迅快速发展,微软在个人电脑的体系架构发展上没有任何贡献,一直都是跑在硬件后面。开放的是PC架构,而不是微软,微软的系统是服务于PC的。苹果一直都是软硬件打包出售,软件系统配合硬件捆绑销售,在PC时代给微软和众多的兼容PC品牌超越,险些淘汰,因为当时的IT巨人是IBM.。后来MAC兼容INTEL架构得以活了下来,后来借助iphone重新定义了手机这一移动终端,极大的推动了移动互联时代的发展。赚钱跟开放无关,而是产品是否能引领时代的发展进步。IBM开放自己PC架构后,最后PC活下来的却是戴尔和联想。
在,IT发展进程中,IBM开放PC架构和苹果Iphone推出都是里程碑式的事件,分别都导致IT进入一个高速发展的新时代。
本帖由 HUAWEI+MT7-CL00 客户端发布
泡网分: 5.086
帖子: 5896
注册: 2014年02月
xory 发表于
windows开源了?楼主哪儿见的消息?.net framework 开源了,微软拥抱Linux了,Linux进入了Win10, 马上SQL Server可以运行在Linux上了。
泡网分: 49.256
帖子: 13830
注册: 2002年05月
神论哥 发表于
为啥只有苹果敢靠封闭系统赚钱?IBM微笑不语
泡网分: 22.524
帖子: 2497
注册: 2007年07月
dogcome 发表于
就别拿祖宗是开源来等同开放了,这谎话听着就跟阿Q“我祖上也曾阔过”一样可笑,BSD发展出来的闭源系统满街都是,连Ms也拿来弄过Xinex,另外,Windows也不是开源的,Pc开放的关键区别就是在上面做开发无需授权。苹果呢?什么叫MFI?要生产一个兼容的硬件,呵呵,你试试那周期和费用。祖宗是开源?OSX就是现在的内核,编译器,浏览器内核都是开源,这可不是什么祖宗关系。MFI?PC一塌糊涂的一个关键就是体验不一致,苹果的MFI你可以说是让苹果赚的更多了,你也可以说是让消费者获得了更一致的体验,想怎么说就看你是更关心别人赚了多少钱,还是自己赚了多少体验
泡网分: 5.258
帖子: 3333
注册: 2013年12月
回顾个人电脑这几十年,苹果也不是没被迫搞过开放的时候。所以总结起来,应该是科技的螺旋上升模式使然,当一项技术出现初期,应用有限,开放和不开放都活得差不多,PC开始只是打打字,而且造价昂贵,苹果那时也挺风光的。后来技术应用进入20年的膨胀阶段,开放系统的丰富应用和价格优势就体现了,苹果几乎倒闭。接着进入个人电脑技术发展天花板阶段,而移动终端受体积电池等限制,人们对这时封闭系统和开放系统能带来的应用都能得到满足,价格差距也有限,所以两边都能活的不错。
或许该等到下一个技术革新,到了下一个技术膨胀期,苹果估计又得求爷爷告奶奶的搞开放了
本帖由安卓客户端发布
泡网分: 7.92
帖子: 2761
注册: 2010年03月
开源闭源要看出发点,谷歌的出发点本身就和其他两家不一样。目的只有一个,就不说了。
泡网分: 5.258
帖子: 3333
注册: 2013年12月
adonishong 发表于
请问各位在讨论苹果封闭的系统的时候是否知道以下事实:
1. 苹果的OSX和iOS都是基于Darwin核心,Darwin核心源自Free...就别拿祖宗是开源来等同开放了,这谎话听着就跟阿Q“我祖上也曾阔过”一样可笑,BSD发展出来的闭源系统满街都是,连Ms也拿来弄过Xinex,另外,Windows也不是开源的,Pc开放的关键区别就是在上面做开发无需授权。苹果呢?什么叫MFI?要生产一个兼容的硬件,呵呵,你试试那周期和费用。
本帖由安卓客户端发布
泡网分: 2.663
帖子: 4676
注册: 2013年04月
liangf 发表于
2、30年前,sony也是靠封闭系统赚了钵满盆满,而且还能站在潮流的尖端。...sony的软件太差了。
本帖由 无忌论坛V3.1.0 iPad iOS9.3.5 客户端发布
泡网分: 0.443
帖子: 1836
注册: 2003年10月
android 起点就是错的,整个开发环境都建立在java这种垃圾语言上,生态系统建立后想再改语言就太困难了
本帖由 iPhone7,1 客户端发布
泡网分: 21.356
帖子: 12407
注册: 2007年12月
苹果的生态系统已经建立起来,硬件加软件都是最顶级的,为什么不赚钱呢?微软就不提了,软件差的太远了,就是谷歌,软件也颇有不及,硬件旗舰机大家半斤八两,苹果CPU略有领先,但不是决定因素
其实赚不赚钱关键还是看旗舰机的销量,像谷歌占有率比苹果高多了,但大多数都是低端机,因为系统一样,低端高端体验对大多数人来说差不多,没必要多花钱。
泡网分: 19.824
帖子: 8291
注册: 2009年10月
你搞错了吧,苹果攒钱不是因为系统,是因为他的硬件和功能设计,当初因为它有些新的功能,产品外观独特做工也算精致,吸引一部分人购买,之后不停升级于是惯性消费而已,当然发布会和炒作销售也是比较成功的。系统只是个软件平台,个人觉得苹果的系统不咋地
泡网分: 6.418
帖子: 7138
注册: 2014年03月
adonishong 发表于
请问各位在讨论苹果封闭的系统的时候是否知道以下事实:
1. 苹果的OSX和iOS都是基于Darwin核心,Darwin核心源自Free...学习了
本帖由 Nexus+6P 客户端发布
泡网分: 37.091
精华: 3帖子: 2188
注册: 2002年06月
adonishong 发表于
请问各位在讨论苹果封闭的系统的时候是否知道以下事实:
1. 苹果的OSX和iOS都是基于Darwin核心,Darwin核心源自FreeBSD系统,和Linux齐名的另一个开源世界的主流系统。Darwin核心本身也是开源的。简单来说,苹果的操作系统内核是开源的。
2. OSX和(越狱的)iOS上都有完整的GNU系列工具,Linux/FreeBSD下能用的东西,基本上OS和(越狱的)iOS上都可以轻松搞定,著名的macport和brew系统基本上和debian上的apt,deb体系方便程度一致
3. 正因为上面的第二点,所以在开发人员里,除了专门做Windows系统Native开发的工程师,大多数研发工程师在OSX系统上比在Windows系统上更方便确实,OSX对开发者是一个很友好的平台,除了不能开发Win系统的应用。
现在*nix系统基本上没有收费的了,除了服务的。
泡网分: 22.524
帖子: 2497
注册: 2007年07月
sorneed 发表于
但是MAC OS为什么败给了WINDOWS?抬杠是一件很好玩的事儿么?
我说的是封闭与开放的问题,楼主扔的话题也是关于所谓封闭,码几个字只不过是看不惯大家或者惯性思维或者被媒体误导的说起苹果就只知道封闭。
你要说成败也就说说吧,先按照你的逻辑说,MAC OS为什么败了。
1. MAC OS败给WINDOWS的道理很简单,PC爆发期的年代,价格极其敏感,对消费者的封闭就意味着和C端说再见了
2. 我以上所谓的OSX的开放,苹果还真就只是在OSX的时代开放,OSX之前输的更惨
再看看别的角度, OSX真的败了么
1. 如果从品牌占有率来看,苹果电脑的排名不用我多说了吧,论单品牌,还那么肯定苹果输了么?以一个品牌对抗一群,不觉得那一群已经虽胜犹败么?
2. 从垂直市场的角度来看,研发这边的前后端开发,设计,编辑,尤其在欧美市场,苹果不要笑的太开心 本帖最后由 adonishong 于
23:11 编辑
泡网分: 41.57
主题: 1369
帖子: 25671
注册: 2004年01月
leegoo 发表于
你说的是桌面系统还是手机系统?
手机系统看看满大街的店。MAC OS显然指的是桌面系统。WINDOWS也是指的桌面。
泡网分: 40.586
帖子: 9186
注册: 2004年03月
sorneed 发表于
但是MAC OS为什么败给了WINDOWS?你说的是桌面系统还是手机系统?
手机系统看看满大街的店。
泡网分: 41.57
主题: 1369
帖子: 25671
注册: 2004年01月
adonishong 发表于
请问各位在讨论苹果封闭的系统的时候是否知道以下事实:
1. 苹果的OSX和iOS都是基于Darwin核心,Darwin核心源自FreeBSD系统,和Linux齐名的另一个开源世界的主流系统。Darwin核心本身也是开源的。简单来说,苹果的操作系统内核是开源的。
2. OSX和(越狱的)iOS上都有完整的GNU系列工具,Linux/FreeBSD下能用的东西,基本上OS和(越狱的)iOS上都可以轻松搞定,著名的macport和brew系统基本上和debian上的apt,deb体系方便程度一致
3. 正因为上面的第二点,所以在开发人员里,除了专门做Windows系统Native开发的工程师,大多数研发工程师在OSX系统上比在Windows系统上更方便
4. OSX的,包含Clang的LLVM编译工具链,这个由苹果的工程师开发的工具链,作为一个开源项目,在FreeBSD下也在逐渐赶上GNU工具链。简单来说,苹果的编译系统是开源的。
5. 源自苹果的webkit项目,一度是非IE浏览器的主要核心;现在的blink和webkit可以说也是继承关系。简单来说,苹果的浏览器是开源的。
6. 苹果最新的Swift语言甚至都开源了。
7. 微软的内核,编译器,浏览器都是闭源项目
实际上苹果系统是一个对开发者开放对消费者封闭的体系,微软系统是对消费者开放但是对开发者封闭的系统
苹果的封闭其实只体 ...但是MAC OS为什么败给了WINDOWS?
泡网分: 22.524
帖子: 2497
注册: 2007年07月
请问各位在讨论苹果封闭的系统的时候是否知道以下事实:
1. 苹果的OSX和iOS都是基于Darwin核心,Darwin核心源自FreeBSD系统,和Linux齐名的另一个开源世界的主流系统。Darwin核心本身也是开源的。简单来说,苹果的操作系统内核是开源的。
2. OSX和(越狱的)iOS上都有完整的GNU系列工具,Linux/FreeBSD下能用的东西,基本上OS和(越狱的)iOS上都可以轻松搞定,著名的macport和brew系统基本上和debian上的apt,deb体系方便程度一致
3. 正因为上面的第二点,所以在开发人员里,除了专门做Windows系统Native开发的工程师,大多数研发工程师在OSX系统上比在Windows系统上更方便
4. OSX的,包含Clang的LLVM编译工具链,这个由苹果的工程师开发的工具链,作为一个开源项目,在FreeBSD下也在逐渐赶上GNU工具链。简单来说,苹果的编译系统是开源的。
5. 源自苹果的webkit项目,一度是非IE浏览器的主要核心;现在的blink和webkit可以说也是继承关系。简单来说,苹果的浏览器是开源的。
6. 苹果最新的Swift语言甚至都开源了。
7. 微软的内核,编译器,浏览器都是闭源项目
实际上苹果系统是一个对开发者开放对消费者封闭的体系,微软系统是对消费者开放但是对开发者封闭的系统
苹果的封闭其实只体现在一个方面:不能安装在非苹果的硬件上,但是苹果体系本身几乎是透明的。消费者体验到的所谓各种“封闭”其实只能认为是设备使用权限的限制(移动设备上用户拿不到root权限),这其实是实实在在的安全措施。在这个问题上,微软,苹果,谷歌没有任何区别。谷歌那边方便root是因为谷歌对于操作系统花的心思太少,只要谷歌愿意多花点心思在安全问题上,安卓设备的root难度不会低于苹果这边的越狱。
BitchCitrix 发表于
这个论调,就跟没有CCP就没有新///一样,就跟没有金太阳我们会死那个歌曲一样。刚好可以回答这个问题,没有Linux,世界上还有FreeBSD,一个比Linux更稳定更专注的开源系统。外延一句,如果没有gcc, g++还有LLVM,开源系统依然可以完成编译,代码仍然可以变成可以执行的程序。
本帖最后由 adonishong 于
19:31 编辑
泡网分: 0.058
注册: 2015年12月
liangf 发表于
2、30年前,sony也是靠封闭系统赚了钵满盆满,而且还能站在潮流的尖端。...所以,它们这些公司全部都没落了
本帖由Windows 8客户端发布
泡网分: 0.058
注册: 2015年12月
不刀不舒服斯基 发表于
没错,想一下如果没有linux、没有安卓,这世界会是个什么样子?
...这个论调,就跟没有CCP就没有新///一样,就跟没有金太阳我们会死那个歌曲一样。
本帖由Windows 8客户端发布
泡网分: 25.764
帖子: 16984
注册: 2005年10月
黑莓不是?
本帖由 iPhone 5s (GSM+CDMA) 客户端发布
泡网分: 0.358
注册: 2010年09月
windows不是封闭系统吗?
泡网分: 4.219
注册: 2010年11月
windows开源了?楼主哪儿见的消息?
本帖由安卓客户端发布
泡网分: 37.742
帖子: 6623
注册: 2005年01月
首先,要有信众
泡网分: 53.554
精华: 2帖子: 5656
注册: 2001年06月
关键是客户体验。
泡网分: 8.649
帖子: 9605
注册: 2014年07月
blackeye 发表于
如果没有开源,这世界会完全不一样!没错,想一下如果没有linux、没有安卓,这世界会是个什么样子?
本帖由 samsung+SM-G9300 客户端编辑于: 13:35:10
&版权所有:&&&&Android,开源还是封闭? - 阮一峰的网络日志
Android,开源还是封闭?
满大街都在谈论Android。
它是当红炸子鸡。许多人觉得,iPhone将受到它的强力挑战。
我也曾经对它充满了期待,但是后来的事态发展,令我改变了看法。前几天,我就在网志上写了自己的:
"首先,Android应用程序只能用java语言开发,莫非所有的应用程序都运行在一个巨大的虚拟机上?(【更正】网友留言指出,2009年6月Android发布NDK工具包,支持C/C++语言编程,不过性能不如SKD工具包中的Java语言。 )
其次,Google对Android采用了一种全面霸权式的管理,完全不是其他开源软件的开发方式,一切都由Google说了算,很多地方是黑箱,外界不得而知。"
没有想到,仅仅过了两天,担忧就变成了现实。Linux Kernel的维护者宣布,。这意味着,Linux Kernel的开发小组不认可Android的贡献,两者产生了冲突。
消息公布以后,外界普遍觉得惊讶和可惜。好不容易,才有了一个这么受欢迎的开源手机系统,应该齐心协力、共同开发才对,为什么要"窝里斗"呢?到底是什么矛盾,使得Linux Kernel小组剔除Android代码呢?
Greg Kroah-Hartman写了一篇详细的,解释这个决定。下面就来看看,他是怎么说的,以及Android到底是一个什么样的系统。
在这之前,你最好知道Greg Kroah-Hartman是谁。他是目前Linux Kernel的核心开发人员,负责stable软件包的发布。就是说,每一个新版本的Linux Kernel,都是经过他的手流出来的。此外,他还负责硬件驱动的部署。而他的手机就是HTC G1,每天都在使用。所以,他是绝对有资格谈论这个问题的,他的看法代表了Linux社区对Android的看法。
首先,他指出Android和其他的Linux发行版不一样:
"Google has taken the Linux kernel, and nothing else from a "traditional" Linux system.
Google只用了kernel,别的东西都没用。"
这就是说,与Ubuntu、Debian、Redhat这样的传统Linux发行版相比,只有系统的底层结构是一样的,其他东西在Android里都不一样,尤其是程序员的编程接口是完全不同的。因此,Android应用程序都必须重新写过,现存的Linux程序无法移植上去。所以,从严格意义上说,Android是一种全新的系统,它与Linux的距离,比Mac OS与Linux的距离还要远。
然后,Greg Kroah-Hartman肯定了Android这样做的积极意义:
"Android also solves the problem that the phone manufacturers had been having for many years: a free version of Java and a unified application layer that programmers can write to that will work on all phone platforms that integrate it.
它解决了长期令手机制造商头痛不已的问题:业界缺乏一个开源的Java虚拟机,以及统一的应用程序接口。现在,程序员只要写一次程序,就能在各种手机硬件平台之上使用。"
这段话解释了,为什么Android的应用程序,都必须用Java语言开发。因为不这样做的话,没法让程序做到硬件无关。
且慢,这真的是理由吗?传统的Linux系统,也并不依赖特定的硬件啊!只要把源代码根据不同的平台,分别编译一下,同一个程序不也照样可以在不同的硬件架构、不同的Linux发行版中使用吗?
那么,Android只采用kernel、只允许用java编程的真正原因,到底是什么?
台湾的科技网志一语道破真相:
"Linux kernel 的版权是 GPL。
这下问题来了:如果你是硬件厂商,希望你的硬件能在 Linux kernel 下运作,那么就必须要有驱动程序。如果驱动程序的程序代码公开,等于硬件规格也公开的差不多了。许多厂商不愿意这么做,所以就提供编好的驱动程序,但不提供原始码。
Android 的重点就是商业应用,Google采用了一些手法来绕过这问题。他们把驱动程序移到 "userspace",也就是说,把驱动程序变成在 Linux kernel 上头跑,而不是一起跑的东西,这样就可以避过GPL。然后,在 kernel 这边开个小门,让本来不能直接控制到硬件的 "userspace" 程序也可以碰得到,这样只要把"开个小门"的程序代码公布就行啦。"
看明白了吗?
这段话的意思是说,Google玩了一个花招,在kernel和应用程序之间,自己做了一个中间层,这样就既不违反GPL许可,又能不让外界看到厂商的硬件驱动和应用程序的源码。
里面的关键在于,Kernel和Android的许可证不一样,前者是GPL许可证,后者是Apache Software License(简称ASL)许可证。GPL许可证规定,对源码的任何修改都必须开源,所以Android开源了,因为它修改了Kernel。而ASL许可证规定,可以随意使用源码,不必开源,所以建筑在Android之上的硬件驱动和应用程序,都可以保持封闭。为了得到更多厂商的支持,Google有意选择了这样做,并且特意修改Kernel,使得原本应该包括在kernel中的某些功能,都被转移到了userspace之中,因此得以避开开源。
这样做或许有利于推广Android,吸引厂商和软件开发商的加入,但是Google也放弃了构建一个真正开源的手机系统的机会,从而也就不能获得由全世界程序员提供智慧、分享代码、推动创新的好处。关于许可证问题的深入讨论,请阅读Ryan Paul的文章。
Google的这种做法,直接后果就是给Linux Kernel带来了麻烦。Greg Kroah-Hartman清楚地说出了自己的不满。
"...any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google's kernel tree, causing it to fail to build in the kernel.org tree.
所有为Android写的硬件驱动,都不能合并入kernel。因为它们只在Google的代码里有效,在kernel里根本没法用。
Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.
由于这个原因,Google也从不把大量的硬件驱动程序和平台源码向kernel提交。实际上,它创造出了一个kernel的分支,大量的开发者都依赖那个分支。"
这就是Android干的事情:它修改了Kernel,但是又不提供修改的细节,自己搞了一个封闭的系统。说得难听一点,它利用了开源社区,要求开源社区为它做贡献,却又不愿提供回报。
所以,Linux Kernel就把Android踢出去了,真是再正常不过了。
人们有权利质疑,Android这样的哲学是否正确?是否符合Google"不作恶"的口号?如果Android继续这样封闭下去,那么开源社区为什么要为它免费制作软件呢?因为我又不是在为开源社区服务,而是在为Google服务。既然这样的话,那还不如去支持iPhone呢,至少能在软件商店里多卖一点钱,而且乔布斯看上去也更酷一点。
上有很多关于此事的讨论。有人指出:
"Google自己的网站,与微软的网站一样封闭。它开源出来的东西,都是根据GPL许可证不得不开源的。"
好吧,姑且不谈Google本身,因为它至少不要求外界提供支持。但是Android不一样,你不能假装成开源系统,骗取社区的支持,然后又干着封闭系统的勾当。以你的实力,不用Linux Kernel,自己开发一个Google Kernel,想必也不是难事。要是这样做,任何人都不会有非议。可是,既然你选择了Linux Kernel,并且大张旗鼓地宣传,那么你奉献出什么呢?难道你的奉献就是给Kernel开一个口子吗?
Google必须做出改变。正如Greg Kroah-Hartman最后的呼吁:
"I really don't know. Google shows no sign of working to get their code upstream anymore.
我真的不知道未来。Google看上去没有任何改变代码的迹象。
I do hold out hope that Google does come around and works to fix their codebase to get it merged upstream to stop the huge blockage that they have now caused in a large number of embedded Linux hardware companies.
我确实希望Google做出改变,把它的代码合并进我们的代码,弥补已经出现的代码分裂。
I've privately offered in the past to help this work get done, and am doing again here publicly. But I need the help of the Google developers to make it happen, without them, nothing can change.
我私底下已经说过,我愿意帮助完成这项工作,在这里我再次公开这样说。但是如果没有Google程序员的加入,什么也不会发生。"
Android必须变成一个真正的开源系统。如果像现在这样封闭下去,就会被开源社区抛弃,就一定不会成功,即使有Google的支持。
UPDATE ONE
liufeng针对此文,写了一篇很好的,推荐阅读。
我接受他的批评,我确实有点感情用事。主要是因为对Google有太大的期望,所以不能接受它现在的这种做法。
这一次,也许不能说Google做错了什么,毕竟都符合GPL许可证的要求。但是代价也是巨大的----它放弃了创造未来的机会。我坚信,未来主流的手机操作系统一定是开源的,就像我坚信未来Linux一定胜过Windows一样。现在,既然Google放弃了这个选择,那么只能等待其他人来做出开源的手机系统了。这也意味着,我们还要在黑暗中等待更久。
UPDATE TWO
Greg Kroah-Hartman原文中有一些关于技术的部分,由于我不太懂,就没翻译出来。网友做了意译和点评。
简单的来讲,Android 的硬件驱动依赖在 Google 代码树里的东西,于是尽管大多数厂商都将它们的驱动反馈给社区了,但是对 Google 代码树的依赖导致它们无法并入主线(merge into mainline)。而 Google 代码树一直没并入主线是由于 Android 平台安全架构模型需要额外的钩子以及完全不同的帧缓存驱动。
这次在 2.6.33 主线中把 Android 部分清理掉是由于厂商贡献的这部分代码在离开 Google 的代码树之后对其他嵌入式 Linux 没有用处,干脆从主线中除掉好了......
这跟前段时间 Linus 指责 Red Hat 把 Nouveau 并入主线的积极性不高一样,最后 Red Hat 也是把 Nouveau 并入 2.6.33 的主线了么......
没有并入主线对于社区和厂商都不利,社区得不到驱动程序的扩展,厂商也得不到内核新特性的改善。但是并不是所有模块在一开始的时候都是并入主线的,总是要发展到某个相对成熟的阶段或者解决了潜在的授权问题后才并入的。总之并入主线对双方都有利,这个问题反应这次 Google 的并入主线积极性不高(不代表不开源),社区打它屁屁了......
上个月,"机器人之父"恩格尔伯格去世。
去年下半年,《财新周刊》缺一个专栏作者,问我写不写。
这两周,比特币(bitcoin)的价格大幅上涨,我也凑热闹关注了一阵。
2009年,30岁的瑞典程序员Markus Persson写了一个小游戏Minecraft。

我要回帖

更多关于 谷歌开源社区 的文章

 

随机推荐