从自由软件(Free Software)到开源软件(Open Source Software)
极客们(Geeks)
有一个经典的玩笑话是这么说的:“推动科技发展的都是懒人。”
极客(Geeks)是什么样的?他们就是这样,一群朴素单纯、乐于探索的“懒人”。
自由软件运动和Copyleft
1983年,由于无法忍受商业软件对知识分享和创新的压制与扼杀,里查德·斯托尔曼(Richard Stallman)率领一帮技术高手揭杆而起,向以微软为代表的商业软件组织发动了一场浩浩荡荡的挑战——自由软件运动。
(与软件行业又发展了三十年的今天相比,那时的垄断情况确实非常严峻,斯托曼对软件行业的担忧不无道理。如今的头部商业软件公司已经意识到开放的好处,他们选择走进高校、与高校合作,为学生提供课程的同时从学生的作品中获取灵感;或是开设系统漏洞悬赏奖金,提供一个对虎视眈眈的黑客们有吸引力的招安方案)
自由软件运动高举“自由、共享”的旗帜,大力揭露并批判传统商业软件组织封闭软件源代码,利用知识霸权扼杀创新的行径。它掀开了软件发展史上崭新的一页,越来越多的人积极投身到这一历史洪流中。1991年,一位名叫Linus的芬兰赫尔辛基大学的大二学生,在网络上提交了版本名为Linux0.01的操作系统代码。名为Linux的时代自此开始:Linux系统完全是一份提高了移植性的Unix高性能瘦身版,但Linux完全免费、完全开放,全球各地的所有人都可以任意修改其源代码。到现在,Linux已经吸收了无数程序员的精华,不断壮大、丰富,仍有不胜其数的人在使用着、讨论着、改进着、关注着Linux,它强大活跃、良性循环的社区生态延续至今。
而当时“自由软件之父”斯托尔曼决心要开发一个完全自由的、与 Unix 完全兼容但功能更强大的操作系统,以便为所有的计算机使用者提供一个功能齐全、性能良好的基本系统,为了把这个系统和 UNIX 区分开来,他俏皮地采用程序开发中常用的“递归”方式把它定义为 GNU,即:GNU’s Not Unix。后因自由软件拥护者对 GNU 系统的发展和积累,GNU 已经成为开发各种自由软件项目的代名词。GNU 项目宗旨是自由的分享软件,给予所有用户自由的复制、修改和重新发布 GNU 软件的权力,为了实现这一目的,就在 GNU 计划的宣言中,斯托曼创造了 Copyleft 这个词。

“版权”(Copyright)的概念是为了限制他人任意使用创作物的自由。Copyleft 则是为了保护这种自由而定义的概念:它允许他人任意的修改散布作品,惟其散布及修改的行为和作法,亦限定以 Copyleft 的方式行之。
Copyleft 作品是有版权的;但它们加入了法律上的分发条款,保障任何人都拥有对该作品及其衍生品的使用、修改和重新发布的自由,惟前提是这些发布条款不能被改变。
Copyleft 不同于传统的公共领域(public domain)。因为公共领域的作品,任何使用者虽然都可以使用,但可以不回馈变成已用;而 Copyleft 作品的使用者若在发布的时候不按 Copyleft 的许可证要求保持同样的授权条款,并将更改的版本回馈社群的话,就是违反著作权法的侵权行为。
Copyleft 授权许可有时被认为具有“传染性”,因为任何从 Copyleft 许可衍生出的作品也必须是遵守 Copyleft 许可的规定。“传染性”虽然带有贬义,但是这与病毒的传染并不相同,因为病毒的传染是通过不为用户所知道的途径传播的;Copyleft 则是公开透明的。

