开源软件及国内发展现状

1 开源是大势所趋
随着计算机技术的发展,尤其是互联网技术和相关企业的兴起,开源软件在操作系统、
编译工具链、数据库、网页服务器、移动操作系统等各个方面已经成为主流。而且许多
企业利用开源软件形成了独特的商业模式。比如谷歌的 Android 操作系统,从 2007 年
开源发布第一个版本起,到今天已经发展到 4.1 版本,占据了智能手机操作系统一半
以上的市场份额,谷歌也通过 Android 操作系统在移动互联网这一新兴行业中占据了
领先和主导地位。再比如在网页服务器端广泛使用的 MySQL,在以开源软件和商业许
可并行的模式下,得到了快速发展,并在 2008 年作价 10 亿美金由 Sun 收购(后者
又在 2009 年被 Oracle 公司以 74 亿美金的高价收购)。相反,一直和开源软件做斗
争的微软公司,在移动互联网即将爆发之时,却因为无法快速推出适应市场的 Windows
Phone 操作系统,在移动互联网竞争中处于下风。
显然,纵观 IT 行业这二十多年的发展,开源软件从黑客的理想之国,已经形成了一股
推进计算机及相关行业不停进步的巨大力量。很多人可能尚未意识到,我们使用电脑中
运行有开源软件,手机中运行有开源软件,家里的电视也运行有开源软件,甚至小小的
数码产品(如电子相框)中也运行有开源软件,尤其是互联网服务器端软件,几乎全部
是开源软件。毫不夸张地说,开源软件已经渗透到了我们日常生活的方方面面。那么,
国内的开源软件、开源社区现状如何,面临什么问题,发展趋势又是什么?

2 开源软件的基本概念
在讲述国内开源软件的发展情况之前,我们先就开源软件的一些基本概念做一些普及。

2.1 为什么会有开源软件?
广义上讲,开源软件指所有公开源代码的软件,包括某些商业软件也可能是开源的。但
我们通常所说的开源软件,是狭义上的,指任何人可以通过极低的成本(如仅仅访问互
联网而无需其他额外费用)获得该软件源代码的软件,也就是其源代码向公众开放。和
狭义上的开源软件相对应的,就是那些不向公众公开源代码的软件,通常就是商业软件。
实质上,在计算机出现的最初年代,几乎所有的软件都是开源的。其实,那时的计算机
企业,主要是以销售硬件产品为主,软件几乎都是附送的,加上那时的软件规模都不大,
以源代码形式提供给用户还可以缓解一定的技术支持压力——有问题由用户自己修改。
所以,最初的软件几乎都是以开源的方式提供的。因此,对着迷于计算机编程的工程师
来讲,获得软件的源代码几乎是天经地义的事情。这样,当以微软为代表的企业开始实

2 开源软件的发展历程 开源软件的真正发展,和互联网的发展密不可分。真正有规模的开源软件,应该是从上 个世纪 90 年代开始进入公众视线,也就是互联网开始兴起的年代。我们大致可以将开 源软件的发展分为如下三个阶段: 1) 萌芽阶段(上世纪九十年代之前)。这个阶段主要以个人为主,因为发布条件 受限,大多数开源软件无法得到有效传播,而仅仅流传于互相熟悉的程序员之 间。 2) 以非盈利组织为主的阶段。这个阶段应从上个世纪九十年代算起,说起这个阶 段,我们不得不提到 Richard Stallman 发起的自由软件基金会,还有 Apache 基金会等。前者发起的 GNU 项目,成就了 Linux 操作系统;后者维护的 Apache 网页服务器,在互联网上几乎占据了统治地位。 3) 以大型互联网企业为主的阶段。这个阶段出现于 2005 年之后,以谷歌为代表 的大型互联网企业,开始以各种方式发布开源软件,最为著名的是 Chrome 浏 览器以及 Android 操作系统;当然还有 Intel、Nokia 等企业主导的 Moblin、 MeeGo 等基于 Linux 的智能手机操作系统。 2.践纯软件产品的商业模式(核心思想是提供二进制可执行程序的使用许可,而不提供源 代码),就引起了许多计算机编程爱好者的不满:给我一堆二进制程序,我如何才能按 我自己的想法改进程序?在这种背景下,真正意义上的开源软件就自然而然地产生了。 2.3 开源软件许可证 笔者看来,软件作者选择向公众开放源代码,其理由无外乎如下三种: 第一,那些认为所有软件都应该以源代码方式发布的。如 Richard Stallman,他认为所 有的软件都应该是开放源代码的,甚至为了建造一个理想中的全开源软件世界,创立了 自由软件基金会,发明了 GPL 许可证,发起了 GNU 项目。 第二,通过开源软件展示自己的软件设计、算法和编码水平,并期望获得他人认可的。 大部分小型软件或者程序的作者出于这种目的向公众开放源代码。 第三,通过开源软件谋求获得广泛推广,并通过提供增值的产品或者服务来获得商业收 益的。这通常是商业企业选择开源软件的原因。如 FireFox、MySQL、Android、WebKit 等属于这种情形。 为了达到上述三种不同的目的,人们在现有软件著作权的法律框架内,发明了多种用于 开源软件的许可证。这些许可证从法律上帮助对开源软件有不同诉求的软件作者,获得 自己想要的结果。要想具体了解这些许可证的实质内容,我们首先需要更加深入地了解 软件著作权。 .

