CSDN-开源科普知识整理

李少辉-开发者 2021-11-29 18:03:06

一、什么是开源

开源,也就是开放源代码,市场上开源软件层出不穷,开源面向的用户主要有两个群体,一个是程序员,他们会关心源代码能不能进行二次开发利用。其次是普通终端用户,他们关心软件的功能够不够强。很多人都认为开源软件最明显的特点是免费,但实际上并不是,开源软件最大的特点应该是开放。任何人都可以得到软件的源代码,在此基础上加以修改学习,甚至在版权限制范围之内重新发放。
整理自 https://blog.csdn.net/sinat_15603323https://blog.csdn.net/sinat_15603323/article/details/90769253

二、什么是开源精神

开源精神是那种在包纳中实现劳动协作和劳动成果推广的、海纳百川(协作)的创新者精神(生产者精神)。

开源精神是那种尊重和推崇生产者、尊重劳动、尊重知识产权、遵守和敬畏法律的使用者精神(消费者精神)。

开源精神是共创、共建、共享的“社会主义”市场精神(集市);世界这么大,需要很多的“社会主义社区”(项目社区),各个“社区”内部民主自治;世界这么大,足以容纳下不同的思想,不需要“国际政客”宣传什么政治正确。——开源精神是市场精神(集市),而不是政治精神(大教堂),不需要搞政治正确的“政客”。

开源精神用来约束使用者(消费者);开源精神用来尊重生产者在法律框架下制定规则(开源许可证)的权利。不应当利用“开源精神”对开源项目的产权持有人形成道德绑架(版权不免费授权给公众难道就不是开源软件?)。
整理自 https://blog.csdn.net/phenahttps://blog.csdn.net/phena/article/details/109635639

三、开源软件协议

开源软件英文为Open Source Software,简称OSS,又称开放源代码软件,是一种源代码可以任意获取的计算机软件,这种软件的著作权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及以任何目的向任何人分发该软件。

某些软件的源代码只有创建它的个人、团队或组织(并保持对它的独占控制)才能修改。人们称这种软件为”专有”或”闭源”软件。只有专有软件的原始作者才能合法地复制、检查和更改该软件。并且为了使用专有软件,计算机用户必须同意(通常通过签署他们第一次运行该软件时显示的许可证)他们不会对软件作者未明确许可的软件进行操作。

与专有软件一样,用户在使用开源软件时必须接受许可条款即开源软件License,但开源许可的法律条款与专有许可的法律条款大不相同。

出于多种原因,人们更喜欢开源软件而不是专有软件:

(1).他们对这种软件有更多的控制权。

(2).它一般有开源社区,可以帮助他们成为更好的程序员。

(3).他们认为它比专有软件更安全和稳定,因为任何人都可以查看和修改开源软件。

License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的。软件协议可分为开源和商业。这里总结下常用的几种开源软件License的异同,包括Apache License、MPL、MIT、GPL、LGPL、BSD:

1. Apache License

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

(1). 需要给代码的用户一份Apache License。

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

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

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

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

2. MPL (Mozilla Public License)

1998年初,Netscape的Mozilla小组为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因就是,Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益。同著名的GPL许可证和BSD许可证相比,MPL在许多权利与义务的约定方面与它们相同(因为都是符合OSIA 认定的开源软件许可证)。但是,相比而言MPL还有以下几个显著的不同之处:

(1). MPL虽然要求对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来,以保证其他人可以在MPL的条款下共享源代码。但是,在MPL 许可证中对”发布”的定义是”以源代码方式发布的文件”,这就意味着MPL允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。这些,就为借鉴别人的源代码用做自己商业软件开发的行为留了一个豁口。

(2). MPL许可证第三条第7款中允许被许可人将经过MPL许可证获得的源代码同自己其他类型的代码混合得到自己的软件程序。

(3). 对软件专利的态度,MPL许可证不像GPL许可证那样明确表示反对软件专利,但是却明确要求源代码的提供者不能提供已经受专利保护的源代码(除非他本人是专利权人,并书面向公众免费许可这些源代码),也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利。

(4). 对源代码的定义而在MPL(1.1版本)许可证中,对源代码的定义是:”源代码指的是对作品进行修改最优先择取的形式,它包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的’原本’(原文为’Script’),或者不是与初始源代码显著不同的源代码就是被源代码贡献者选择的从公共领域可以得到的程序代码。”

(5). MPL许可证第3条有专门的一款是关于对源代码修改进行描述的规定,就是要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。

3. MIT(Massachusetts Institute of Technology)

