摘要"这篇文章分析自由软件项目的常用实施工具和方法流程,以及已有的成熟建议,但不是从技术角度介绍软件使用方法(读者可以在“joyfire linux笔记”的其他部分或者joyfire.net找到有关技术的资料)。本文要讨论的更接近法律、文化以及社团传统。我不会探讨常见的自由软件理念和纯粹的哲学问题,这方面已有很多经典作品,例如Eric S. Raymond的五部曲。
这篇文章是提供一些自由软件项目实施的经验和建议,合适的读者应该是已经对自由软件熟悉并感兴趣,认同自由软件理念,希望在这中间做点什么的人。换句话说,不是“Why”和“What”,而是“HOW”。 如果您发现的任何问题,请mail:joyfire@sina.com,http://211.71.69.201/joyfire/下栽它的最新版本。 本文是“joyfire linux笔记”的一部分,同样是“开源的”,也就是说你可以修改传播它(包括纸质出版物),但是你无权限制别人在此基础上继续修改和传播它(包括影印您出版的书籍)。
1.平台
GNU首先是指GNU项目的各种软件,以及由它们组成的软件环境或者平台,例如linux、bash、gcc等等。
显然,如果新的自由软件可以建立在以前的自由软件的基础上,或者和众多其他自由软件相互支持,那么无疑会增加成功的机会。同时相似的自由软件的环境也有利于宣传和改进。当然,没有必要一定采用哪种环境,但是因为很多系统基本工具本身就不是开源的(open source),所以会出现问题。例如Windows平台下的很多编译工具,API和COM控件,也许是免费的,但是它是专有的,不允许自由修改和二次发布。
举个例子,Win32 API是Windows平台下最基本的API,在一般情况下,它的确是可以无条件使用的。如果你的程序仅仅是应用(Application),那么没有问题,你使用的仅仅是Win32 API的“界面”。但是如果你的程序是一个编译器或者类似的东西,你就必须得到微软的许可,因为严格讲,你已经把Win32重新包装发布了。由于这样的原因,VC的竞争对手,例如著名的编程工具Delphi,要把Win32 API包装到自己的类库,就得支付使用费用,而且无法调用很多Windows操作系统默认的对话框(例如“打开对话框”“存储对话框”“查询对话框”),必须在类库里重新实现一遍,这就是Delphi生成的可执行程序比同类VC的要稍微大几十K的原因。这是微不足道的损失,但是这种专有形式的阻碍可能会对你的软件性能产生障碍。
当然,在MS Windows和其他非自由的平台下同样拥有很多优秀的自由软件。只是这需要你更加小心,避免在技术上或者法律上进入尴尬境地。
2.GPL协议
GNU重要的核心就是GPL协议,它是自由软件的法律基础。接受这个惯例,是标明自己open source的立场的最直接方法。这份文件的作者已经为自由软件体系建立了一套完备逻辑的法律体系,可以使一个自由软件在保证自己“free”(注意,这个词是双关的,即表示自由,又表示免费)的初衷不会被其他人因为私人利益而改变,又可以保护大多数的用户可以不受限制的充分使用,甚至可以通过保护一种游戏规则保护以发布自由软件赚钱的软件商的利益。
这个协议形成的版权系统(copyleft)和普通的私有软件版权协议(copyright)是完全不同的,如果你一但在前人的基础上开发,就必须公开源代码,否则你就失去了使用前人代码的资格,这是递归的过程.至于对程序收费,GPL没有禁止,但是公开代码本身就决定发布者不能把价格定的太高(你的竞争对手可以重新编译你发布的源代码然后比你更低价出售,只要它对自己的修改公开源代码,就不违法)。
现存的linux或者自由软件商业模式都是建立在提供服务上的,也就是替企业制作特别的解决方案,或者为硬件厂商开发特殊的版本。例如为手持设备厂家开发嵌入系统,为工业控制设计工控系统,或者为企业提供咨询服务。这种工作的客户就要求源代码的控制权。MS也对自己的大的特殊客户提供有限的共享代码服务。但是他们的软件对企业级用户限制太多了。
自由软件是一种信仰,更是一种商业潮流,是利益而不是其他使IBM等企业强力支持Linux,因为他们本来就不是靠release赚钱,他们的核心都是对用户的服务。建议阅读Eric S. Raymond五部曲最后的The Magic Cauldron,生动描述了这种商业模式怎样占领几十亿美元的IT市场的。
要说明两点。首先,不只GPL一种自由软件发布协议,很多著名的自由软件,例如Apache、X系统等,都采用自己的独特的自由软件发布协议,当然具体条款的约束是不同的,例如X就很松(允许使用者修改源代码但是不公布,把这变成自己的私有财产),而Apache就比较民主(它的社团通过投票决定下一版本的工作)。其次,不要把自由软件和盗版联系起来,自由软件和私有软件仅仅是两种不同法律体系、世界观和商业模式,Gates和Linus都是值得尊敬的知识英雄(当然,你可以对某人有自己的看法,实际上我也有,但不管怎么说,他的成功不该被贬低,实际上很多非议夹杂着个人潜意识里的嫉妒)。而盗版,就是剽窃。不管无知之辈如何把盗版和Free相提并论(一般还会加上对MS的种种攻击),盗版不符合Free精神,就好象把偷窃和共产主义并列一样滑稽。