许多开发者对软件著作权只有一个初步的、模糊的认知。我们经常会在各种软件的启动 画面或者关于对话框中刚看到类似“版权所有 (C) 2012 某公司;保留所有权利”的用 语。这说明,软件著作权包含了很多权利,所以才有“保留所有权利”这样的说法。具 体而言,软件著作权大致包括如下几个权利:  署名权。就是署上自己大名的权利,向人们说明这是我的作品。这里的“我”, 可能是个人,也可能是法人单位。  修改权。就是是否可以修改软件,比如翻译软件界面中的文字。对非开源软件, 就是是否允许你反编译软件并修改的权利。对开源软件来讲,就是修改其中可 能存在的缺陷,或对一些代码进行优化、重构等等。  复制权。就是将软件进行复制的权利。和图书类比,就是你能不能抄写和/或 复印图书。  发布权。就是将软件副本交给他人的权利,不管是收费的还是不收费的。 对商业软件而言,这些权利都被保留,意思是什么呢?就是说,你不能修改,也不能复 制,还不能随便发布给别人。那用户能做什么,唯一的就是安装和使用这个软件了。当 然,大部分商业软件都附带有一个《最终用户许可协议》,其中告诉了你能做什么,不 能做什么。比如,你可以因为备份的原因复制这个软件。另外,还定义了很多免责条款, 比如,如果 90 天内软件的存储介质损坏,可以免费替换;如果因为使用本软件导致数 据丢失或损坏,概不负责之类的。 对开源软件而言,因为任何人可以无成本获得软件的源代码或者最终程序,用户使用这 个软件要是有了问题,都去询问作者,那作者就吃不消了。所以,开源软件也通常使用 某个特定的许可证来约定作者以及使用者所承担的权利和义务。 自由软件基金会制定的 GPL 许可证,应该是开源软件使用的各种许可证中最为严格的。 为了区别于其他开源软件,Richard Stallman 将使用 GPL 许可证的开源软件称为自由 软件。GPL 许可证的核心内容是:  你可以随意复制和发布软件。如果以二进制方式发布软件,则必须能够让获得 二进制版本的人,以不付出额外成本的方式获得其源代码。  你可以随意修改源代码。一旦要发布修改后的软件,必须同时发布修改后的源 代码。也就是说,修改版本也必须以 GPL 许可证发布。这就是 GPL 许可证被 称为病毒许可证的一个最重要原因。  如果 GPL 软件作为其他软件的一部分使用(后者称为 GPL 软件的衍生作品), 不论是静态链接还是动态链接,衍生作品也要遵循 GPL 许可证。这是 GPL 许 可证被称为病毒许可证的另外一个重要原因。  无任何担保。就是说,使用 GPL 软件,出了问题不要找原作者,你需要自己 负责。 .

