开源是什么?——跟老吕学Python编程

news2024/12/23 12:25:59

开源是什么?——跟老吕学Python编程

  • 开源是什么?
    • 开放源代码软件是什么?
    • 开源软件许可证是什么?
    • 开放源代码软件是什么?
    • 开放源代码的软件代表有什么?
    • 开放源代码软件与自由软件的概念
  • 开源的定义是什么?
  • 开源的优缺点
    • 开源的优势
    • 开源的劣势
  • 开源代表着放弃权力
    • 开源代表着放弃作品复制权
    • 开源代表着放弃作品修改权
    • 开源代表着放弃作品传播权

开源是什么?——跟老吕学Python编程

开源是什么?


开放源代码(Open source code),也称为源代码公开,简称“开源”

“开源”是指的是一种代码发布模式。
一般的代码取得已经经过编译的二进制可执行档,通常只有软件的作者或著作权所有者等拥有程序的源代码,而软件作者会将源代码公开,此称之为“源代码公开”,但这并不一定符合“开放源代码”的定义及条件,因为作者可能会设定公开源代码的条件限制,例如限制可阅读源代码的对象、限制衍生品等。

开放源代码软件是什么?

开放源代码软件源于自由软件开源运动,简称开源软件。
是指那些源代码公开,可以被自由使用、复制、修改和再发布的一系列软件的集合。

开源软件许可证是什么?

开源软件许可证,是对开源软件进行规范的授权合同,也可以称为授权协议书。当然,开源软件许可证类别繁多,在选择适用上,了解彼此的权利让渡程度是其关键因素。

开放源代码软件是什么?

开放源代码软件就是在开放源代码许可证下发布的软件,以保障软件用户自由使用及接触源代码的权利。这同时也保障了用户自行修改、复制以及再分发的权利。简单点说,就是所有公布软件源代码的程序都可以称为开放源代码软件。

开放源代码的软件代表有什么?

开放源代码有时不仅仅指开放源代码软件,它同时也是一种软件开放模式的名称。

使用开放源代码开放模式的软件代表就有GNU/Linux操作系统。

开放源代码软件与自由软件的概念

严格地说来,开放源代码软件与自由软件是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代码软件(开源软件)。
自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。但在现实上,绝大多数开源软件也都符合自由软件的定义。比如,遵守GPL的软件都是开放的并且是自由的。



开源的定义是什么?


开放原始码的定义由Bruce Perens(Debian创始人之一)定义如下:

  1. 自由的再散布
    符合开放源代码定义的授权,不得限制任何一方销售或让予已成为其中一部份的开放性源代码,即使该聚合性软件中包含多种不同来源的程序。此一授权不得要求权利金或其它费用。

  2. 程序源代码
    程序散布时必须包括源代码与其所编译的形式。假若程序在散布时并未附加源代码,其必须以一公开方式,在不超过合理的复制成本下,让人得以取得源代码,例如可以在不收取费用的情况下在网络上供入下载。这里所谓的“源代码”,必须是程序设计者最易于修改程序的形式,故意混乱源代码或是以所谓的中间形式,如预处理器、或编译程序所处理后的结果是不被允许的。

  3. 衍生作品
    符合开放源代码定义的授权,必须允许程序的修改与衍生作品”的产生.并且此授权必须允许在相同条件下,对于衍生作品加以散布。

  4. 原创作者程序源代码的完整性
    符合开放源代码定义的授权,可以禁止他人以修改的形式散布源代码,除非此一授权允许基于修改程序的目的,而采取“附加档案”的方式以区别此一部分非原创作者所创作。此一授权必须明确允许被授权人对于所修改的软件有加以散布的权利。此外,授权内容得要求衍生作品必须附加不同于原软件的名称或版本编号。

  5. 不得歧视任何个人或团体
    符合开放源代码定义的授权,不得对任何人或任何团体有歧视陛的规定。由于有些国家,包含美国在内,对于特定类型的软件进行出口管制,因此此类软件通常会有警告的标语,揭示此管制规定;但是在符合开放源代码定义的授权本身,并不包含此种警告标语在内。

  6. 不得歧视程序在任何领域内的利用
    符合开放源代码定义的授权,不得禁止任何人在特定领域使用此程序。例如,其不得禁止程序在商业上的使用,或者在基因研究上的利用。

  7. 授权的散布
    开放源代码授权内的权利,于所有再散布的程序均有适用,而无须透过其它授权加以行使。换言之,符合开放源代码定义的授权,必须有适用于所有衍生作品的延续性,以避免被授权人间接藉由附加其它授权的方式影响软件的开放性。

  8. 授权不得专属于特定产品
    附着于程序上的权利,不得仅限于特定软件散布的需要。所有程序的被授权人,均与原程序于散布时的状态一样,享有相同的权利。

  9. 授权不得对其他软件加以限制
    符合开放源代码定义的授权,不得对其他随同此一软件散布的其它软件,附加任何的限制。例如,不得规定在相同媒体散布的其它软件,接受此一授权条款所拘束而须开放源代码。

  10. 授权必须是科技中性的
    任何条款规定不可基于任何独特的科技或接12型式。例如,不得限制于使用点选包里(Clik-Wrap)的方式来下载,否则将有碍透过档案传输协议、CD-ROM或网站映射等方式再下载使用源代码的可能。



