GPL(GNU General Public License)
不管你怎么使用我,你就得和我一样开源免费,想卖钱请慎重,哥们就是这么拽!
GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
LGPL(GNU Lesser General Public License)
你可以用我,但你要是改了我,请把你改的开源免费,哥们是有底线的!
LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0)
随便用吧,但是请你发布时也带上和我一样的合同,顺带说一句你要是改了我可得注明啊,哥们是有情有义的人!
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
- 需要给代码的用户一份Apache Licence
- 如果你修改了代码,需要再被修改的文件中说明。
- 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
- 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
- Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
BSD开源协议(original BSD license、FreeBSD license、Original BSD license)
随便用吧,但请注意,你要是发布了有源码请把我的协议复制到你的代码中,如果没有那么把协议复制到你的申明中,另外友情提示,别拿我的名号做广告噢,哥们喜欢低调!
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
相关推荐
根据给定文件的信息,我们可以提炼出关于几种主流OSEK软件(包括proOSEK、OSEKTurbo、osCAN等)的详细比较分析。下面将针对这些软件的特点、应用领域及它们之间的区别进行深入探讨。 ### OSEK简介 OSEK(Open ...
描述中提到的“介绍几种主流的工业实时以太网的特点”,这可能涵盖了对包括POWERLINK在内的多种实时以太网协议如PROFINET、EtherCAT、Sercos等的比较分析。这些协议各有其独特优势,例如PROFINET提供了一种基于标准...
除了上述技术之外,还有几种常见的Web服务器扩展技术,如Server-side Includes、mod_perl、NSAPI和ISAPI等。 ##### Server-side Includes (SSI) Server-side Includes是一种简单的服务器端脚本技术,用于在服务器...
接下来,我们将详细介绍几种主流的开源方案。 ##### 1. wvp-GB28181-pro - **特点**:基于Java开发的GB28181协议视频平台,实现了开箱即用的功能。 - **适用场景**:适用于需要快速部署视频汇聚管理平台的企业或...
文档中提到了几种不同的技术栈,用于构建高并发的WEB应用。 ##### 1. 企业级、重型架构 - Java **技术栈**:Apache + Java/Tomcat + DB **特点**: - **优点**:成熟度高,拥有丰富的开源jar包资源。 - **缺点*...
本篇文章将对几种主流的数据库产品进行详细介绍,包括Oracle、MySQL、Microsoft SQL Server和PostgreSQL,以及它们的特点、应用场景和优缺点。 首先,Oracle数据库是全球最受欢迎的关系型数据库管理系统之一,尤其...
ROS的核心理念是通过提供一套工具、库和协议来促进机器人软件的开发、测试以及集成,使得开发者能够更专注于机器人的智能功能,而非底层硬件的细节。 ROS主要由以下几个核心组件构成: 1. **消息传递(Message ...
为了深入了解目前市场上开源GIS平台的使用情况,并从中筛选出适合特定需求的平台,本报告对市场上主流的开源GIS平台进行了全面而深入的研究。 ##### 1.2 调研方式 本调研主要采用网络资料查找的方式进行,收集并...
在软件开发领域,开源技术已经成为主流,为开发者提供了丰富的工具和框架。开源技术选型是一个关键的决策过程,因为它直接影响到项目的开发效率、可维护性以及系统的性能。本文将探讨几个重要的开源技术领域,包括...
与此同时,开源的嵌入式Linux操作系统因其系统稳定、兼容性和移植性良好、强大的网络功能等优点,成为了嵌入式开发人员的首选操作系统之一。然而,市场上对于老旧的USB摄像头(例如OV511)的支持已经逐渐被淘汰,这...
- `LICENSE`:开源许可协议。 - `src`:源码目录。 - `dist`:编译后的可发布文件。 为了使用这个库,开发者通常需要先将其安装到项目中,如通过npm(Node Package Manager)执行`npm install pagetojson`,然后在...
本文将详细介绍几种常见的应用系统间数据传输方式,并针对每种方式的特点、优缺点进行分析。 #### 二、数据传输的基本要素 在探讨具体的传输方式之前,我们需要了解数据传输的基本要素: 1. **传输方式**:指数据...
### 几种常见嵌入式操作系统之比较 #### 一、引言 随着信息技术的不断发展,嵌入式系统因其灵活性和高效性,在诸多领域中扮演着越来越重要的角色。嵌入式操作系统作为嵌入式系统的核心组件之一,对于系统的整体...
基于这些信息,我们可以讨论以下几个相关的人工智能和开源SAAS框架的知识点: 1. **人工智能模块**:一个全面的AI SAAS框架可能包括各种AI模型,如深度学习库(TensorFlow、PyTorch)、自然语言处理库(NLTK、spaCy...
1. 法律合规:在使用开源代码时,要遵循开源协议,尊重原作者的知识产权。 2. 定制化开发:根据自身业务需求对源码进行定制,比如增加新的功能或优化用户体验。 3. 安全性:确保代码的安全性,防止SQL注入、XSS攻击...
4. **WebSocket**:网上会议系统通常需要实时通信,WebSocket提供了一种双向通信协议。源码中可能会有WebSocket的实现,用于建立持久连接,实现实时音频、视频传输和文本聊天功能。 5. **音视频处理**:会议系统...
MQTT是一种轻量级的消息传输协议,非常适合带宽有限的网络环境,如物联网通信。YeeCOM DTU能将用户数据透明地转换为MQTT协议进行收发,对终端用户来说,这一转换过程是完全透明的,用户无需了解具体的MQTT协议转换...
本文将对几种当前主流的SOC总线标准进行比较分析,包括IBM的CoreConnect、ARM的AMBA以及Silicore公司的Wishbone总线。 #### 二、CoreConnect总线 ##### 2.1 逻辑总线结构 CoreConnect总线是IBM提出的一种用于SOC...