4 为什么开源软件会得到快速发展并广泛应用? 很多人不理解,既然作者这么大方地将源代码都公开了,只是为了“有用”,且不提供 任何“担保”,看起来原作者是无法直接获利的,那为什么没有直接的利益驱动,开源 软件却能够得到这么快速的发展和广泛应用呢? 笔者初探其原因,大致有三: .Richard Stallman 希望通过这样严格的 GPL 许可证,来建立一个所有软件均遵循 GPL 的理想软件世界。除了 Richard Stallman 所倡导的理想王国之外,还有许多个人和组 织,以不同于自由软件的方式来发展开源软件。这些开源软件所使用的许可证相比 GPL 要宽松一些,或者很宽松。这些开源软件作者,通常属于本节前面所讲的第二、第三种 人,所以他们使用的许可证有如下共同点:  免担保,责任由使用者自负。  随便复制和发布。  不限制商用。 这些许可证的不同点在于:  Apache 许可证:如有修改,必须保留已有的版权声明,且必须包含新的版权 声明。通俗理解,就是要保留原作者信息,也就是署名权。  BSD 许可证:不允许在衍生软件作品中提原作者的名字,其理由是,因为你的 修改可能污染原有代码,破坏原作品的品质。  MIT 许可证:在衍生软件作品中,必须提原作者的名字;其理由是,原有代码 作者应得到充分尊重。  Mozilla 许可证:就原有软件所做修改,必须可以以各种可能的方式发布其源 代码(包括使用 GPL 许可证),且应该有修改说明。 除了上述许可证之外,还有一个广泛使用的 LGPL 许可证。该许可证最初是针对函数库 专门制定的。为了避免类似 C 基础库这样的软件因为采用 GPL 许可证而让使用它的 软件(衍生作品)成为 GPL 软件,从而定义了 LGPL 许可证。试想,如果 C 基础库 也采用 GPL 许可证,那就失去了它本身存在的实际价值,因为其他任何非 GPL 软件 都不能使用采用 GPL 的 C 基础库。所以,LGPL 定义,当 C 基础库这样的软件以动 态链接的形式由其他软件使用时,这些软件就可以不遵守 GPL 许可证,甚至可以是商 业软件。 当然,除了上面的各种许可证,还有的开源软件作者根本不关心保留什么权利,或者对 其作品做什么样的约束,相反,这些作者开源其软件,就是为了“有用”,任何人拿这 种软件做什么,对原作者来讲,都是无所谓的。这种软件亦称为“礼物软件”,相当于 作者放弃了有关软件著作权的所有权利,也就是所谓置于“公共领域(public domain)” 当中——随你怎么用。 2.

1) 开源软件虽说不提供任何担保,但既然原作者愿意公开源代码,说明作者对代 码的质量还是非常有信心的。实际上,开源软件的作者通常都是编码高手,其 质量甚至超过某些商业软件。 2) 开源软件因为其免费特征,能够得到大量用户的使用和验证,通过形成和用户 (往往也是编码高手)之间的互动和交流,能够以最快的速度修复可能的缺陷, 改善软件设计。Linux 内核的发展就形成了一个以全世界内核高手为主的松散 社区,通过快速迭代开发,加上其免费特征,迅速占据了原先由商业 UNIX 系 统控制的服务器操作系统领域。 3) 因为任何人都可以得到其源代码,所以很多用户就可以自行修改其源代码,以 满足自己的一些特别需求。 3 国内开源软件的发展及社区现状 3.1 国内开源软件的发展简史 国内开源软件的发展大致始于 1997 年前后。那时,中国第一个(局部)互联网(CERNET) 刚刚建立不久,1995 年在清华大学建立的著名水木清华 BBS 就是开源软件。自那之 后,Linux 内核以及 GNU 项目中的成百上千个开源软件突然展现在国人的面前。在这 之前,国内软件开发者,几乎没有人会认为获得程序的源代码是天经地义的事情(写到 此处,笔者再次感叹于文化和背景的不同所带来的认知差别)。但随着带有源代码的 Linux 操作系统随着互联网以及廉价光盘的广泛传播,当你能看到这些优秀的软件是如 何设计和编写出来的的时候,我相信,大部分程序开发者都会和笔者一样——那心情岂 止是“激动”两个字可以形容的? 在这样的背景下,中国也出现了一些开源软件。最初由国人开发的开源软件,主要解决 的是 Linux 系统的汉化问题,流传最为广泛的应该是可以显示和输入中文的伪终端应 用程序 CCE。在 1999 年之后的两三年内,出现了如下三个开源软件:  章文嵩博士开发的 LVS(Linux Virtual Server),后来被 Linux 内核收录,成 为使用 Linux 操作系统搭建集群服务器的重要核心软件组件。  当时的清华大学博士生苏哲开发的 Smart Boot Manager,是一种引导管理器, 类似现在流行的 GRUB,主要解决引导多种操作系统的问题。苏哲后来主持开 发的 SCIM 系统,被各种流行的 Linux 发行版收录,成为了 Linux 操作系统 上提供多语种输入法支持的标准框架。  笔者开发的 MiniGUI,后来由笔者创立的北京飞漫软件技术有限公司继续维护 和发展,在功能手机、数码相框、工业控制系统和工业仪表中得到了广泛应用。 上述三个开源软件,成为中国开源软件早期的代表作,在国际上具有较强的影响力,很 多台湾同行也知道这些软件,提起来往往是赞不绝口。 .

