开源软件分支的一个好处是能够采取应用程序的代码基础并将它在新的方向上进行开发、创新。这是大多人都知道的,称之为分支,在开源社区是很常见的。例如,许多Linux的发行可追溯到任何的Dbian,Fedora或Slackware的。
许多开源软件分支在目前一些流行的项目中使用。我们认为这是很有意思的事情,来看看历史上的一些软件,找出他们为什么会比原生软件受欢迎。
我们寻找软件分支常常被看作是浪费开发资源,以及不被视为是好事的原因。从下面的例子中我们可以清楚地看到有时产生软件分支是有好处的,分支后的应用比原意要开发的程序更受欢迎。
Ubuntu from Debian
产品解释:Ubuntu是世界上最有名的Linux社区
发布时间:2004年10月20日
产生原因:Ubuntu最初是Debian项目做的的临时分区,每6个月可以推出一个新版本,因此提供更多的最新系统。
Firefox from Mozilla Application Suite
产品解释:FireFox是第二大网页浏览器。
发布时间:2002年9月公开测试,04年9月Mozilla推出FF1.0版本。
产生原因:Firefox项目最初是Mozilla项目的一个实验分支,打算替代日益臃肿的Mozilla套件。
Joomla from Mambo
产品解释:Joomla是用来管理网站内容的开放源码系统。
发布时间:2005年8月17日
产生原因:由于考虑到今后的Mambo项目管理,有几个核心开发人员认为Milo需要太多的控制,Joomla 就被分离出来,现在是一个成功的独立的CMS系统。
OpenBSD from NetBSD
产品解释:OpenBSD像一个Unix操作系统,并且还是比较流行的BSD变体。
发布时间:1995年10月。OpenBSD1.2于1996年7月发布。
产生原因: Theo de Raadt创办NetBSD。1994年12月,Theo de Raadt被要求从他的开发者和NetBSD小
组核心成员的职位上离职,最有可能是由于他的个性与NetBSD团队冲突。不到一年后,他创立了从NetBSD的1.0分叉出来的OpenBSD 。
X.Org from XFree86
产品解释:X.Org服务器是X Window系统流行的实施服务器,有时还用于Linux和其他Unix上。
发布时间:2005年6月X.Org成立。
产生原因:XFree86 4.4新许可证的不一致和许多XFree86贡献者间的分歧最终导致了X.Org的产生。
Drizzle from MySQL
产品解释:Drizzle 是开源的数据库管理系统,尽管它还未发布。
发布时间:2008年4月5日
产生原因:从Brian Aker开始,Drizzle从MySQL6.0代码库里分离出来,它本打算作为一个小的、灵巧、快捷的MySQL版本。参与者有来自Google、Sun、Canonical等的员工。
NeoOffice from OpenOffice.org
产品解释:NeoOffice是用于Mac OS X上的办公套件。
发布时间:2003年6月22日
产生原因:NeoOffice最初是一个旨在探讨如何建立一个OpenOffice.org的本地Mac OS X Port的项目。
XEmacs from GNU Emacs
产品解释:XEmacs是一个图形、基于控制台的文本编辑器。
发布时间:1980年,那时称为Lucid Emacs
产生原因:1987年到1993年这段期间,拖延了GNU Emacs 的一个版本的推出。80年代末,Lucid 想更新
项目的Emacs,所以他们将Emacs分支代码的意图和变化纳入到下一版本中 。然而,自由软件基金会最终拒绝这些变化,因此XEmacs只能继续作为一个单独的分支。
Carrier from Pidgin
产品解释:Carrier是一个开放源码的在线消息应用软件。
发布时间:2008年3月12日发布第一个版本。
产生原因:分支(最初成为 Funpidgin)是用于Pidgin2.4.0的,因为有很多文本入口域大小的分歧。
新分支更注重用户的需求。
Webkit from KHTML
产品解释:Webkit是用于创建网页浏览器的开源应用框架。
发布时间:2003年1月苹果公司宣布Webkit作为Safari内核。
产生原因:苹果创造了一个KDE项目的HTML布局引擎KHTML的分叉和它的JavaScript引擎KJS,使用它们来开发Safari网络浏览器。
结论
从上面的10个软件分支例子中可以推断,产生的原因是由于(有时是纯粹的意识形态)意见分歧和个人冲突,但更实际的理由也很常见(如Webkit和Firefox的例子)。有趣的是这些分离出来的软件往往比原生软件更受欢迎。
- [ltp1234] push cx add si,1 ;结果的数字个数 04/09 01:58
- [ltp1234] 写的很好!! 04/08 23:48
- [游客] 我也不知道说些什么 挺一下好啦 04/03 20:50
- [e56004474] 没事的话,别坐电车。 据说。。。 03/17 18:52
- [waasmedu] 拜读!受教!! 12/21 11:18
- [chinatree] 不错,顶。 12/05 03:32
- [ljl] 晕,最后一题也没有想到。。。 12/04 14:56
- [mouse] 楼上的看错了,填空位置填inc cx,就是为了找到第一个值为0的byte 07/29 15:37
- [wbkyh] 检测点9.2中,loop s指令有问题,该指令执行后,cx=cx-1,如果cx=0,则循环结束,也就 06/28 09:32
- [游客] 结果是1,*p取得的是a的地址中的内容,也就是a的值 06/08 00:22
- [lp1989] 请教一道题: 在数据段BUF下开始已定义了信息“I LIKE IBM-PC”, 编写在屏 幕上显 12/29 13:32
- [fangaiyisheng] 飘过,很好 ,很强大! 06/18 06:05
- [游客] [ lyh1984 发表于 2009-06-26 10:39 ] 请问一下,我用DEB 07/15 10:59
- [lyh1984] 请问一下,我用DEBUG为什么调不出字符串呢?我想知道你们是怎么调的,是用CMD DEBUG吗? 06/26 10:39
- [q470393267] 我看你头像半天了,那猫和老鼠能抗啊都没有死~ 05/05 21:31
- [fangyugirl] 经过上机DEBUG,我已经知道问题在哪里了,谢谢你呀。 04/09 10:31
- [fangyugirl] 我是想问你第10章的第三个子程序,这个子程序我现在主要的问题是12666/10会产生溢出,所以我调用 04/09 09:57
- [mouse] [ wangping198611 发表于 2009-03-23 11:43 ] 03/31 10:28
- [mouse] miaozaoyang 发表于 2009-03-29 22:31 ] [ 删除留 03/31 10:23
- [miaozaoyang] 又得问你个问题了,不知道为什么,实验15 不能够正常进行,程序应该是没有任何问题的,还是操作系统的问 03/29 22:31