开源协议比较:BSD、Apache、GLP、LGLP、MIT

2023-11-06

BSD开源协议(original BSD licenseFreeBSD licenseOriginal BSD license

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

  1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

  2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

  3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

Apache Licence 2.0(Apache License, Version 2.0Apache License, Version 1.1Apache License, Version 1.0

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

  1. 需要给代码的用户一份Apache Licence

  2. 如果你修改了代码,需要再被修改的文件中说明。

  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

  4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

GPL(GNU General Public License

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL(GNU Lesser General Public License

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品

MIT(MIT

MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.

————————————————————————————————————————————————————————————————————————————————————————————

关于开源许可

现今存在的开源协议很多,而经过Open Source Initiative 组织通过批准的开源协议目前有60多种(http://www.opensource.org/licenses/alphabetical )。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。

基本概念

1.Contributors 和 Recipients

Contributors(贡献者) ——指的是对某个开源软件或项目提供了代码(包括最初的或者修改过)的人或实体(退队、公司、组织等)。

按照贡献的先后可分为"创始人"(an initial Contributor)和"参与者"(subsequent Contributors)。

Recipients(获取者) ——指的是开源软件或项目的使用者。

显然,subsequent Contributors也属于Recipients之列。

2.Source Code 和 Object Code

Source Code ——指的是由各种语言写成的源代码 。

Object Code ——指的是Source Code经过编译后,生成的类似“类库”一样的,提供了各种接口供他人使用的目标代码 (就如,DLL、JAR等)。

3.Derivative Module 和 Separate Module

Derivative Module(衍生模块) ——指的是,依托或包含“最初的”或者“从别人处获取的”开源代码而产生的代码,是对“源代码模块”的增强、改善和延续。

Separate Module(独立模块) ——指的是,参考或借助“源代码”开发出来的独立的,不包含、不依赖于原“源代码模块”的功能模块。

在OSI网站上被列为主流及被广泛使用的许可 有:

*Apache License, 2.0 (Apache-2.0)

*BSD 3-Clause "New" or "Revised" license (BSD-3-Clause)

*BSD 3-Clause "Simplified" or "FreeBSD" license (BSD-2-Clause)

*GNU General Public License (GPL)

*GNU Library or "Lesser" General Public License (LGPL)

*MIT license (MIT)

*Mozilla Public License 1.1 (MPL-1.1)

*Common Development and Distribution License (CDDL-1.0)

*Eclipse Public License (EPL-1.0)

注:原Common Public License 1.0已被Eclipse Public License (EPL-1.0)替代。

Apache License, 2.0 (Apache-2.0 )

Apache Lience允许使用者修改和重新发布代码(以其他协议形式),允许闭源商业发布和销售。

Apache Lience鼓励代码共享和尊重原作者的著作权。

使用Apache Licence协议,需要遵守以下规则:

1.需要给代码的用户一份Apache Lience;

2.如果你修改了代码,需要在被修改的文件中说明;

3.在延伸的代码中(修改或衍生的代码)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明。

4.如果再发布的产品中包含了Notice文件,则需要在Notice文件中带有Apache Lience。你可以在Notice中增加自己的许可,但不可以表现为对Apache Lience构成更改。

* Apache Licence是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

BSD开源协议(Berkerley Software Distribution)( BSD 3-Clause , BSD 2-Clause )

目前分为BSD 3-Clause和BSD 2-Clause。顾名思义,3-Clause包含3个条款,2-Clause只有两个。

BSD允许使用者修改和重新发布代码(以其他协议形式),允许闭源商业发布和销售。

BSD鼓励代码共享的同时,要求尊重代码作者的著作权。

使用BSD协议,需要遵守以下规则(2-Clause则不带第3条):

1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议;

2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档那个和版权声明中包含原来代码中的BSD协议;

3.不可以用开源代码的“作者/机构的名字”或“原来产品的名字”做市场推广。

要点:商业软件可以使用,也可以修改使用BSD协议的代码。

GPL ( GNU General Public License )

GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。

GPL具有“传染性”,只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用 GPL协议,既必须也是开源和免费。

GPL对商业发布的限制(引自Java视线论坛的Robbin):

“GPL是针对软件源代码的版权,而不是针对软件编译后二进制版本的版权.你有权免费获得软件的源代码,但是你没有权力免费获得软件的二进制发行版本.GP对软件发行版本唯一的限制就是:你的发行版本必须把完整的源代码一同提供.”

使用GPL协议,需要遵守以下规则:

1、确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软 件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。

2、GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。

3、无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。

4、开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,所以商业软件就不适合采用使用GPL协议的开源代码。

要点:商业软件不能使用GPL协议的代码。

LGPL ( GNU Library or "Lesser" General Public License )

与GPL的强制性开源不同的是,LGPL允许商业软件通过类库引用(link)的方式使用LGPL类库而不需要开源商业软件的代码。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

要点:商业软件可以使用,但不能修改LGPL协议的代码。

MIT ( MIT license )

[MIT许可证之名源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称「X条款」(X License)或「X11条款」(X11 License)]

MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

要点:商业软件可以使用,也可以修改MIT协议的代码,甚至可以出售MIT协议的代码。

MPL ( Mozilla Public License 1.1 ) 

MPL协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者 。这种授权维护了商业软件的利益,它要求基于这种软件的修改无偿贡献版权给该软件。这样,围绕该软件的所有代码的版权都集中在发起开发人的手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。

要点:商业软件可以使用,也可以修改MPL协议的代码,但修改后的代码版权归软件的发起者。

CDDL (Common Development and Distribution License ) 

CDDL(Common Development and Distribution License,通用开发与销售许可)开源协议,是MPL(Mozilla Public License)的扩展协议,它允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。

要点:商业软件可以使用,也可以修改CDDL协议的代码。

 

Common Public License 1.0 (CPL-1.0 )(已废弃)

CPL是IBM提出的开源协议,主要用于IBM或跟IBM相关的开源软件/项目中(例如,Eclipse、Open Laszlo等)。

EPL (Eclipse Public License 1.0 ) 

EPL允许Recipients任意使用、复制、分发、传播、展示、修改以及改后闭源的二次商业发布。

使用EPL协议,需要遵守以下规则:

1. 当一个Contributors将源码的整体或部分再次开源发布的时候,必须继续遵循EPL开源协议来发布,而不能改用其他协议发布.除非你得到了原“源码”Owner 的授权;

2. EPL协议下,你可以将源码不做任何修改来商业发布.但如果你要发布修改后的源码,或者当你再发布的是Object Code的时候,你必须声明它的Source Code是可以获取的,而且要告知获取方法;

3. 当你需要将EPL下的源码作为一部分跟其他私有的源码混和着成为一个Project发布的时候,你可以将整个Project/Product以私人的协议发布,但要声明哪一部分代码是EPL下的,而且声明那部分代码继续遵循EPL;

4. 独立的模块(Separate Module),不需要开源。

送给大家一张图加深理解(感谢博主的图https://blog.csdn.net/leos_blog/article/details/44774541)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开源协议比较:BSD、Apache、GLP、LGLP、MIT 的相关文章

  • 关于Activity中onStop和onPause调用时机的各种误解

    源码 https github com w g b ActivityReview 正确结果 假设当前的FirstActivity为A 要调用A的onPause方法而不调用onStop方法 1 在AndroidManifest文件中 将Thi
  • Mysql中Blob类型字段的插入、查看、截取和拼接

    导航 前言 数据库版本 创建测试表 插入数据 查看数据 截取数据 拼接数据 进制转换 实际处理 总结 前言 本来并没有太注意到Blob这个类型 在游戏的开发中存储数据常常使用这个类型 这里的使用其实是 机械 的使用 因为应用程序和Mysql
  • 一个简单词法分析器的C语言实现

    一个简单词法分析器的C语言实现 1 1实验描述 例如 对源程序 begin x 9 if x gt 9 then x 2 x 1 3 end 的源文件 经过词法分析后输出如下序列 lt 1 begin gt lt 10 x gt lt 18
  • 探究安全帽识别系统的原理及应用

    安全帽识别这一词想必大家都有所耳闻 但是他的工作原理和应用大家可能不太了解 富维图像作为资深的安全帽识别设计者 将为大家追本溯源 让大家了解安全帽识别的庐山真面目 安全帽识别系统是基于人工智能图像识别技术的高科技产物 近些年来 图像识别技术
  • 业界最全遥感图像语义分割Benchmark发布啦!还有提高小目标分割性能的C2FNet等你pick!

    遥感图像语义分割是图像分割领域的一个重要的垂类应用 有着广泛的需求和实际应用价值 尤其在灾害评估 农作物产量估计和土地变化监测等领域有着不可替代的作用 相比于自然图像的语义分割 遥感图像语义分割由于有其自身的特殊性和挑战性 如遥感图像存在大
  • js 字典的使用(入门级)

    2023 1 18今天我学习了如何使用字典 首先是字典的形式 dict a 1 b 2 c 3 字典是一种以键 值为一队存储的数据结构 key value key相当于字典的索引 key不允许重复 Array既是字典也是数组 一 定义数组
  • 剑指 Offer 09. 用两个栈实现队列

    leetcode题目 用两个栈实现一个队列 队列的声明如下 请实现它的两个函数 appendTail 和 deleteHead 分别完成在队列尾部插入整数和在队列头部删除整数的功能 若队列中没有元素 deleteHead 操作返回 1 示例
  • 聚簇索引和非聚簇索引的区别

    一 聚簇索引和非聚簇索引 1 聚簇索引和非聚簇索引 我拿查字典做一个比喻 字典的页面就好比是物理排列顺序 物理排列顺序是固定的 查询的方式就好比是索引 区别是聚簇索引就好比是拼音查询 每一个字母查询出来的页面顺序是跟你字母的顺序一致的 a字
  • Go项目布局建议

    我们编写的 如果是Go 程序都是简单程序 一般由一个或几个 Go 源码文件组成 而且所有源码文件都在同一个目录中 但是生产环境中运行的实用程序可不会这么简单 通常它们都有着复杂的项目结构布局 弄清楚一个实用 Go 项目的项目布局标准是 Go
  • MapReduce优劣,理解MapReduce与Hadoop

    MapReduce是一种计算模型 用于大规模数据集 大于1TB 的并行运算 概念 Map 映射 和 Reduce 归约 是它们的主要思想 都是从函数式编程语言里借来的 还有从矢量编程语言里借来的特性 它极大地方便了编程人员在不会分布式并行编
  • Tor相关网站

    2017 03 21 docker搭建 https github com antitree private tor network stem库 https stem torproject org tutorials examples lis
  • 【Oracle SQL语句 某字段重复数据只取一条】

    问题描述 环境 甲方系统用了Oracle 我用的是MySQL 业务场景 开发中模拟甲方数据库 缺少某视图 遂自行根据部分数据表内容 创建数据 数据主要有两项内容 一个是name 一个是code code理论上唯一 一个code只对应一个na
  • Java代码实现非对称加密RSA

    非对称加密算法中 生成两个密钥一个公钥和一个私钥 它们是一对要搭配使用 如果用公钥进行加密 只有用对应的私钥才能解密 如果用私钥进行加密 只有用对应的公钥才能解密 非对称加密算法实现机密信息的交换过程为 甲方生成一对密钥并将其中一个作为公钥
  • 基于医疗RFID手术用品智能柜管理应用方案

    基于 西班牙巴塞罗那Consorci Sanitari DE L ANOIA最近布署Palex出示的名叫DYANE聪慧柜子的RFID应用方案 来管理高价位手术用品 确保了库存量的实时性并避免了药物到期状况 该系统软件还有药物应用追溯作用 降
  • ubuntu16.04安装sougo输入法 值得总结

    ubuntu16 04按照搜索 ubuntu16 04安装搜狗输入法 的百度经验就行安装后 输入法总是出不来 折腾了一天各种尝试也没搞定 第二天比较清醒 发现昨天安装没问题 是我没看输入法管理的这些快捷键没把输入法切换过来 因为输入法管理器
  • [从零开始学习FPGA编程-54]:高阶篇 - 基于IP核的FPGA开发-PLL锁相环IP核的原理与配置(Altera)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 前言 现代数字电路少不了时钟 时钟是时序电路的心跳 没有时钟 时序电路就无法工作 但是不同功能的时序电路 其所需要的时钟频率是不同的 不太可
  • ADXL345传感器介绍

    今天小白给大家介绍一款当下比较流行的三轴加速度传感器 ADXL345 通过本文的介绍让大家学会如何使用这款功能强大的三轴加速度传感器 欢迎一起交流学习 1 ADXL345传感器简介 该款传感器如下图 ADXL345 是 ADI 公司推出的基
  • springboot整合activiti7

    一 添加依赖
  • 【无监督】2、MAE

    文章目录 一 背景 二 方法 三 效果 论文 Masked Autoencoders Are Scalable Vision Learners 代码 https github com facebookresearch mae 出处 CVPR
  • 简述算法中的时间复杂度和空间复杂度

    引入类比相关问题 问题 大约花费时间 眨一下眼 不到一秒 瞬间 口算 123 34 几秒 烧一壶水 几分钟 睡一觉 几个小时 完成一个项目 几天 几个星期 j几个月 飞船从地球飞出太阳系

随机推荐

  • IPv6地址结构详细解析

    转载地址 http www wzsky net html Cisco Network 54512 html 一 IPv6地址的表示形式 用文本方式表示的IPv6地址有三种规范的形式 1 优先选用的形式是X X X X X X X X 其中X
  • 从零开始学习3D可视化之拾取

    1 通过属性和接口获取鼠标拾取 Pick 的物体 2 通过事件获取鼠标拾取的物体 3 区域 Pick 物体 4 pickedResultFunc设置拾取对象回调函数 在开发数字孪生可视化场景应用时经常会用到拾取功能 顾名思义 在数字孪生可视
  • (docker)mysql镜像拉取-创建容器-容器的使用【个人笔记】

    容器的第一次创建 容器的第一次创建 需要先下载镜像 从 镜像拉取 0 可以搜索镜像的版本 docker search mysql 1 先拉取MySQL的镜像 默认拉取最新版 使用下面的命令拉取mysql镜像 docker pull mysq
  • The GNU nano text editor (文本编辑器)

    The GNU nano text editor 文本编辑器 https www nano editor org GNU nano is a small and friendly text editor 1 GNU nano The GNU
  • 服务端缓存

    CDN缓存 用户浏览器与服务器的交互流程 客户端浏览器先检查是否有本地缓存是否过期 如果过期 则向CDN边缘节点发起请求 CDN边缘节点会检测用户请求数据的缓存是否过期 如果没有过期 则直接响应用户请求 此时一个完成http请求结束 如果数
  • 救世之树服务端开服架设服务器搭建教程

    救世之树服务端开服架设服务器搭建教程 救世之树架设教程 准备好服务端 版本 服务器 域名开始实操 我是艾西 需要给服务器开启虚拟内存 设置好后服务器需要重启下 第一步 解压服务端到D盘 右键 000 修改计算机名 ps1使用powershe
  • VMware15安装及Linux环境搭建教程

    VMware15安装及Linux环境搭建教程 A 软件安装 B 新建虚拟机环境 附加题 C 文件与网络 文件设置 网络设置 对于很多计算机类专业的学生来说 经常有在Linux系统上进行开发的需要 本文介绍了如何利用VMware在Window
  • js数组常用方法

    JavaScript是一种高级编程语言 广泛应用于Web开发 在JavaScript中 数组是一种常用的数据类型 它可以用来存储一组值 这些值可以是任何类型 包括数字 字符串 对象等 JavaScript数组提供了许多强大的操作方法 可以帮
  • jmeter学习所采的坑

    1 jdk安装是32位与jmeter版本不兼容 jdk安装是32位 jmeter5 4 1 卸载jdk安装64后问题解决 2 jmeter安装后保存不了测试计划 解决方案 各种百度 最后在选项 外观 选择windows 可以保存测试计划 3
  • (代码审计)zzcms存储型XSS

    1 漏洞成因是stripfxg 函数引起的 先来看看这个函数 inc function php function stripfxg string htmlspecialchars decode false nl2br false 去反斜杠
  • flask mvc模式开发_MVC设计模式

    MVC的全名是Model View Controller 是模型 Model 视图 view 控制器 controller 的缩写 是一种设计模式 它是用一种业务逻辑 数据与界面显示分离的方法来组织代码 将众多的业务逻辑聚集到一个部件里面
  • RuntimeError: Error(s) in loading state_dict for BASE_Transformer

    最近跑一个深度学习变化检测的项目BIT CD 严格按照作者的说明页进行训练和测试 但是跑出来的模型就是无法正常工作 而用作者的预训练模型就正常工作 百思不得其解 根据错误 逐步调试 输出 总算是找到了问题的所在 其实这个问题如果对于老手 估
  • 全面解析大语言模型的工作原理

    当ChatGPT在去年秋天推出时 在科技行业乃至世界范围内引起了轰动 当时 机器学习研究人员尝试研发了多年的语言大模型 LLM 但普通大众并未十分关注 也没有意识到它们变得多强大 如今 几乎每个人都听说过LLM 并有数千万人用过它们 但是
  • 3D模型的渲染,这一篇就够了

    3D模型的渲染 这一篇就够了 效果图及源码 1 mapbox 2 threebox tube line logistics raycaster mercator object3D 效果图及源码 1 mapbox https docs map
  • ORACLE(student)表习题与答案

    1 查询Student表中的所有记录的Sname Ssex和Class列 SELECT sname ssex class FROM student 2 查询教师所有的单位即不重复的Depart列 SELECT distinct depart
  • 集中式日志存储架构

    Hello大家好 欢迎回来 我们今天的视频课程要讨论的内容是 AWS的集中式日志存储架构 包括集中式日志存储架构需要考虑的事项 以及使用了两个AWS账户对架构的实现做了个快速的演示 我们开始今天的内容 集中式日志存储架构 当前 在绝大多数组
  • 对话力码科技:保险科技应用有待深入,价值落地更重要

    保险行业的数字化时机已来 更加专业化的企业才能立于不败之地 数科星球原创 作者丨苑晶 编辑丨大兔 对于国内的大多数企业来说 2023年是个极为重要的年份 在软件行业 随着人工智能等新技术的日益成熟和普及 软件行业迎来黄金时代 在这种趋势下
  • 多点双向重发布

    实验题目 要求 1 两个协议间进行多点双向重发布 2 R7的环回没有宣告在OSPF协议中 而且是后期重发布进去 3 解决环路 所有路径选择最优 且存在备份 实验拓扑图 IP地址与ospf和rip的配置 R1 int g0 0 0 ip ad
  • 华为OD机试真题-计算网络信号 【2023.Q1】

    题目内容 网络信号经过传递会逐层衰减 且遇到阻隔物无法直接穿透 在此情况下需要计算某个位置的网络信号值 注意 网络信号可以绕过阻隔物 array m n 的二维数组代表网格地图 array i j 0代表i行j列是空旷位置 array i
  • 开源协议比较:BSD、Apache、GLP、LGLP、MIT

    BSD开源协议 original BSD license FreeBSD license Original BSD license BSD开源协议是一个给于使用者很大自由的协议 基本上使用者可以 为所欲为 可以自由的使用 修改源代码 也可以