2 美金,后于 2001 年贱卖。RedHat 等知名 Linux 发行版厂商也深受其害,另外一些抗跌能力不强的从事开源软件相关业 务的企业更是一蹶不振,甚至关门大吉。 DotCOM 泡沫的破裂,给很多支持开源软件的理想主义者浇了一桶凉水,开源软件的商 业化发展步伐减缓,从而影响了国内开源软件的发展。2000 年前后几年,以北京、武 汉等地的 LUG(Linux User Group)为代表的各类开源软件组织非常活跃,而从 2003 年 开始,逐渐降温甚至消失。 但是,国际上深信理想主义的黑客文化并没有因为 Linux 发行版厂商的商业化遇阻而 停止发展,Linux 内核、GNU 项目、GNOME 和 KDE 等等软件继续向前发展。同时, 2005 年后,又出现了如下在当前 IT 领域有着举足轻重影响力的几款开源软件:  Mozilla 基金会(以 Mozilla 基金会下属 Mozilla 公司的成立为准)以及 FireFox 浏览器。Mozilla 公司通过 FireFox 浏览器获得了来自谷歌等公司的 大量合作收入,从而实践了没有赞助也能自负盈亏的商业模式。  WebKit 浏览器引擎。WebKit 浏览器是苹果 Safari 浏览器、谷歌 Chrome 浏 览器使用的浏览器核心引擎。WebKit 其实是由苹果公司发起的开源项目,在 早期 KDE 系统的 KHTML 和 KJS 两个子系统基础上发展而来。  谷歌的 Android 操作系统。Android 操作系统的上层虽然是虚拟机和 Java 应 用,但底层却使用了大量开源软件,如 Linux 内核、SQLite 内嵌式数据库、 FreeType 矢量字体渲染库等等。 显然,从 2005 年起,开源软件的发展从一个低谷重新引来了发展的高潮,而这次,与 前述的第三个阶段吻合,即以大型 IT 企业为主导进行发展。在此期间,国内也出现了 为数不多的一些开源软件项目,其中以清华大学陈渝副教授主持的 SkyEye 最具代表性。 该项目旨在提供一个面向嵌入式软件开发和调试的 ARM 或其他架构的纯软件仿真器 (虚拟机)。该项目持续活跃长达七年时间,吸引了许多来自海外的高手参与了,是为 数不多具有国际影响力,且充分体现了国际化协作、分享的开源软件项目。 与此同时,RedHat 以及国内的红旗等公司,也开始通过提供针对服务器的 Linux 定制 版本而获得可观收入,之后,Ubuntu 这一在桌面系统上广泛应用的 Linux 发行版也实 践了其成功的商业模式,占据了绝大部分 Linux 桌面发行版的市场份额。 从 2005 年开始,国内的开源软件也开始进入上面所说的由大型企业主导的第三个阶段, 参与开源项目的企业当中,最为活跃的是淘宝,接下来是新浪、百度、腾讯和华为等。 同时,随着“开源中国”等社区的兴起,个人主持或者参与的开源软件逐渐多了起来。 根据“开源中国”收录的开源软件,当前已经有一千多个由国人开发或者主持的开源软 .在此之后,国内开源软件的发展长期处于停滞状态,这和 2000 年左右 DotCOM 泡沫 的破裂有一定的关系。DotCOM 泡沫的破裂,让许多梦想通过开源软件来创造商业奇迹 的 Linux 发行版厂商很是受伤。比如,笔者曾经供职过的蓝点软件,在 NASDAQ OTCBB 板借壳上市,半年之内股价从 20 多美金跌到 0.