开源的优缺点


开源的优势

其主要的长处表现在长期可信赖性、平行除错、平行研发、完美应用程序接口、版本释出速等方面上。就长期可信赖性而言,只要企业在短期之中不会被排除于竞争市场外就可以称为具有长期可信赖性。由于在开放源代码的软件开发模式下,源代码是可以很轻易地于许多地方获得,并且可以自行使用、修改源代码,因此即使软件不再开发,自己也可以进一步利用源代码。此外,透过因特网科技的发展,开放源代码软件开放模式可以采取平行除错、平行研发的做法,将网络上潜在的无限开发者,免费的加以运用,并且可以同时进行,不受时间、地域的限制,最后只要选择适合的方案即可,所以只要参与的人数够多,其源代码释放速率通常也较快;就完美的应用程序接口来说,开放源代码软件开发模式将的建立于源代码的开放上,使得使用者能够透过源代码来验证,不像传统封闭源代码的电脑软件只能将其信心建立在软件公司的形象上。开放源代码的软件开发模式最大的优点在于其可得到大量的开放源代码社群的支持,如同拥有大量免费的软件开发及测试人员。这样将世界各地的优秀人才纳为己用,却又不须支付高额的薪水,这是传统封闭源代码的软件开发模式所无法获得的。

开源的劣势

当然,开放源代码软件开发模式也有其缺点,主要表现为管理成本、设计程序议题以及组织可信赖性等。首先就管理成本而言,主要是因为一旦计划发展到一定程度,其创新、修正的质量必然变大,参与人数众多,当然也会造成一定的管理成本,另外,整合、决策架构都会增高管理的成本;其次就设计程序议题来看,其不断释出新版本,将造成消费者需要不断重新安装的困扰,并且由于其设计上通常较不关心友善的界面,会增加使用者的接近使用的难度;最后就组织可信赖性而言,使用者会在意其使用的计算机软件可从开发组织中获得如何的支持和关心软件的未来发展方向。但是,由于开放源代码软件是由不同社群成员所贡献而成,并且不负质量担保的责任,因此相对于传统的软件企业,确实有可能无法获得完善的支持,也无法保证软件未来的发展方向。另外,虽然新的开放源代码市集式的开发模式,已在世界各地展开运行一段时间,并有许多诸如Linux典型的成功案例,可以说已对计算机软产业产生一定的冲击。但是其与传统开发模式相比亦有其缺点。



开源代表着放弃权力


开放源代码软件放弃了以下著作权人所享有的权利

开源代表着放弃作品复制权

接受某种开放源代码软件公共许可协议的用户,对于初始软件作品可以自由复制,也放弃了自己对初始软件作品修改完善以后衍生版本软件的复制限制权利。

开源代表着放弃作品修改权