源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称"X条款"(XLicense)或"X11条款"(X11 License)。MIT内容与三条款BSD许可证(3-clause BSD license)内容颇为近似,但是赋予软体被授权人更大的权利与更少的限制。被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软体及软体的副本。被授权人可根据程式的需要修改授权条款为适当的内容。在软件和软件的所有副本中都必须包含版权声明和许可声明。此授权条款并非属copyleft的自由软体授权条款,允许在自由/开放源码软体或非自由软体(proprietary software)所使用。此亦为MIT与BSD(The BSD license, 3-clause BSD license)本质上不同处。MIT条款可与其他授权条款并存。另外,MIT条款也是自由软体基金会(FSF)所认可的自由软体授权条款,与GPL相容。

4. GPL(General Public License)

GPL同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。Linux就是采用了GPL。GPL还规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制。因此,一项遵循GPL流通的程序不能同非自由的软件合并。GPL所表达的这种流通规则称为copyleft,表示与copyright(版权)的概念”相左”。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。GPL 带有很强的传染性,那么如果一个库使用GPL发布,那么使用这个库的所有软件也必须使用GPL发布。GPL协议最主要的几个原则:

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

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

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

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

5. LGPL(Lesser General Public License)

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

6. BSD

BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

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

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

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

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

下面是六种License简图:

在这里插入图片描述


如果企业使用最好选择MIT、BSD、Apache License。

四、开源基金会

开源基金会对于开源软件和开源社区的组织、发展、协同创新提供了主导作用。开源基金会遵循公开、透明、开放等理念,为开源软件的孵化提供技术、运营、法律等全方位支持,为开源的社区建设和运营提供指导,发挥了孵化器和加速器的作用,开源基金会已成为开源生态最重要的组织者。

Apache 软件基金会

Apache 软件基金会正式创建于 1999 年 7 月,它的创建者是一个自称为 “Apache组织” 的群体。这个 “Apache组织” 在 1999 年以前就已经存在很长时间了,这个组织的开发爱好者们聚集在一起,在美国伊利诺伊斯大学国家超级计算机应用程序中心(National Center for Supercomputing Applications,简称为 NCSA)开发的 NCSA HTTPd 服务器的基础上开发与维护了一个叫 Apache 的 HTTP 服务器)。

最初 NCSA HTTPd 服务器是由 Rob McCool 开发出来的,但是它的最初开发者们逐渐对这个软件失去了兴趣,并转移到了其他地方,造成了没有人来对这个服务器软件提供更多的技术支持。因为这个服务器的功能又如此强大,而代码可以自由下载修改与发布,当时这个服务器软件的一些爱好者与用户开始自发起来,互相交流并分发自己修正后的软件版本,并不断改善其功能。为了更好进行沟通,Brian Behlendorf 自己建立了一个邮件列表,把它作为这个群体(或者社区)交流技术、维护软件的一个媒介,把代码重写与维护的工作有效组织起来。这些开发者们逐渐地把他们这个群体称为 “Apache组织”,把这个经过不断修正并改善的服务器软件命名为 Apache 服务器(Apache Server)。

后来由于商业需求的不断扩大,以 Apache HTTP 服务器为中心,启动了更多的与 Apache 项目并行的项目,比如 mod perl、PHP、Java Apache 等等。随着时间的推移、形势的变化,Apache 软件基金会的项目列表也不断更新变化——不断的有新项目启动,项目的中止以及项目的拆分与合并。比如一开始,Jakarta 就是为了发展 JAVA 容器而启动的 Java Apache 项目,后来由于升阳公司(SUN)的建议,项目名称变为 Jakarta。但当时该项目的管理者也没有想到 Jakarta 项目因为 JAVA 的火爆而发展到如今一个囊括了众多基于 JAVA 语言开源软件子项目的项目。以至后来,不得不把个别项目从 Jakarta 中独立出来,成为 Apache 软件基金会的顶级项目,Struts 项目就是其中之一。

Linux 基金会

Linux 基金会是非营利性的联盟,致力于促进 Linux 的发展,提供一个 Linux 作为协作和教育的平台,产生原创性研究和相关内容,并通过这个平台促进 Linux 的发展。通过网络,每月大约有两百万网民接触到该基金会。它还通过举办合作活动促进创新 Linux 技术社区,应用开发商,行业和最终用户解决 Linux 生态系统面临的紧迫问题,包括 LinuxCon 等。通过 Linux 基金会的合作计划,最终可以解决用户、开发和产业合作、技术、法律和宣传的问题。

Linux 基金会提供应用程序开发标准化服务和支持包括 Linux 标准基础,这使得 Linux 更有吸引力。Linux 基金会还提供了 Linux 开发社区服务,其中包括一个开源开发旅游基金,法律援助和其他行政援助。

CNCF 云原生计算基金会

CNCF 全称 Cloud Native Computing Foundation(云原生计算基金会),成立于 2015 年 7 月 21 日,其最初的口号是坚持和整合开源技术来让编排容器作为微服务架构的一部分,其作为致力于云原生应用推广和普及的一支重要力量,不论是云原生应用的开发者、管理者还是研究人员都有必要了解。