由此可见,在打倒商业软件知识霸权这样一个极端的同时,自由软件运动似乎在打造另外一个极端。斯托尔曼在批判资本的同时,却忽视或有意忽略了资本及商业运作对软件产业的促进作用,将“自由软件”与“商业运作”刻意对立起来。你一旦使用了以GPL协议发布的软件,就必须在后续开发中永远使用GPL协议,不得用于商业目的。这种对立在一定程度上阻碍了自由软件的发展。
开源软件——一种折中方案
幸运的是,在对“自由软件运动”以及斯托尔曼的一片狂热追捧中,另一位著名人士终于对这种狂热和极端说“不”了。他就是《大教堂与市集》一书的作者、“自由软件运动”的理论家艾瑞克·雷蒙德(Eric Raymond)。
1998 年,雷蒙德和Debian工程的创始人Bruce Perens一道,号召用“开放源代码软件”(简称“开源软件”)代替“自由软件”。虽然这一举动被斯托尔曼斥责,但越来越多的人接受了雷蒙德的提法。研究表明,“开源软件”一词的使用频率已经远远超过了“自由软件”。
从自由软件到开源软件,雷蒙德从概念和理论上清除了“开源”和“商业”之间的障碍,“开源软件”可以进行商业化运作,“商业软件”同样也可以选择“开源”。
(雷蒙德所做的最根本的事,是不再让两方一直处于对立的状态,他寻到了二者对立统一的平衡)
“开源”的目的是方便知识共享,而商业化运作则是为了将停留在“知识”层面的软件代码与文档转变为“软件商品”,从而使知识转化为现实生产力。
对于个人用户而言,他们更喜欢那些源码开放的自由软件,并不在乎软件背后是否有正规的企业提供升级、打补丁等服务,但是企业用户却不会为了便宜就信任一家随时可能消失的软件组织,享受免费的服务。
而要想深入理解自由软件和开源软件之间的区别,以及为什么开源软件也可以进行商业化运作,就必须从软件生产的本质——“知识创新”谈起。
知识创新可以分为两个阶段:研究与开发。研究阶段的产物是纯粹的知识,不是直接提供给用户应用,而是提供给研究人员自己,作为继续开发的基础。开发阶段则是将研究成果加以商业化应用,将其转变为用户可以直接使用的产品。
那么,按照这种划分标准,软件的源代码应该是研究阶段的产物,因为它们本身不能被用户直接应用,还必须对源代码进行编译、连接、打包、部署,并辅以齐全的质量保证措施与售后服务,才转变为用户可以直接使用的软件产品。
由此,构思和编写源代码的过程可以看作是软件的研究阶段,而将源代码转变为软件包并提交给用户的过程可以看作是软件的开发阶段。
传统的商业软件公司将软件的研究与开发完全置于内部的创新模式之下,包括以下步骤:编写源代码——申请软件专利——将专利转变为软件产品、服务。
而“自由软件”则完全与之相反,软件的研究与开发过程完全由松散的社区完成。
不难看出,传统商业软件和自由软件是两个极端。前者对知识的共享和相互借鉴有一定的妨碍作用,而后者则无法保证将知识转化为商品。
而开源软件则采取了折中方式,它将研究活动与开发活动进行分离,由不同的实体加以完成:由社区或志愿者进行研究活动,发布研究成果——源代码。而商业公司继续开发公开的源代码,将源代码转变为软件产品与服务,从中获利。
这样,既促进了知识的共享,同时又确保知识转化为可靠的商品。社区成员可以借鉴并利用他人的研究成果,每个人都只需要贡献自己微薄的力量便可产生“众人拾柴火焰高”的累积效应。而企业将社区的研究成果转变为产品,促进了社区的研究成果的应用,反过来又可以为社区提供大量资金。社区与企业相互促进,形成了开源软件不断发展、创新的良性循环。
开源软件的商业化历程
开源软件的商业化历程大致经历了以下几个阶段:
萌芽阶段(1995年以前)
在1995年红帽软件公司正式成立以前,开源社区基本上没有考虑过商业化运作的问题。大家都在热火朝天地探讨各种技术问题,在社区中发布各种很酷的开源软件新版本,几乎没人想到从开源软件中赚钱。
与开源软件有关的商业活动仅限于出售开源软件安装盘及书籍、印有开源软件标志的文化衫等小玩意。
但是这种商业行为当时并没有获得开源社区的尊重,从事这些活动的人也被社区的成员嗤为小商贩。
当初谁也没有想到是,就在这群毫不起眼的小商贩中,竟然走出了两位后来在开源界赫赫有名的大人物,他们就是红帽软件公司的两位创始人Young和Marc Ewing。
探索阶段(1995~2001年)
1995年,Young购买了Ewing的股份,把新公司命名为红帽软件,同时发布Redhat Linux2.0。红帽公司的成立,拉开了开源软件探索商业运作的序幕。
在红帽的率领和激励下,越来越多的人从开源软件身上嗅到了商机,各种从事开源软件事业的商业机构蓬勃发展。在中国,1999~2000年间,短短两年就涌现出红旗Linux、中软Linux、蓝点Linux、冲浪Linux、TurboLinux、TomLinux等品牌,联想也推出了“幸福Linux”。
不过在这一阶段,开源软件并没有找到真正的商业模式,大部分只停留在概念炒作层面。因此,当潮流退去后,一些当年大出风头的开源厂商也销声匿迹了。
发展阶段(2001~2003年)
2002年前后,随着网络泡沫的破灭,开源软件的神话也随之被打破。大量缺乏真正商业模式的开源软件企业面临尴尬境地,要么倒闭,要么退出开源软件市场。剩下几家经受住了市场锤炼的开源软件厂商慢慢冷静下来,潜心寻找适合自己的商业模式。
在寻找的过程中,一些较早探索出商业模式的开源企业,挺过了IT行业的寒冬,发展迅速,如红帽、JBoss、MySQL等。
融合阶段(2004~2006年)
2003年11月,曾叱咤风云的软件巨头Novell收购了排名全球第二的Linux发行商Suse,借助Linux实现战略转型。
Novell的做法为开源软件的商业运作提供了全新思路,产生了深远影响。
在Novell的推动下,开源软件开始与商业软件和平共处,开源软件不再停留在小打小闹阶段,而是走进金融、电信等行业大户的视野,刷新了在企业用户心目中的形象。
与此同时,原来在幕后支持开源软件的IT巨头也开始更直接地介入开源软件的发展。如 IBM于2005年5月收购开源软件Gluecode,2005年11月率众成立开源文档基金会;SUN公司从2005年6月开始,逐步开放Solaris等多款软件的源代码。
困惑软件界许久的“保护知识产权”与“促进知识共享及创新”之争逐渐平息,现在关注的焦点转换为:开放到哪一程度以及以什么方式开源。
欧盟委员会曾于2004年3月以滥用市场垄断地位,违反欧盟公平竞争法为由,要求微软向其竞争对手公布必要的技术信息,并处以微软处5亿欧元罚款。2006年初,微软终于作出让步,开放Windows部分源代码。
这表明,自由软件和传统商业软件所代表的两个极端终于各让一步,初步达成妥协,妥协达成的折中点是就是“开源软件”。斯托尔曼所希望的自由软件战胜商业软件的结局并没出现,还是雷蒙德笑到了最后。
开源软件的商业模式
经过研究与归纳,开源软件的商业模式大致包括以下几种:
1.免费软件+收费硬件
IBM、SUN、惠普等公司,在开源软件领域投入巨大,但这一切并非是做善事,它们可以从配置了开源软件的硬件中获取巨额回报。
2.免费知识+收费书籍(培训)
开源软件出版商O’Reilly公司组织各种开源软件会议,推进开源理念和开源软件技术的传播与发展,以出售书籍赢利。中国的即时科研集团目前也在大力开展Linux培训,其赢利模式如出一辄。
3.免费程序+收费实施
一些开源软件厂商免费提供系统的程序代码,靠提供技术服务赚钱。JBoss就是这种模式的典型代表。JBoss应用服务器软件程序完全免费,而技术文档、培训、二次开发支持等技术服务则是收费的。
4.免费社区版+收费企业版
对于一些通用软件,如操作系统和数据库软件,开源软件厂商一般采用针对不同用户,提供不同版本的方式。在这种模式中,利用免费版本软件为赢利的收费版本创造或维持一种市场地位。这种模式较为普遍。
例如,MySQL产品就同时推出面向个人和企业的两种版本,即开源版本和专业版本,分别采用不同的授权方式。开源版本完全免费以便更好的推广,公司通过专业版的许可销售和支持服务获得收入。
5.开源软件+商业软件
将免费的开源软件与可赢利的商业软件捆绑销售,以开源软件带动商业软件的销售,这也是不错的商业模式。
比如Novell就将自己原来丰富的中间软件和应用软件迁移到Linux平台上,通过与Linux捆绑,为客户提供高价值的综合解决方案。红旗和Turbolinux也在积极加强与应用软件厂商的联系或自己开发商业软件,通过附加更多的商业软件来增加收入。
6.免费软件+收费专业服务
这种模式的典型代表是SourceLabs公司和SpikeSource公司。这些公司并不主推自己的产品品牌,而是与多方开源软件厂商或社区合作,利用他人提供的开源软件,提供技术测试、集成、维护等服务。
这种模式中,公司的角色跟原来的系统集成商有点类似。他们把开源软件打包到事先经过鉴定、并且受支持的标准化堆栈中。为了让各种各样的软件组件正常地协同工作,他们帮助客户配置及测试这些软件组件,而预先设计并经过鉴定的堆栈有助于缩短配置与测试时间。
开源软件领域的专利问题
开源社区内的程序迭代版本次数多到不可想象,源代码被加入了什么都有可能;由于社区的松散和自治,根本没有条件确保源码修订记录的追踪,也很难实现与所有参与人员的联系;而前文提到过的商业模式中,传统商业软件公司在源代码确保可用之后会先申请专利,在专利获取之后再进行产品的开发,而在开发的时候才会完善代码排查、确保不侵犯第三方知识产权,所以采用开源方案的产品直到收到专利的那一步都还是没有进行过“除害”的「薛定谔的」苹果;出于对商业机密、核心技术的保护,源代码在专利申请时是不需要被审查的;最后,软件专利保护范围的不确定性(模糊性)也加剧了侵权风险:综上所述,每个使用开源软件的用户,即使软件是依照专利技术获得的软件产品,使用该软件产品也是可能侵犯专利权的。所以专利侵权风险一直存在,是开源软件领域的常事。
为了尽量规避开源软件领域的专利侵权问题,对于企业的软件专利申请提供以下建议:
-
对于研发人员,注意版本控制,采用分块规划管理,尽量不选择在开源软件的基础上进行研发,如果迫不得已也要注意选择不要求获取者开源后续软件代码的开源协议。
-
对于开源协议捐献者,在开源前慎重筛查专利申请,特别是好的技术构思要申请专利。专利所保护的技术创新不但涵盖将要开源的代码,还包括采用其他代码表达的相同技术方案,能够加强对技术成果的保护。因此,在对开源软件中的相关实施方案获得专利权之后,还可以对除了开源软件的实施方案之外的其他代码实施方案寻求专利保护。
-
对于开源协议获取者,在开源项目研发过程中,需要尽早进行知识产权风险排查,梳理开源项目风险点,采取相应的预防和应对措施。
参考资料
-
http://news.zhichanli.cn/article/8087.html 张银英 万里晴 安之斐 北京市柳沈律师事务所. 开源软件涉及的专利问题探讨. 知产力. 2019年03月25日.
-
https://www.leiue.com/what-is-authorship 凡人. 著佐权是什么. 泪雪网. 2020年07月30日.
-
https://blog.csdn.net/chaishen10000/article/details/7522080 柴神. 开源软件清除了“开源”和“商业”之间的障碍——商业软件、开源软件和自由软件的区别. CSDN. 2012年4月29日.
写到一半的时候就已经有点“永远年轻,永远热泪盈眶“那味了。不论能力如何,我真的很欣赏、热爱、敬畏自然科学,虽然我的志不在此(当然这也是天赋不够自然妥协的结果),但是我为我曾探其一角而深感魅力为之倾倒感到由衷的感动和打心底的亲切。
上面一段听起来很狗屁不通,但是确实很激动。哎,慢慢已经不想(自己也不建议自己)完全脱离技术领域了,就想和搞技术的待在一起。我现在的职业规划就是很想做一个和开发们做朋友的PM,然后还是那个听大佬们侃侃而谈的时候眨着星星眼的「欣赏一切大佬」的迷妹;现在还特别有理想的想要做对社会对人类有用的项目,哈哈哈,我可真是容易热泪盈眶啊!