net 了解。其中值得一提的开源软件有:  RTThreads。这是一个由国人主持开发的开源实时操作系统,曾获得“第六届 中日韩开源软件竞赛”的技术优胜奖(其他两个技术优胜奖获得者为淘宝 OceanBase 和红旗 Qomo Linux)。RTThreads 目前也获得了诸多商业应用。  Linux Deepin。这是近几年发展起来的面向桌面的中文 Linux 发行版,由一群 来自武汉的 Linux 高手发起并维护。  (请文嵩补充一个当前活跃的淘宝主持开发的知名开源软件)。 3.2 国内开源软件的特点和问题 但国内开源软件也存在很多问题,如缺乏重量级软件,缺乏持续维护和更新,质量一般, 用户不多等等。另外,如开源中国创始人所言,国人所开发的这些开源软件,和国际主 流开源软件脱节严重,绝大多数的状态是单打独斗。 比如淘宝主导或参与的开源软件,大多数和互联网服务器后台、云计算相关,这些项目 的主要用户就是淘宝自己。因为门户之见,这些软件甚至不会被新浪等其他的互联网企 业所使用,大家不停地“造轮子”而忽视了开源软件发展必须具备的“共享”、“协作” 之精神。 笔者主持开发的 MiniGUI 软件,已开源到最新版本,支持多种实时嵌入式操作系统, 可移植性强,打造多年而具有良好的产品品质。笔者曾向 RTThreads 的维护者介绍过 MiniGUI,希望他们直接采用 MiniGUI 而不是自行开发一套 GUI 系统,然而并没有下 文。 写到这里,笔者又一次感慨中国千百年来形成的文人相轻之陋习。 3.3 新的力量 但不论如何,国内大型 IT 企业参与开源软件本身就是一个良好的开端,将为中国开源 软件的发展起到非常大的促进作用。 与此同时,各种开源社区活动也越来越活跃,比如具有政府背景的“开源软件高峰论坛” 和草根性质的“我们的开源软件”巡回展演等。在最近的“我们的开源软件”巡回展演 中,参与介绍的开源软件多达几十种,参会人员众多,而这一切都是社区成员通过“微 博”等方式发起和组织的。 这表明,开源软件即将在国内引起新一轮的发展浪潮。 4 开源我的软件? .件。这和十年前相比,已经有了非常大的进步。有兴趣的读者可访问 http://www.oschina.

在高物价、高房价的今天,大部分人对此问题的第一反应是:“我就一刚解决温饱的码 农,我开源,谁养我?”这问题,和我们在十年前推广开源软件理念时遇到的问题几乎 一样。但其实,这话已经大大落后于时代了!我们不仅仅可以通过使用其他人的开源软 件赚钱,还可以通过开源自己的软件来赚钱。 4.org 网站,其中还有“Marketplace”频道。 3) 混合模式,既贩卖工具等的许可,同时还向用户提供付费服务的模式。比如 Ubuntu Linux 发行版。 4) 成为平台型软件,并承载自己的互联网业务。这种模式在大型互联网企业中应 用广泛。比如谷歌开发并开源 Chrome 浏览器,短短几年抢占了微软的很多市 场份额,通过在 Chrome 中默认使用谷歌搜索引擎而获得极大的收入;再比如 谷歌开源 Android,一方面为了遏制苹果 iOS 的增长势头,一方面通过预置 Google 搜索而获得了大量来自移动互联网的流量收入。 显然,有了先驱们的成功案例,作为开源软件参与者,不论是企业还是个人,都可能名 利双收。 4.2 IT 企业为何要参与开源软件? IT 行业中的企业,即使是销售硬件产品的企业,也在不停地开发各种软件,同时也大 量使用各种开源软件。对这类企业,开源自己开发的软件其动力是什么? 作为企业,参与或者主导一个开源软件,其最为明显的动力应该是上述的第四个商业模 式,即打造一个平台型软件。但是,就中国 IT 企业来讲,笔者尚未看到有此种实力, 或者此种抱负的企业存在,毕竟,打造一个平台需要长期的投入,一般情况需要五年或 .concrete5.1 别人靠开源软件如何赚钱? 在证明上述论点之前,我们先看看别人是如何利用开源软件赚钱的。靠开源软件赚钱的 方式(经过验证的)无外乎有如下几种: 1) 双许可证模式。即在采取严格的开源软件许可证的同时(通常选择 GPL),给 商业用户提供非 GPL 许可方式。这本质上是一种贩卖软件许可的行为,但开 源软件带给开发者一个很大的好处,即传播迅速,快速迭代。笔者主持的 MiniGUI 项目就采用这种模式,在过去的五年当中,获得了几千万元的软件许 可收费。当然,使用这个模式最成功的当属 MySQL。 2) 基础软件采用宽松许可证,同时向基础软件的商业用户贩卖增值服务或者增强 组件、开发工具等的许可。这种模式可用于类似 RTThreads 这类的基础性软 件上,RTThreads 本身可以是开源且可无偿商用的,但其上的各种增值组件, 如网络、文件系统、图形系统等,可以是商业软件。国外采用这种模式的以各 类 CMS 系统为主。比如 Drupal 和 Concrete 系统,其基本系统是开源且免 费的,但其上的许多插件、主题、模版等是收费的。有兴趣的读者可访问 http://www.