CNCF 作为一个厂商中立的基金会,致力于 Github 上的快速成长的开源技术的推广,如 Kubernetes、Prometheus、Envoy 等,帮助开发人员更快更好的构建出色的产品。如下是 CNCF 全景图。

在这里插入图片描述

Mozilla 基金会

1998 年 2 月 23 日,网景公司成立了 “Mozilla组织”,让它来协调 Mozilla 应用包(Mozilla Application Suite)的开发。尽管 Mozilla 组织主要由网景公司的员工组成,但是理论上,它是独立于网景公司运作的。Mozilla 组织声称他们开发的应用包主要用于测试目的,不适合最终用户使用,以至于当时一度出现了 Beonex Communicator 这样的商业化软件出现,但是,大多数用户还是直接去下载官方的Mozilla Application Suite。

当美国在线(网景的母公司)进行大规模裁员后,Mozilla 基金会在 2003 年 7 月 15 日成立了,它的目的是保证 Mozilla 组织可以在没有网景以后能继续生存下去。美国在线向基金会提供硬件设施、商标和知识产权,并且在三个月内雇用了一个三人小组来协助过渡。美国在线还承诺在 2 年时间内捐助 200 万美元给基金会。

在最初阶段,Mozilla 基金会开始涉及比 Mozilla 组织更广的领域,把以前网景公司的工作都拿来做了。在面临“终端用户”的转型当中,Mozilla 基金会和一些商业公司签约,贩售包含 Mozilla 软件的光盘并且提供电话支持服务。在这些举动中,Mozilla 基金会选择了以前网景公司的供应商作为他们的选择。Mozilla 基金会对自己的知识产权更加有信心,他们推出了自己商标和使用政策。市场拓展等的新项目也开始了。

随着 Mozilla 公司的成立,Mozilla 基金会把所有的软件开发和商业相关的活动都转移到这个新的子公司。Mozilla 基金会现在只专注于监管和战略等事宜,也继续管理一些没有产品化的项目,例如:Camino 和 SeaMonkey。Mozilla 基金会所拥有的商标和知识产权,全部授权给 Mozilla 公司使用。Mozilla 公司也控制了 Mozilla 的程序源代码库并且决定谁可以提交源代码入库。

开放原子开源基金会

开放原子开源基金会是中国首个,也是目前唯一一个以开源为主题的基金会。公开信息显示,该基金会登记日期为 2020 年 6 月 15 日。

2020 年 9 月9 日晚,中国首个开源软件基金会“开放原子开源基金会(OpenAtom Foundation)”官方正式对外发声。

根据官方信息,开放原子开源基金会是一个致力于开源产业的全球性非营利公益机构,业务范围包括开源软件、开源硬件、开源芯片及开源内容等,为各类开源项目提供中立的知识产权托管服务,以及战略咨询、法务咨询、项目运营和品牌营销服务。

基金会介绍,开源基金会是开源项目的孵化器、连接器与倍增器。通过对开源代码的开放治理以便于形成事实标准,连接产学研共建生态,为开源项目找到更多的应用场景。

开放原子开源基金会设理事会、TOC 与秘书处,理事会负责审议和修改基金会章程等,理事会设理事长、副理事长和秘书长,从理事中选举产生,理事长是基金会的法定代表人;TOC 也即技术监督委员会是其中立的技术决策机构,负责基金会技术相关的决策,以及项目的孵化评审等;秘书处是开源基金会的执行机构,负责开源基金会日常运营事务等相关工作,由专职的团队提供法务、营销、社区运营、基础设施建设等支撑工作。

我们还注意到,此前一天,百度超级链(XuperChain)已经成为首个捐赠给开放原子开源基金会的项目。XuperChain 是一个涉及创新的超级节点架构、链内并行技术、可回归侧链技术与平行链管理等区块链底层技术的项目;10 日华为鸿蒙也正式开源并进入开放原子开源基金会孵化。
整理自:
https://blog.csdn.net/fengbingchunhttps://blog.csdn.net/fengbingchun/article/details/55106926
https://blog.csdn.net/kaiyuanshehttps://blog.csdn.net/kaiyuanshe/article/details/108544084

...全文
3732 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
张伟豪123 2022-01-04
  • 打赏
  • 举报
回复

很赞,大佬讲的真好,传统软件企业要突破行业增速,单靠产品云化概念不能解决增长问题。只有向SaaS转型,才是实现增长的根本途径。做saas,这个也不错,值得分享下地址: https://www.wei-it.com/

1,143

社区成员

发帖
与我相关
我的任务
社区描述
本社区的主要目的是以分享开源项目的相关知识为主。
其他 其他
社区管理员
  • GitCode 官方
  • XianxinMao
  • 茶陵後
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

GitCode能有效的将代码管理与线上练习以及线上评测打通,实现一站式学与练的教学管理环境。

试试用AI创作助手写篇文章吧