Android基于开源,得到了推崇,但有人批评为封闭,因其严格的管控,以及越来越有走向闭源的趋势,而现在微软要求的专利费,有人话其为最贵的开源。VisionMobile有份报告:Open Governance Index: Measuring the true openness of open source projects from Android to Webkit[pdf],对这部分做了分析,很值得看一看。下面来自摘录和整理,作为学习笔记,以便以后资料的查阅。
对于开源软件,如何去衡量其开发度,我们通常注意license(决定使用代码的right),而忽略了管控(Governace)。管控包括谁决定项目的发展路线图,决策过程是否透明?是否任何人可以在参与讨论和会议,在开源社区中有一席地位?是否任何人都可以生产衍生品?在衍生品,包括手机和应用,有哪些兼容规定需要遵从,这些规定是如何强制执行?这一些都不在license中,而有管控所决定。管控决定谁有影响力,谁可以控制项目或者平台,被忽略但是直接决定开源是“开放”还是“封闭”。
报告分析了8大移动开源项目(Android, MeeGo, Linux, Qt, WebKit, Mozilla, Eclipse和Symbian)的管控情况,从4大方面13内容来衡量开放管控指数:
一、访问:获取最新源代码的情况,开发者支持机制;公开路线图,以及决策的透明度。
二、发展:开发者对项目的内容和方向的影响力。
三、衍生:开发者创建和发布衍生品的能力,包括项目中发展设备和应用。
四、社区:开源社区的结构是否能平等对待开发者。
也就是说管控开放指数由透明度、制定决策、reuse以及社区架构决定。即时代码获取,强大的开发工具,透明过程,可贡献代码,可称为提交者。一般来讲越开放,则项目越能持久发展,但是Android是个反例,为什么?Android的成功和它的公开代码库的开源license有写关系,如果没有Google的财力和工程师团队,Android不会如此成功,Android“less than zero”的价格,是由于Google的商业核心不是软件也不是搜索,而是广告,因此Google的策略是补贴Android,通过低廉手机和移动互联网,获取广告方面更多的关注。此外OEM和运营商为了和Apple竞争对其投入和补贴也是重要原因。
A. 开源经济学
开源的初始
讲历史:早期大多软件都是通过copy而没有付费。有些项目的花费很是高的,例如Linux kernel-$14亿,Fedora 9 Linux OS2-$108亿,Webkit Browser Enging3-$8.9亿。
“free software”运动(和开源软件有区别),在1989由Richard Stallman发起,他创建了GUN GPL,以及建立自由软件基金,他认为源代码必须“自由”,用户和开发者可以选择,这建基于他自由软件理念(狂热的开发发烧友):1)自由运行程序无论目的;2)自由学习软件如何编写,并可改;3)自由发布copy;4)自由发布你修改后的copy,使得社区可以从你的修改中获益。
这种理念是理想化的, 是一个社会运动,首要考虑的是使用者的自由,商业价值是次要,因此很大开发商只愿意提供获取binary的的版权。1997年Eric Raymond出版他著名的“The Cathedral and the Bazaar”,将传统的封闭软件开发模式比喻为“大教堂”Cathedral,将开源软件开发过程比作“集市”bazaar,他介绍了Linus(Linux的开发者)的法则:吸引足够的眼球,bug就难以隐藏。这个观点比自由软件基金务实,承认开源到了的好处,而不再强求FSF的“软件自由”(编译,运行和发布源代码的修改)。
在1998年,Eric Raymond和Bruce Perens建立了开源倡议(OSI,Open Srouce Initialtive),处理商业组织如何使用开源软件和建立开源社区。现在OSI对开源软件有10点定义,并维护70个OSI批准的许可,包括著名的General Public License(GPL)V2.1和V3.0,Lesser General Public License(LGPL)v2.1和V3.0,Eclipse Public License(EPL)v1.0和Apache License(APL)v2.0。OSI的开源许可允许获取开源代码,自由进行重新发布,包括修改和衍生,不允许对使用的限制以及对某些人和组织的限制,不允许限制其他使用同样许可的软件。
开源意味什么?
开源的发起有法律和文化的背景,现在,“开源”包含更多的实际的地方:
-
开源是开发的方法。在商务的角度,开源是一种协同软件开发的方式。开源是实现跨多个商业实体的协同开发软件的技术,共同分担风险和收益。
-
开源是产品的决策。对于软件产品,公司需要决定是自己内部开发新组件还是向第三方购买。开源提供了一个中间的选择,允许公司从外部社区获得源代码并且共同发展。
-
开源是营销工具。开源可以获取善意的声望,积极的新闻响应,以及吸引追随者到一个软件平台。最好的例子就是Google使用开源许可促使狂热的开发者追随Android,尽管整个开发进程都不对外公开。
上面是开源在实际中带来什么,了解开源并不带来什么同样重要。
-
开源不等于免费。费用包括定制,适配,第三方组件集成,软件支撑,维护私有软件粉丝,商标和兼容性需求,法律/技术调查,在某些情况下的会员费和赞助费。我们已经看到微软向Android的制造商收取Android上所谓侵权的专利费用。
-
开源不是社区建设者。开源经常会认为“建立它,然后他们就会来”,误认为开源社区会自然就建立。软件开发者是人,本质上一自我为中心。只有带来某些价值,开发者才会被吸引。这就是为什么成功的开源项目,例如Linux,GTK和Webkit,建立一个厂商重力的开源系统,图形软件堆栈和浏览器引擎,解决了需求。
了解项目、发布和平台
开源软件有很多形式:项目、发布和平台。
项目:一个开源项目有一个或者多个应用,例如Mozilla就有多个应用,Eclipse一开始作为一个工具包,现在围绕它有240个不同的开源项目。
发布(Distribution)。Linux Kernel是一个开源项目,但它通常被打包为一个软件发布的一部分,这个发布包含各种库和文件。发布通常不是100%完整,有便于定制化的设计,可以增加或者删除某些组件。Linux的著名的发布有Ubuntu、Debian(免费操作系统)、Fedora(有Red hat资助的,Linux-based的操作系统)。一个发布是一堆软件捆绑在一起发布。例如busybox,向瑞士军刀一样嵌入不同的功能。
平台。开源平台指一个完整的软件包,包括所有必须的应用,文件,库,可自行运行,例如Android和Symbian平台。
上游和下游
开源项目之间有很大的关联。Android整合了大约185个不同组件,大部分都是独立的开源项目,例如Linux kernel,Webkit,Open GL ES,SQLite。
开源开发的术语借用了流动的河流,“上游”upstream项目(WebKit,GTK,BusyBox),进入”下游”downstream的发布和平台。在开源软件中,上游软件和下游软件并行开发,如何使用一个活跃的上游项目,需要决定什么时候分支(从上游项目中copy一个版本)和什么时候合并。而如何处理,会决定项目成败。
例如Nokia将Webkit从上游中分离,它不应如此,这增加它跟随WebKit项目创新的成本(需要在新的WebKit中重新加入它的修订)。基于这个教训,MeeGo开源平台主张修改直接针对上游项目,这样所有的下游项目,包括MeeGo都会从中获益,减少使用者对分支的维护。(例如MeeGo对Linux Kernel有改动,会出现在MeeGo的版本中,同时也会提交给Linux Kernel,有些Linux kernel会接纳,有些不会,MeeGo会在下一版中回归上游的Linux,去除那些Linux不接纳的修改,在新的copy基础上,又开始新一轮修改,提交,……如是循环)
移动领域采用开源的三个阶段
(1)2000-2005:实验阶段。
此早期阶段有OEM主导。由于去发赔偿和保修规定,以及潜在的专利侵权问题,开源许可例如GPLV2.0的“病毒”式传播,OEM们从法律的角度关注开源的使用。这个阶段,有Motorola的Linux-Java平台,Mizi Linux 平台(在2003年被三星使用),由DoCoMo主导,NEC和Panasonic合作的基于Linux的MOAP-L平台。Nokia甚至进入开源林月,创建Maemo平台,现在Nokia的互联网平台真是使用Maemo。到现在,Maemo仍是Nokia最深入的开源邻域,此外还有Symbian,MeeGo和Qt。
(2)2006-7:开源成为主流。
2007年LiMo建立标志着开源被移动行业所采纳,Motorola,NEC,松下,三星,NTT DoCoMo和沃达丰成为“Who’s who“移动开源,是第一个正式用于移动手机并有由行业在背后支持的Linux-based软件平台。2008年6月,Linux Phone标准组织(LiPS)进入LiMo,增强其在行业中发展势头。然而尽管投入巨大,回报甚小,实际上并没出现LiMo兼容手机。
2007年,Intel建立针对嵌入设备的开源操作系统的Moblin。在2009年底,Intel将Moblin移交给Linux基金,现在,Moblin是Nokia和Intel资助的MeeGo开源项目的一部分。
(3)2008+:开源=商业常态。
移动开源最大的里程碑是Android操作系统。在2007年11月,随着”Open Handset Alliance“(79硬件和软件厂商联盟),Google宣布进入移动。在2008年,Google释放Android SDK,并提供了高达1千万美金的开发者挑战赛,这极大地吸引了开发者的注意力。在2008年10月,第一款Android手机,HTC T-Mobile G1出现。在2011年6月,Google报告称媒体操过50万台Android手机被激活,出货量超过iPhone以及智能手机市场领头的Symbian。
由于Google开源举动,Nokia在2008年6月宣布,将成立Symbisn基金购买余下的Symbian并将平台开源。Symbian仅仅在2009年4月成立,在2010年2月实现开源,采用EPL许可。然而这注定是一个短命的项目,Nokia在2010年11月宣布关闭项目。与此同时,Nokia在2008年收购了Trolltech获得了QT开源开发平台和WebKit浏览器引擎,而后者在2010年底在手机的安装量已经达到5亿台。
如今,开源软件已经是移动行业的常态。但是开源并非移动软件自然演化和必经之路。在两匹马参加的移动平台竞赛中,私有平台iOS同样获得成功。开源在吸引开发者中起关键作用,但并不保证成功。
许可,Copyleft和版权(Copyright)
CopyLeft这个词不晓得如何进行确切翻译。下面的wikimedia的解释 :
右图是「倒轉的©」是Copyleft標誌。它僅是Copyright標誌的倒轉版本,並無實質上的法律意義。 有人称为“著佐权”、“公共版权”等等,但是均非确切表达。
Copyleft是一由自由軟體運動所發展的概念,是一種利用現有著作權體制來挑戰該體制的授權方式,在自由軟體授權方式中增加copyleft條款之後,該自由軟體除了允許使用者自由使用、散佈、改作之外,copyleft條款更要求使用者改作後的衍生作品必須要以同等的授權方式釋出以回饋社群。選擇copyleft授權方式並不代表作者放棄著作權,反而是贯彻始终,强制被授权者使用同样授权发布衍生作品,copyleft授權條款不反對著作權的基本體制,卻是透過利用著作權法來進一步地促進創作自由。Copyleft授权许可有时被认为具有“传染性”,因为任何从Copyleft许可衍生出的作品也必须是遵守Copyleft许可的规定。
开软软件如何运作,他和私有软件(封源软件)有何区别?
版权和专利是理清开源软件运作的关键。今天大约有70中有OSI批准的开源许可,所有都建立在版权法上,大部分都包含的专利授权。此外,版权和专利被移动和消费电子厂家作为控制点来觉得哪些可以或者不可以由软件提供。
目前大约有20个著名的专利或者版权侵权案和主要的设备厂商有关。在2011年6月,Nokia就46个Nokia专利赢得了和Apple之间历经2年的诉讼,Apple支付金额不详但估计高达几亿欧元。Apple同时对HTC发起专利侵权诉讼,指控HTC侵犯了大约25项Apple专利。Apple同时寻求美国禁止进口HTC生产的个人电子产品,这会对HTC和Google的Android造成严重打击。另一著名的争端是Nokia和高通多项侵权的诉讼和反诉讼,据估计最后Nokia每年向高通支付支付4亿美元。
那么什么是版权?版权是对软件的创造者(通常是他们的员工)的通用权利。简单来讲,如果你创造了新的软件,你或者你的雇主将是版权的持有者,持有者是唯一的人或者法律实体可以授权其他人拷贝、发布和改写软件。此外持有者是唯一将可向第三方授权人。然而版权并不保护idea,但专利可以。专利是逐个国家授权,并有一定的期限。与版权一样,专利的拥有者可以向第三方发放copy,发布和改写的许可。
Copyleft是自由软件运动最主要的创新之一,对版权(Copyright)玩了个文字游戏。版权适用于作者限制其他用复制,改写,发布拷贝。而copyleft允许作者放弃这些限制,而增加要求拷贝和改变都必须遵从同样的许可。Copyleft体现在GPL许可中,由Richard Stallman编写。Stallman称之为copyleft,因为和copyright相反,不限制分享源代码,而是有义务分享源代码。因此copyleft软件是自由获取,而不是对义务和限制的免责。
值得注意的上,这7个最著名的许可覆盖率70%的开源项目。和数以百万计的私有许可来讲,是开源的一大优点。
商标
商标被仅仅是品牌知名度,更重要的是作为移动开源软件的一个控制点。商标通常一个商务组织或者法律实体用于唯一标识产品和服务的一个名字,词,短语,logo,符号,设计、图片或者以上的组合。商标通常需要逐个国家注册,保护商标避免未经认证的使用。
其中一最著名的商标是Sun(现在是Oracle)的Java“杯+蒸汽的logo”。Sun在桌面和移动领域强制要求通过兼容需求(技术兼容套件 TCKs)才能获得Java logo。Sun以此控制在移动手机山控制什么是“合法”的Java实现,但是结果我们看到并不能减少Java ME的在手机的分裂。类似的,Google使用Android商标(包括其他控制机制)来强制手机制造上通过兼容测试才能宣称他们的手机采用Android。我们将在下一章节分析Google的控制机制。
现在,商标控制可以清晰避免OSS运动的宗旨(减少对软件私有控制)和成功的商业开源实现的冲突,例如Android和Java,使用上报了控制OSS平台的帆布和使用。商标是开源许可上面的控制机制。商业开源项目有不同的控制机制来觉得谁具有影响力,使用和修改软件。在下一章,我们分析这些控制点如何决定一个开源项目的管控模式,在软件使用上如何比许可更为关键。
相关链接:

本文探讨了移动开源项目的演进历程,分析了开源软件的管控情况,并讨论了许可、Copyleft等概念。强调了商标作为控制点的重要性。
 -- 开源经济学&spm=1001.2101.3001.5002&articleId=6722972&d=1&t=3&u=66ce5016813646efba7e1d1fd00c5ad9)
904

被折叠的 条评论
为什么被折叠?



