开放源代码(英语:Open Source)描述了一种在产品的出品和开发中提供最终源材料的做法。一些人将
开放源代码认为是一种哲学思想,另一些人则把它当成一种实用主义。
开源软件、
开源硬件、开放设计、内容开放。我们平时所说的开源,大多是指开源软件,有时也会指内容开放的文档。
开源软件的详细定义比较复杂,简单点说,就是一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改、增进提高这款软件的质量。开源软件的详细定义请参见
维基百科中的开源软件条目。并非公开了源代码就算是开源,公开源代码和
开放源代码是两回事。
许可证即授权条款。开源软件并非完全没有限制。最基本的限制,就是开源软件强迫任何使用和修改该软件的人承认发起人的著作权和所有参与人的贡献。任何人拥有可以自由复制、修改、使用这些源代码的权利,不得设置针对任何人或团体领域的限制。不得限制开源软件的商业使用等。而许可证就是这样一个保证这些限制的法律文件。
基于开源软件定义中的“散布授权条款(Distribution of License):若软件再散布,必需以同一条款散布之。”这一条,开源软件必须附加一个法律文件,并且在任何修改后的开源或发行版本中附带同一条款。
开源软件的许可证比较繁多和复杂,对于我们来说,经常遇到的开源许可证大多是GPL和BSD两种,此外还有Adobe经常使用的MPL许可证。简单来说,GPL许可证具有相当强的传染性,如果你想要把一份采用GPL许可证的代码经过修改后再次发布二进制版本,那么你同时也必须再次开放其源代码。而
BSD许可证则相对宽松许多,它允许对
源代码的修改后再次发布时仅包含许可证而不必再次
开放源代码,且可以将修改后的版本专为商业用途(如微软的产品中引入了BSD网络部分的源码,修改后则作为专有软件出售)。
1. 从开源软件开发的角度来看,若只是利用开源程序包作为工具来生产与其分离的作品,那么绝大多数开源许可证都是可以的
2. 如果将软件用于商业性发行且不愿意发行自己所修改的源码,那么可以选择
BSD许可证,它能使修改保持专有
3. 若希望源码总是自由的,GPL许可证及LGPL许可证是最佳选择(Icebird注:这里不推荐采用LGPL许可证,LGPL许可证有很大的漏洞,divX从开源突然转为专有就是一例,从此以后,开源软件的参与者都对LGPL许可证的源码报有相当的戒心,如果希望在开源版本之外能够有一个你自己开发的更强大的商用版本出售,建议采用BSD,这样你自行对其的修改就不必再次公开了)
4. 若想在与其它人共享代码时提供相应的保护,可以选择MPL许可证,该许可证可通过将软件(和任何对它的修改)分为受保护部分和贡献部分,在完全开放的 GPL许可证和封闭的BSD许可证之间架起一座巧妙的桥梁