接受某种开放源代码软件公共许可协议的用户,在依照协议复制了原软件作品的目标代码和源代码以后,可以对原软件作品在源代码上进行修改,并且对修改后的衍生软件作品,又要遵循先前已有的公共许可协议向后续的用户明确放弃修改权,赋予后续用户继续修改的权利。

开源代表着放弃作品传播权

接受某种开放源代码软件公共许可协议的用户,在自由地获取了依照该协议发布的软件作品,并进行了相关的修改完善之后,有依照该协议继续无条件向后续用户发布初始软件作品以及修改后软件作品的义务。



如若本文能帮您, 希望您能关注Python老吕的CSDN博客 ;
您可以在本文进行评论,老吕将努力快速回复,和您近距离交流各种问题;
博主ID:Python老吕,希望大家点赞、评论、收藏。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1508398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】第四十二站:线程局部存储与线程分离

一、线程的局部存储 1.实现多线程 如果我们想创建多线程&#xff0c;我们可以用下面的代码类似去实现 #include <iostream> #include <pthread.h> #include <string> #include <cstdlib> #include <unistd.h> #include <thread> #inclu…

AI智能答题系统是什么?

AI智能答题系统是一种基于人工智能技术的智能问答系统&#xff0c;旨在提供精准、高效的答题解答服务。该系统利用自然语言处理&#xff08;NLP&#xff09;、机器学习、知识图谱等多种技术&#xff0c;可以理解用户提出的问题&#xff0c;并在庞大的知识库或数据集中查找相关信…

鸿蒙报错:Hhvigor Update the SDKs by going to Tools > SDK Manager....

鸿蒙报错&#xff1a;Hhvigor Update the SDKs by going to Tools > SDK Manager… 打开setting里面的sdk&#xff0c;将API9工程下的全部勾上&#xff0c;应用下载 刚打开 js 和 Native 是没勾上的

LeetCode-102.题: 二叉树的层序遍历(原创)

【题目描述】 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 【题目链接…

Linux进程概念僵尸进程孤儿进程

文章目录 一、什么是进程二、进程的状态三、Linux是如何做的&#xff1f;3.1 R状态3.2 S状态3.3 D状态3.4 T状态3.5 t状态3.6 X状态3.7 Z状态 四、僵尸进程4.1 僵尸进程危害 五、孤儿进程 一、什么是进程 对于进程理解来说&#xff0c;在Windows上是也可以观察到的&#xff0c…

数据结构与算法第三套试卷小题

1.删除链表节点 **分析&#xff1a;**首先用指针变量q指向结点A的后继结点B&#xff0c;然后将结点B的值复制到结点A中&#xff0c;最后删除结点B。 2.时间复杂度的计算 **分析&#xff1a;**当涉及嵌套循环的时候&#xff0c;我们可以直接分析内层循环即可&#xff0c;看内…

sql注入基础学习

1.常用SQL语句 01、显示数据库 show databases&#xff1b; 02、打开数据库 use db name&#xff1b; 03、显示数据表 show tables&#xff1b; 04、显示表结构 describe table_name&#xff1b; 05、显示表中各字段信息&#xff0c;即表结构 show columns from table_nam…

【框架学习 | 第五篇】SpringMVC(常用注解、获取请求参数、域对象共享数据、拦截器、异常处理、上传/下载文件)

文章目录 1.SpringMVC简介1.1定义1.2主要组件1.3工作流程1.3.1简要流程1.3.2详细流程 1.4优缺点 2.常用注解3.获取请求参数3.1通过 HttpServletRequest 获取请求参数3.2通过控制器方法的形参获取请求参数3.2.1请求路径参数与方法形参一致3.2.2请求路径参数与方法形参不一致3.2.…

笔记本电脑使用时需要一直插电吗?笔记本正确的充电方式

随着科技的不断发展&#xff0c;笔记本电脑已经成为人们日常生活和工作中不可或缺的电子设备。而在使用笔记本电脑时&#xff0c;很多人会有一个疑问&#xff0c;那就是笔记本电脑使用时需要一直插电吗&#xff1f;本文将就此问题展开讨论。 不一定需要一直插电&#xff0c;如果…

C++:2024/3/11

