小知识:常用开源协议详细解析
來源:http://www.mscto.com/open/20081117-7075.html
开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的。
开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的。开源运动同样有自己的游戏规则和道德准则。不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和市场上的损失,更可能陷入法律纠纷和赔偿。
首先,要对几个概念有所了解:
1. Contributors 和 Recipients
Contributors 指的是对某个开源软件或项目提供了代码(包括最初的或者修改过的)发布的人或者实体(团队、公司、组织等),Contributors 按照参与某个软件开源的时间先后,可以分为 an initial Contributor 和 subsequent Contributors 。
Recipients指的是开源软件或项目的获取者,显然,subsequent Contributors 也属于 Recipients之列。
2. Source Code 和 Object Code http://www.mscto.com
Source Code 指的是各种语言写成的源代码,通过Source Code,结合文档, 可以了解到整个软件的体系结构及具体到某个功能函数的实现方法等。
Object Code 指的是Source Code 经过编译之后,生成的类似于“类库”一样的,提供各种接口供他人使用的目标码,按我的理解,它就是像常见的DLL、ActiveX、OCX控件性质的东西。(不知道这样理解对不对)
分清楚这两个概念的目的在于,有些开源,只发布Object Code ,当然,大多数发布的是Source Code。很多协议也对 “你发布的是哪种Code的时候应该怎样”,有着明确的约束。
3. Derivative Module 和 Separate Module
Derivative Module 指的是,依托或包含“最初的”或者“从别人处获取的”开源代码而产生的代码,是原“源代码”的增强(不等于增加)、改善和延续的模块,意为“衍生模块”。
Separate Module 指的是,参考或借助原“源代码”,开发出的独立的,不包含、不依赖于原“源代码模块”,意为“独立的模块”。理解这两个概念的目的在于,很多协议对涉及到商业发布的时候,会有哪些是衍生的,哪些是独立的,有着明确的商业发布规定。
现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。
小知识:常用开源协议详细解析相关推荐
- 常用开源协议详细解析
开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的.开源运动同样有自己的游戏规则和道德准则.不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和 ...
- RDP协议详细解析(一)
RDP协议详细解析 一 前言 二 概述 三 同络层次 四 各连接模块说明 五 各功能模块说明 六 rdpwin结构.数据流说明 七 总结 一.前言 windows从NT开始提供终端服务,它是微软买 ...
- 3389 远程桌面 Mstsc RDP协议详细解析 (上)
转载:https://lcx.cc/post/936/ 下半部分在这里 这是前一段时间想模拟(3389 远程桌面 Mstsc.exe RDP 协议)做一个蜜罐系统,用来记录各种各样的攻击资料,甚至自己 ...
- 蓝牙IBEACON协议详细解析
蓝牙IBEACON协议详细解析 先看一个不太清楚的图片,这个是nordic官方提供的解析的文档. 先看顶上的三个字节,flags length type,这三个是固定的,因为ibeacon长度是固定, ...
- 3389 远程桌面 Mstsc RDP协议详细解析 (下)
转载:https://lcx.cc/post/937/ 由于太长了,所以分成了两部分,这是下半部分,上半部分在这里 6-1) 连接过程说明 包序号 接收发送 字符 含义 1 R InDr 设备初始连接 ...
- 常用开源协议介绍以及开源软件规范列表
1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...
- FCoE协议详细解析
详细解析FCoE协议 FCoE标准是博科首先提出来的.FCoE是由包括Brocade.IBM, HP,EMC, NetApp, Cisco, Emulex, Broadcom, Intel, Nuov ...
- 5种常用开源协议解释
简介 开源早已成为很多科技企业关注的焦点,我们也常会发现部分开源技术后面标注了某种协议,这意味着这些开源代码被框上了某种束缚,或者说这些代码将必须遵循这些规则,否则可能会触及法律.总的来看,如今比较流 ...
- 码云小课题 | 主流开源协议有哪些?我们该如何选择?
License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的.软件协议可分为开源和商业两类,对于商业协议,或者叫法律声明.许可协议,每个软件 ...
最新文章
- HDU 4166 BNU 32715 Robot Navigation (记忆化bfs)
- 米兔点读笔点读包_小米米兔点读笔评测:养成教育只要轻松一点
- 信息系统项目管理师-信息文档与配置管理核心知识点思维脑图
- Felgo之初体验--安装与运行
- linux不支持32,Visual Studio Code 1.36发布,不再支持Linux 32位
- 低学历者为何能骗取30万年薪职位
- CSS学习之外边距合并
- 发行版迁移及二进制兼容性注意事项
- jQuery 文本编辑器插件 HtmlBox 使用
- python中数据存入execle、读取excel数据
- 《Google Go: A Primer》学习笔记
- Spark 广播变量 TorrentBroadcast
- 华为5500v3多路径linux6,CentOS7 DM-Multipath+HUAWEI OceanStor存储多路径配置
- 好用的多桌面间共享鼠标键盘的软件
- macbook安装佳能C3020打印机驱动安装错误代码701
- 使用.png格式图片,制作.icns格式图片
- ps中给图层新建文件夹
- AI三驾马车之深度学习框架
- win7计算机变成英文,我的win7开机选项变成了英文怎么处理
- PDF补丁丁( PDFPatcher.)
热门文章
- 十六个 HTML,CSS,jQuery,WordPress等快速启动项目样板
- trietree的一个小练习
- 自动生成三层结构代码(3)--生成数据访问层Insert方法
- QT-子线程或自定义类操作访问主界面UI控件的几种方法
- dataguard日志传输模式解析_网络运维基础 日志审计
- 台式电脑键盘按键错乱_电脑键盘各个按键有哪些作用 电脑键盘各个按键作用介绍...
- 一个按键控制数码管的开和关_基于FPGA的数字电路实验3:点亮数码管
- c语言递归函数变量作用域,C语言课程变量的作用域和生存周期、递归.ppt
- vue模板html,VueJS模板
- php text留言本,PHP+TEXT留言本(五)