者更长的时间。貌似中国没有一个企业有这个耐心来投入五年这么长的时间在一个软件 上。 那么为什么企业还要参与到开源软件的开发中?笔者认为,谋不了大利就谋点小利,企 业主导或参与开源软件,至少有如下几个好处:  提高企业的美誉度。在利用开源软件的同时,也参与到开源软件当中,企业的 美誉度会得到很大的提升。  员工更有激情。因为自己的作品能够公之于众,虽然著作权本质上属于企业, 但作为实际的编码者,可以通过开源自己的作品来获得额外的成就感和满足感。 这对于稳定开发团队、提高开发人员的积极性会有很大的帮助。 当然,也许过不了几年,中国也能出现实践第四种商业模式的大型 IT 企业,让我们拭 目以待吧! 4.3 个人开发者如何利用开源软件获益? 如果你是一名开源软件的开发者,打算利用自己的软件开创一家软件公司,该如何做? 第一,我们要确定好自己的商业模式;第二,为自己的开源软件选择恰当的许可证。 如果决定选择双许可证模式,应选择 GPL 这样较为严格的许可证,这是这种商业模式 能够成功的基础。当然,选择双许可证会阻碍产品在商业用户中的推广。尤其是对初生 的开源软件来讲,显然是一种两难的境地。MiniGUI 之所以可以采用双许可证模式,是 因为在成立公司之前和最初的一段时间内,MiniGUI 采取的是 LGPL 许可证,之后在 软件足够成熟的时候才改为 GPL 许可证,另外,MiniGUI 用于功能手机等系统中时, 因为这种设备一般使用实时操作系统,缺乏应用 LGPL/GPL 许可证的技术条件,所以 面向这种设备收取许可费也是天经地义的事情。MySQL 采用双许可证模式得以成功的 原因,在于 MySQL AB 公司并不会对仅仅用于网页服务器的 MySQL 商用行为收费, 因为这种情况下,商业用户并不会发布 MySQL 的副本——它只是在服务器上运行而已。 所以,看起来上面提到的第二种、第三种商业模式是最适合个人开发者或者初创公司的 商业模式,能够很快的速度推广和迭代软件本身,还能够确保有足够的收入来保证下一 步的发展。在这种模式下,应该选择较为宽松的许可证。但大部分开源软件作者,因为 并不真正理解开源软件的许可证,所以采取了错误的许可证(指在法律上是错误的)。 比如 RTThreads,一方面采用 GPL V2 许可证,一方面又承诺不会对商业使用收费。 这其实没有解决根本的法律问题,也就是,使用 RTThreads 开发的衍生作品,到底要 不要遵循 GPL?这个问题和是否收费没有直接关系。要解决这个问题,其实很简单,采 用类似 Apache、BSD 或者 MIT 许可证即可。有读者会问,那为什么不能采用 LGPL 许 可证?就 RTThreads 这样的软件来讲,采用 LGPL 和 GPL 没有本质的区别,因为 RTThreads 的应用场合下一般不支持函数库的动态链接,这导致失去了适用 LGPL 许 可证的技术条件。 .

