简化数据处理,掌握Excel去除空格的高效技巧
1218
2022-05-30
1 引言
你写代码时,可能也会重用代码,这包括代码片段、库、函数、框架和整个应用程序。
如果你想把软件代码添加到你的代码库中,需要知道所有的软件代码都有一定的权利和义务。
免费和开源软件(FOSS)是免费的,但你并不是可以随意使用它们。
正式开发的代码通常都有特定的软件许可证。
软件许可证有很多不同的类型,对不遵守许可证的惩罚可能很严厉。如果你在没有遵守许可证义务的情况下重用一个组件,许可证颁发者可能会起诉你,你可能会被迫发布自己的源代码。为了保护你的代码和你的组织,你需要在使用任何不是你自己编写的代码(包括库和框架)之前了解这些软件许可证。
2 软件许可证有哪些不同类型?
以下是应该了解的五种常见的软件许可模式。四种是开源许可证的例子(允许你在一定程度上重用代码),还有一种不允许任何重用。
2.1 公共领域许可(Public Domain)
这是最宽泛的软件许可证类型。当软件处于公共领域时,任何人都可以不受任何限制地修改和使用。但在将其添加到自己的代码库之前,你应该始终确保它是安全的。这里要注意的是,没有明确授权的代码不会自动进入公共领域。这包括你在互联网上找到的代码片段。
2.2 允许性许可(Permissive)
允许性许可证也被称为 "Apache风格 "或 "BSD风格"。它们包含关于如何修改或重新分发软件的最低要求。这种类型的软件许可证是自由和开放源码软件中最流行的许可证。除了Apache License和BSD License之外,另一个常见的变体是MIT License。
2.3 LGPL
GNU Lesser General Public License允许你在软件中链接开源软件库。如果你只是简单地编译或链接一个LGPL授权的库与你自己的代码,你可以在任何你想要的许可证下发布你的应用程序,甚至是专有许可证。但如果你修改库或将其部分复制到你的代码中,你就必须在类似于LGPL的条款下发布你的应用程序。
2.4 限制性许可证(Copyleft)
Copyleft许可证也被称为互惠许可证或限制性许可证。最著名的复制许可或互惠许可的例子是GPL。这些许可证允许你修改被许可的代码,并在此基础上发布新的作品,只要你在相同的软件许可证下发布任何新作品或改编作品。例如,一个组件的许可证可能会说,该作品可以自由使用,并且只能为个人使用而发布。因此,您创建的任何衍生产品也将仅限于个人使用。衍生物是指你开发的包含该组件的任何新软件)。
这里的问题是,你的软件用户也有权利修改代码。因此,你必须公开你自己的源代码。但很多时候,公开你的源代码未必对你有利。
2.5 专有许可证
在所有类型的软件许可证中,这是限制性最强的。它背后的理念是保留所有权利。它一般用于不得修改或重新分发作品的专有软件。
3 列表对比
下表比较了每种许可证的各种特征,是基于七个主题或类别的每种许可证的条款和条件的一般指南。最近的工具,如欧盟委员会的Joinup Licensing Assistant,使基于40多个主题或类别的许可证选择和比较成为可能,并可访问其SPDX标识符和全文。下表列出了以下主题的权限和限制:
1.链接
许可的代码与根据不同许可证许可的代码的链接(例如,当代码作为一个库提供时)。
2.分发
向第三方分发代码
3.修改
被许可人对守则的修改。
4.专利授权
保护被许可人免受代码贡献者就其贡献提出的专利要求,保护贡献者免受被许可人提出的专利要求。
5.私人使用
对代码的修改是必须与社区共享还是可以私人使用(如公司内部使用)
6.分许可
修改后的代码是否可以根据不同的许可(如版权)获得许可,还是必须保留提供代码时的同一许可。
7. TM授权
被许可人使用与许可代码或其贡献者相关的商标。
许可
最新版本
发布时间
链接
分发
修改
专利授权
私人使用
分许可
TM授权
Academic Free License
Lawrence E. Rosen
3.0
2002
允许性
允许性
允许性
是
是
允许性
否
Affero General Public License
Affero Inc
2.0
2007
限制性
除GNU AGPL外,其余均为限制性
限制性
?
是
?
?
Apache License
Apache Software Foundation
2.0
2004
允许性
允许性
允许性
是
是
允许性
否
Apple Public Source License
Apple Computer
2.0
August 6, 2003
允许性
?
有限的
?
?
?
?
Artistic License
Larry Wall
2.0
2000
有限制
有限制
有限制
否
允许性
有限制
否
Beerware
Poul-Henning Kamp
42
1987
允许性
允许性
允许性
否
允许性
允许性
否
BSD License
Regents of the University of California
3.0
?
允许性
允许性
允许性
Manually
是
允许性
Manually
Boost Software License
?
1.0
August 17, 2003
允许性
?
允许性
?
?
?
?
Creative Commons Zero
Creative Commons
1.0
2009
公共领域
公共领域
公共领域
否
公共领域
公共领域
否
CC BY
Creative Commons
4.0
2002
允许性
允许性
允许性
否
是
允许性
否
CC BY-SA
Creative Commons
4.0
2002
限制性
限制性
限制性
否
是
限制性
否
CeCILL
CEA / CNRS / INRIA
2.1
June 21, 2013
允许性
允许性
允许性
否
允许性
有限制
否
Common Development and Distribution License
Sun Microsystems
1.0
December 1, 2004
允许性
?
有限的
?
?
?
?
Common Public License
IBM
1.0
May 2001
允许性
?
限制性
?
?
?
?
Cryptix General License
Cryptix Foundation
N/A
1995
允许性
允许性
允许性
Manually
是
?
Manually
Eclipse Public License
Eclipse Foundation
2.0
August 24, 2017
有限的
有限的
有限的
是
是
有限的
Manually
Educational Community License
Indiana University
1.0
2007
允许性
?
允许性
?
?
?
?
European Union Public Licence
European Commission
1.2
May 2017
允许性, according to EU law (Recitals 10 & 15 Directive 2009/24/EC)
限制性, ,有明确的兼容性列表
限制性, ,有明确的兼容性列表
是
是
限制性, ,有明确的兼容性列表
否
FreeBSD
The FreeBSD project
N/A
April 1999
允许性
允许性
允许性
Manually
允许性
允许性
Manually
GNU Affero General Public License
Free Software Foundation
3.0
2007
仅限GNU GPLv3
限制性
限制性
是
否 network usage
限制性
是
GNU General Public License
Free Software Foundation
3.0
June 2007
仅与GPLv3兼容
限制性
限制性
是
是
限制性
是
GNU Lesser General Public License
Free Software Foundation
3.0
June 2007
有限制
限制性
限制性
是
是
限制性
是
IBM Public License
IBM
1.0
August 1999
限制性
?
限制性
?
?
?
?
ISC license
Internet Systems Consortium
N/A
June 2003
允许性
允许性
允许性
Manually
允许性
允许性
Manually
LaTeX Project Public License
LaTeX project
1.3c
?
允许性
?
允许性
?
?
?
?
Microsoft Public License
Microsoft
N/A
?
允许性
允许性
允许性
否
允许性
?
否
MIT license / X11 license
MIT
N/A
1988
允许性
允许性
允许性
Manually
是
允许性
Manually
Mozilla Public License
Mozilla Foundation
2.0
January 3, 2012
允许性
限制性
限制性
是
是
限制性
否
Netscape Public License
Netscape
1.1
?
有限的
?
有限的
?
?
?
?
Open Software License
Lawrence Rosen
3.0
2005
允许性
限制性
限制性
是
是
限制性
?
OpenSSL license
OpenSSL Project
N/A
?
允许性
?
允许性
?
?
?
?
PHP License
PHP Group
3.01
2019
有限制
有限制
有限制
是
是
有限制
Manually
Python Software Foundation License
Python Software Foundation
2
?
允许性
?
允许性
?
?
?
?
Q Public License
Trolltech
?
?
有限的
?
有限的
?
?
?
?
Sleepycat License
Sleepycat Software
N/A
1996
允许性
有限制
允许性
否
是
否
否
Unlicense
unlicense.org
1
December 2010
允许性/公共领域
允许性/公共领域
允许性/公共领域
?
允许性/公共领域
允许性/公共领域
?
W3C Software notice and License
W3C
20021231
December 31, 2002
允许性
?
允许性
?
?
?
?
Do What The Fuck You Want To Public License (WTFPL)
Banlu Kemiyatorn, Sam Hocevar
2
December 2004
允许性/公共领域
允许性/公共领域
允许性/公共领域
否
是
是
否
XCore Open Source License
also separate "Hardware License Agreement"
XMOS
?
February 2011
允许性
允许性
允许性
Manually
是
允许性
?
XFree86 1.1 License
The XFree86 Project, Inc
?
?
允许性
?
允许性
?
?
?
?
zlib/libpng license
Jean-Loup Gailly and Mark Adler
?
?
允许性
?
允许性
?
?
?
?
4 参考
https://opensource.org/licenses
https://www.synopsys.com/blogs/software-security/5-types-of-software-licenses-you-need-to-understand/
https://choosealicense.com/
https://resources.whitesourcesoftware.com/blog-whitesource/open-source-licenses-explained
https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licences
软件开发
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。