作业1&#xff1a;编程 要求&#xff1a;提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 代码&#xff1a; #include <iostream>using namespace std;int main() {string str;cout << "请输入一个字…

sql-mysql可视化工具Workbench导入sql文件

mysql可视化工具Workbench导入sql文件 1、打开workbench2、导入sql文件3、第一行加上库名4、开始运行 1、打开workbench 2、导入sql文件 3、第一行加上库名 4、开始运行

参与Penpad launch任务,实现Penpad与Scroll的双空投

在比特币 ETF 、BTC 减半等利好消息的持续推动下&#xff0c;加密市场逐渐进入到新一轮牛市周期中。除了以太坊 Layer1 生态 TVL 不断飙升外&#xff0c;Layer2 赛道 TVL 也在不断飙升并且屡创新高。 而在牛市背景下&#xff0c;Layer2 空投所带来的财富效应预期正在被进一步拉…

IAB视频广告标准《数字视频和有线电视广告格式指南》之 目录和概述及视频配套广告 - 我为什么要翻译介绍美国人工智能科技公司IAB系列(2)

写在前面 谈及到中国企业走入国际市场&#xff0c;拓展海外营销渠道的时候&#xff0c;如果单纯依靠一个小公司去国外做广告&#xff0c;拉渠道&#xff0c;找代理公司&#xff0c;从售前到售后&#xff0c;都是非常不现实的。我们可以回想一下40年前&#xff0c;30年前&#x…

Facebook商城号为什么被封?如何防封?

由于Facebook商城的高利润空间&#xff0c;越来越多的跨境电商商家注意到它的存在。Facebook作为全球最大、用户量最大的社媒平台&#xff0c;同时也孕育了一个巨大的商业生态&#xff0c;包括广告投放、商城交易等。依托背后的大流量&#xff0c;Facebook商城起号较快&#xf…

接口测试\接口测试脚本之Jsoup解析HTML

第一次接触jsoup还是在处理收货地址的时候&#xff0c;当时在写一个下单流程&#xff0c;需要省市区id以及详细门牌号等等&#xff0c;因此同事介绍了jsoup,闲来无事&#xff0c;在此闲扯一番&#xff01; 1.我们来看下&#xff0c;什么是jsoup,先来看看官方文档是怎么说的&am…

【深度学习】换脸新科技,InstantID: Zero-shot Identity-Preserving Generation in Seconds

论文&#xff1a;https://arxiv.org/abs/2401.07519 代码:https://github.com/InstantID/InstantID demo&#xff1a;https://huggingface.co/spaces/InstantX/InstantID 文章目录 1 引言2 相关工作2.1 文本到图像扩散模型2.2 主题驱动的图像生成2.3 保持ID的图像生成 3 方法3.…

深入理解Vue.js中的nextTick:实现异步更新的奥秘

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【wps】wps与office办公函数储备使用(结合了使用案例 持续更新)

【wps】wps与office办公函数储备使用(结合了使用案例 持续更新) 1、TODAY函数 返回当前电脑系统显示的日期 TODAY函数&#xff1a;表示返回当前电脑系统显示的日期。 公式用法&#xff1a;TODAY() 2、NOW函数 返回当前电脑系统显示的日期和时间 NOW函数&#xff1a;表示返…

群晖NAS使用Docker安装WPS Office并结合内网穿透实现公网远程办公

文章目录 推荐1. 拉取WPS Office镜像2. 运行WPS Office镜像容器3. 本地访问WPS Office4. 群晖安装Cpolar5. 配置WPS Office远程地址6. 远程访问WPS Office小结 7. 固定公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff…

美国国家安全局(NSA)和美国政府将Delphi/Object Pascal列为推荐政府机构和企业使用的内存安全编程语言

上周&#xff0c;美国政府发布了《回到构建块&#xff1a;通往安全和可衡量软件的道路》的报告。本报告是美国网络安全战略的一部分&#xff0c;重点关注多个领域&#xff0c;包括内存安全漏洞和质量指标。 许多在线杂志都对这份报告发表了评论&#xff0c;这些杂志强调了对 C…