那么上面提到的最后一种模式,是否适用于个人开发者或者初创公司?笔者的答案是, 这种模式是大公司的玩法,小团队或者小公司是没法做这类事情的。 当然,一家软件公司的成败所涉及因素很多,不仅仅取决于产品和服务等技术因素,也 取决于很多其他的因素,比如大的市场环境、政策因素等等。因此,真正拿自己的开源 软件经营一家企业的并不多,更多人开发开源软件,还是因为个人兴趣,以及对获得业 界尊重和名望的驱使。 但真正能够获得业界尊重的开源软件开发者及其开源软件,其实也并不多。也就是说, 要通过开发开源软件获得上面所说的“名”,需要开发者具有较高的开发水平和相关能 力。这其中主要的能力有:  好的选题。好的选题应该能够跟得上 IT 领域的前沿技术,最好避免重复造轮 子的尴尬境地。  较高水平的软件架构设计能力以及编码能力。既然开放了软件的源代码,那自 然希望有人去看,并欣赏这些源代码。所以,拥有较高水平的软件架构设计能 力、编码能力,是开源软件能够获得用户青睐的一大条件。  较高水平的文档能力。除了编码之外,要让你的开源软件得到大量的用户,你 还需要能够编写漂亮的文档,起码要能够撰写很好的安装指导说明文件。  适度的宣传能力。不论好坏,适当宣传自己的开源软件,是获得公众认知的一 个良好方式。宣传并不意味着需要花钱,你可以参加各种开源会议,或者在微 博上进行宣传,或者通过一些开源社区帮助你来宣传自己的作品。  适度的坚持。好的软件是打磨出来的,如果仅仅靠一时兴趣弄个软件并开源, 并没有持续改善,那肯定会半途而废。 当然,除了自己创作一个全新的开源软件之外,要获得上面所说的“名”,还有一个办 法是加入到已有的知名开源软件的开发中,尤其是海外的知名开源软件开发中。你可以 从帮助他们“汉化”软件开始,然后提交补丁,最后成为主要的开发者。 5 政府应该做什么? 说实话,笔者并不认为政府在开源软件的发展中应该起主导作用。政府要做的就是制定 公平、合理的规则,促进相关法律法规的完善。 从法律上讲,你编写了一个程序,你就自动获得这个程序的软件著作权。在实际操作中, 法律要求进行软件著作权的登记,就如同房产证一样,你非要有个政府颁发的证书才能 得到法律的承认。我们暂且不论这个做法是否合理,也不论登记收费这事儿,你需要了 解的是,在中国,如果你打算遵循 GPL 许可证开源你的软件,你就无法登记著作权! 当然,众所周知,中国的知识产权保护力度不够,不仅仅阻碍了软件产业的发展,也阻 碍了开源软件的发展。 .

还有,在中国,要注册一家非公益性的 NGO 组织(国外各种软件基金会都是这类组织), 是非常非常困难的。这导致截止今天,中国没有任何一家支持开源软件为己任的非营利 性基金会组织。 政府所要做的,就是撤销那些违背历史发展大潮的法规和规定,并建立完善的知识产权 保护制度,加强对盗版等的打击力度,教育国民尊重他人劳动成果,而不是仅仅停留在 口头上。 政府,把上面这些问题解决好了,比直接参与推动开源软件什么的,要强许多倍! 当然,在现阶段,通过从财政中拿出来一些钱,设立一些奖励基金之类的东西,给开源 软件的作者以一些奖励,也许是更有效的途径。 6 开源社区应该做些什么? 开源软件本就应该是以松散、自组织的形式开发和发展,开源社区的存在,为开源软件 开发者和使用者提供赖以生存的土壤。开源社区可以是网站、论坛,也可以是松散的交 流、展演等。当然,开源社区第一步要解决的问题就是自己的生存问题。 笔者的建议是,开源社区应该尝试在现有法律框架下,以有限责任公司的治理结构来做 国外开源基金会所做的工作。通过这样一种方式,可以有效避免无法注册 NGO 组织的 问题,然后从企业(尤其是那些大型互联网企业)当中募集捐款,通过赞助一些开源项 目,逐步推进开源软件社区的良性发展。 7 结语——给那些仅仅使用开源软件但不做贡献的 企业 将开源软件和商业结合,不管是在自己的项目中使用开源软件,还是靠自己的开源软件 来赚钱,都无可厚非。关键是,我们需要尊重开源软件著作权的拥有者,按照开源软件 所采纳的许可证办事,只有这样,开源软件才能得到长足发展。 通常,开源软件的作者发布开源软件,是希望获得最多用户使用的,在此基础上,作者 要么会获得业界的追捧而一夜成名,要么获得一定的商业利益。所以,从某种角度上讲, 使用开源软件本身就是对开源软件的一种支持。 但是,这并不意味着你可以随意使用他人的开源软件。合法使用开源软件的前提,就是 遵守开源软件的许可证规定的各种义务。 当然,更有积极意义的方式是,将使用开源软件中遇到的问题或者修正、增强代码提交 给开源软件的作者,帮助其改善作品。其实,这是任何使用开源软件的企业都能做到的。 .

Sign up to vote on this title
UsefulNot useful