常用的开源协议详细解析.doc

常用的开源协议详细解析.doc

ID:50237795

大小:72.50 KB

页数:4页

时间:2020-03-07

常用的开源协议详细解析.doc_第1页
常用的开源协议详细解析.doc_第2页
常用的开源协议详细解析.doc_第3页
常用的开源协议详细解析.doc_第4页
资源描述:

《常用的开源协议详细解析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、常用的开源协议详细解析2008-1-12首先,要对儿个概念有所了解:1.Contributors和RecipientsContributors指的是对某个开源软件或项冃提供了代码(包括最初的或者修改过的)发布的人或者实体(团队、公司、组织等),Contributors按照参与某个软件开源的时间先后,可以分为aninitialContributor和subsequentContributors.Ftecipients指的是开源软件或项H的获取者,显然subsequentContributors也属T*FtecipientsZ列.2.SourceCod

2、e和ObjectCodeSourceCode指的是各种语言写成的源代码,通过SourceCode,结合文档,可以了解到整个软件的体系结构及具体到某个功能函数的实现方法等.ObjectCode指的是SourceCode经过编译之后,生成的类似于“类库”一样的,提供各种接口供他人使用的冃标码,按我的理解,它就是像常见的DLL、ActiveX.OCX控件性质的东西•(不知道这样理解对不对)分清楚这两个概念的冃的在丁•,有些开源,只发布ObjectCode,当然,大多数发布的是SourceCode.很多协议也对“你发布的是哪种Code的时候应该怎样”,有着

3、明确的约束.3.DerivativeModule和SeparateModuleDerivativeModule指的是,依托或包含“最初的”或者“从别人处获取的”开源代码而产生的代码,是原“源代码”的增强(不等丁增加)、改善和延续的模块,意为“衍生模块”.SeparateModule指的是,参考或借助原“源代码”,开发出的独立的,不包含、不依赖丁原“源代码模块:意为“独立的模块”•理解这两个概念的冃的在丁,很多协议对涉及到商业发布的时候,会有哪些是衍生的,哪些是独立的,有着明确的商业发布规定.现今存在的开源协议很多,而经过OpenSourceInit

4、iative组织通过批准的开源协议冃前有58种•我们在常见的开源协议如BSD,GPL,LGPL,MlT等都是OSI批准的协议•如果耍开源自己的代码,最好也是选择这些被批准的开源协议.这里我们來看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考.丄BSD开源协议(BerkeleySoftwareDistribution)BSD开源协议是一个给予使用者很大口由的协议.基本上使用者可以“为所欲为”可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布.但“为所欲为”的前提当你发布使用了BSD协议

5、的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需耍满足三个条件:1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议.2.如果再发布的只是二进制类库/软件,则需耍在类库/软件的文档和版权声明屮包含原来代码中的BSD协议.1.不可以用开源代码的作者/机构名字和原来产品的名字做山场推广.其实这儿个规则约定的冃的也只是达到一个冃的:是他人的东西,别人以BSD开源了,你就不能不做任何声明而占为己有,更不能用他人的名义來做商业推广•你只对你自己的东西拥有绝对控制权.举个例子,你用开源代码(A)修改或做其他增添Z后,产生了产

6、品B,这时候,你对B的控制由你自己决定,你可以用任何协议再开源,也可以闭源商业发布•但,因为如呆B中包含了A或A的一部分(一点都不包含就不叫修改了),那你在B产品的版权声明屮,必须有提到你有使用到A,并且附带上A的开源协议•而且不能做商业推广的时候将B冠以原开源作者的名义以促进商业推广.BSD代码鼓励代码共享,但需要尊重代码作者的著作权.BSD由丁•允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议•而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必

7、耍的时候可以修改或者二次开发.丄ApacheLicence2.0ApacheLicence是著名的非盈利开源组织Apache采用的协议•该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)•需耍满足的条件也和BSD类似:1.需耍给代码的用户一份ApacheLicence2.如果你修改了代码,需要再被修改的文件中说明.3.在延伸的代码中(修改和有源代码衍生的代码中)需耍带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明.4.如果再发布的产品中包含一个Notice文件,则在Notic

8、e文件中需要带有ApacheLicence.你可以在Notice中增加自己的许可,但不可以表现为对ApacheLicenc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。