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

开源是什么?——跟老吕学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.mzph.cn/news/737143.shtml

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

相关文章

JavaScript基础6之执行上下文、作用域链、函数创建、函数激活、checkScope的执行过程、闭包、this

JavaScript基础 执行上下文执行上下文中的属性变量对象全局上下文的变量对象函数上下文执行过程进入执行上下文代码执行思考题 作用域链函数创建函数激活checkScope的执行过程总结 闭包分析闭包 this 执行上下文 执行上下文中的属性 每一个执行上下文都有三个核心属性 变量对…

职场逆袭!如何打造‘黄金简历’

现在的职场,无论是哪个行业都特别卷,想要找到一份满意,不仅要求你要拥有丰富的工作经验,而且还要求你的简历足够精彩,这样才能在一众求职者中脱颖而出! 一、希赛老师在线指导 之前,小赛分享了…

c#WPF绑定

在 C# WPF 中,绑定是一种将 UI 元素(如文本框、列表框等)与数据源(如对象、集合等)关联起来的技术。通过绑定,可以在 UI 元素上显示和更新数据源中的数据,实现数据的双向同步。 下面是一个简单的…

CTP-API开发系列之四:接口对接准备

CTP-API开发系列之四:接口对接准备 CTP-API开发系列之四:接口对接准备CTP-API文件清单CTP-API通用规则命名规则Spi与Api CTP-API通讯模式开发语言选择 CTP-API开发系列之四:接口对接准备 CTP-API文件清单 文件名说明ThostFtdcTraderApi.h交…

mysql安装目录

方法一 输入如下sql命令 SELECT datadir;方法二 点击

docker-swarm集群管理命令

为什么选择swarm集群? 灵魂疑问:同样是集群,为什么选择docker swarm,而不不选择k8s或者k3s? 我的需求场景:不想直接用docker或者java -jar直接跑,修改前是使用java -jar方式,这两种…

Redis冲冲冲——Redis持久化方式及其区别

目录 引出Redis持久化方式Redis入门1.Redis是什么?2.Redis里面存Java对象 Redis进阶1.雪崩/ 击穿 / 穿透2.Redis高可用-主从哨兵3.持久化RDB和AOF4.Redis未授权访问漏洞5.Redis里面安装BloomFilte Redis的应用1.验证码2.Redis高并发抢购3.缓存预热用户注册验证码4.R…

代码背后的女性:突破性别壁垒的技术先驱

个人主页:17_Kevin-CSDN博客 收录专栏:《程序人生》 引言 在计算机科学的历史长河中,有许多杰出的女性为这个领域的发展做出了重要贡献。她们不仅在技术上取得了卓越成就,还打破了性别壁垒,为后来的女性树立了榜样。今…

力扣爆刷第91天之hot100五连刷41-45

力扣爆刷第91天之hot100五连刷41-45 文章目录 力扣爆刷第91天之hot100五连刷41-45一、102. 二叉树的层序遍历二、108. 将有序数组转换为二叉搜索树三、98. 验证二叉搜索树四、230. 二叉搜索树中第K小的元素五、199. 二叉树的右视图 一、102. 二叉树的层序遍历 题目链接&#x…

【算法】Hash存储——开放寻址法

模拟散列表 维护一个集合,支持如下几种操作: I x,插入一个整数 x; Q x,询问整数 x是否在集合中出现过; 现在要进行 N次操作,对于每个询问操作输出对应的结果。 输入格式 第一行包含整数 N&am…

查询IP地址保障电商平台安全

随着电子商务的快速发展,网购已经成为人们日常生活中不可或缺的一部分。然而,网络交易安全一直是人们关注的焦点之一,尤其是在面对日益频发的网络诈骗和欺诈行为时。为了提高网购平台交易的安全性,一种有效的方法是通过查询IP地址…

Python画图

Python中有多个库可以用于绘图,其中比较常用的有matplotlib、seaborn、plotly和bokeh等。这些库提供了丰富的绘图功能和自定义选项,可以帮助你创建各种类型的图表,包括线图、散点图、柱状图、饼图、热力图等。 下面是一个使用matplotlib库创…

ctfshow-XXE(web373-web378)

目录 XXE&#xff08;外部实体注入攻击&#xff09; web373 web374 web375 web376 web377 web378 知识点 XXE&#xff08;外部实体注入攻击&#xff09; XXE这几关有个前提flag在根目录下文件名为flag web373 <?php error_reporting(0); libxml_disable_entity_…

stable diffusion的额外信息融入方式

conditioning怎么往sd中添加&#xff0c;一般有三种&#xff0c;一种是直接和latent拼一下&#xff0c;另外很多是在unet结构Spatialtransformers上加&#xff0c;和文本特征一样&#xff0c;通过cross-attention往unet上加&#xff0c;这里还需要注意一点&#xff0c;在文本嵌…

大语言模型可信性浅谈

大语言模型可信性的研究 摘要&#xff1a; 随着人工智能技术的快速发展&#xff0c;大语言模型在自然语言处理领域的应用越来越广泛。然而&#xff0c;大语言模型的可信性一直是人们关注的焦点。本文将从多个维度探讨大语言模型的可信性问题&#xff0c;包括模型性能、数据质量…

调整分区失败,硬盘难启:原因分析与数据恢复之道

在数字化时代&#xff0c;硬盘作为存储数据的重要工具&#xff0c;其稳定性和安全性至关重要。然而&#xff0c;有时在调整分区的过程中&#xff0c;我们可能会遭遇失败&#xff0c;导致硬盘无法打开&#xff0c;数据无法访问。这种情况不仅令人沮丧&#xff0c;更可能带来不可…

基于springboot+layui仓库管理系统设计和实现

基于 java springbootlayui仓库管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取…

不要在代码中随便使用try...catch了

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 目录 背景 js中的try...catch try...catch运行机制 js的事件循环机制 try...c…

grpc的验证器

简介 在使用grpc库时候 ,很多时候我们需要对反序列化的参数进行校验,代码中有很多参数校验的代码&#xff0c;如果手动实现&#xff0c;会非常繁琐&#xff0c;对于grpc来说&#xff0c;在定义proto的时候使用直接定义参数的限制规则是一种更合理、更优雅的方式&#xff0c;插…

人工智能迷惑行为大赏

近年来&#xff0c;随着人工智能技术的不断发展和应用&#xff0c;我们在日常生活中越来越多地接触到各种智能设备和程序。然而&#xff0c;随之而来的是一些令人瞠目结舌的人工智能迷惑行为&#xff0c;让人们对这一新兴技术产生了更多的好奇和思考。 在人工智能迷惑行为大赏…