Linux内核开源许可证信息及其标注(上)_linux内核许可证-程序员宅基地

技术标签: linux  开源许可  

   Linux内核的许可证规则及其标注随着版本的升级越来越规范,也越来越要求方便工具进行检查。我列举了linux内核4.16之前的某一版、4.16版和最新的5.18版内核许可证信息,对Linux内核的许可证规则及其标注进行说明。
一、linux内核4.16之前的开源许可证信息   
    在linux内核4.14根目录下的COPYING文件中列出了系统调用例外(system calls exception)和GPLv2。
  NOTE! This copyright does *not* cover user programs that use kernel
 services by normal system calls - this is merely considered normal use
 of the kernel, and does *not* fall under the heading of "derived work".
 Also note that the GPL below is copyrighted by the Free Software
 Foundation, but the instance of code that it refers to (the Linux
 kernel) is copyrighted by me and others who actually wrote it.

 Also note that the only valid version of the GPL as far as the kernel
 is concerned is _this_ particular version of the license (ie v2, not
 v2.2 or v3.x or whatever), unless explicitly otherwise stated.

			Linus Torvalds

----------------------------------------

		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

			   

    典型的文件级许可证声明,例如linux-4.14.275\ipc\mq_sysctl.c文件中:

/*
 *  Copyright (C) 2007 IBM Corporation
 *
 *  Author: Cedric Le Goater <[email protected]>
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public License as
 *  published by the Free Software Foundation, version 2 of the
 *  License.
 */

#include <linux/nsproxy.h>
#include <linux/ipc_namespace.h>
#include <linux/sysctl.h>

 二、从linux内核4.16开始的开源许可证

    linux内核4.16根目录下的COPYING文件与4.14相同文件内容保持一致,但从linux内核4.16开始根目录下开始有/LICENSES文件夹,在文件夹的许可证中除许可证原文,还说明了如何使用spdx标准标注此许可证。
    以linux内核4.16为例下面有prefered、exceptions和other三个文件夹,更详细的规定了linux内核的许可及其标注规则。

1、prefered文件夹
   在prefered的文件夹中有GPL-2.0、LGPL2.0、LGPL2.1、MIT、BSD-2-Clause、BSD-3-Clause、BSD-3-Clause-Clear7个开源许可证文件,在每个许可证文件最开始,列出如何在linux源代码中标注许可证的使用指导,例如GPL-2.0文件中

 2、exception文件夹

    在exception文件夹中有Linux-syscall-note文件

       此文件相对于4.16以前的linux系统调用例外多出了使用指导(Usage-Guide),特别说明此例外许可用于标注用户空间API头文件,以便非GPL兼容的用户空间应用代码包含这些API头文件。而以前linux系统调用例外许可特别说明了例外的系统调用不包括heading(文件头、头文件)的衍生作品。

3、other文件夹

在other文件夹中还存在两个文件:GPL-1.0和MPL-1.1,为不建议的许可证。

GPL-1.0文件指出新的代码不能再使用该许可证,对已存在的代码需要有“or any later version”以便兼容目前项目的GPLv2许可证。

​下篇请参见Linux内核开源许可证信息及其标注(下)_yupengipr的博客-程序员宅基地

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/nhdy1977/article/details/124004385

智能推荐

ClionIDE通过指定编译器编译_clion设置编译器路径-程序员宅基地

文章浏览阅读1.4k次。通过clion指定mingw或VS对代码进行编译。_clion设置编译器路径

STM32F103ZET6【标准库函数开发】------05.1 通用定时器TIM3输出四路PWM,同频率不同占空比_stm32f103zet6完全重映射代码-程序员宅基地

文章浏览阅读862次,点赞3次,收藏21次。通用定时器有4个,TIM2,TIM3,TIM4,TIM5TIM1和TIM8挂载APB2下面;TIM2,TIM3,TIM4,TIM5挂载APB1下面。以TIM3为例无映射:时钟使能PA PB TIM3部分重映射:时钟使能PB TIM3完全重映射:时钟使能PC TIM3_stm32f103zet6完全重映射代码

6G需要1000亿个基站;5G套餐资费年内或降至50至60元;国内首款L4级5G无人驾驶汽车量产...-程序员宅基地

文章浏览阅读1.7k次。目录1、国内首款L4级5G无人驾驶汽车武汉量产2、6G需要1000亿个基站,可能跟手机一样大小3、业内称5G套餐资费年内或降至50至60元4、5月5G手机出货1564.3万部,占比近五成..._6g需要基站吗

C# 加签 验签 公钥 私钥 RSA数字签名_c# rsa pkcs8 生成数字签名-程序员宅基地

文章浏览阅读4.4k次。* RSA加密解密:私钥解密,公钥加密。* RSA数字签名-俗称加签验签:私钥加签,公钥验签。java的公钥私钥是一串字符串,.net 公钥私钥是一串XML格式字符串,两者格式不是一致的,需要转换一下才能使用,具体请参考JAVA和NET RSA密钥格式相互转换(公钥,私钥)使用的命名空间:using System.Security.Cryptography;usin..._c# rsa pkcs8 生成数字签名

【ARTS】01_33_左耳听风-201900624~201900630-程序员宅基地

文章浏览阅读124次。ARTS:Algrothm: leetcode算法题目Review: 阅读并且点评一篇英文技术文章Tip/Techni: 学习一个技术技巧Share: 分享一篇有观点和思考的技术文章Algorithm【leetcode】67. 二进制求和1)problem给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a =...

将用户添加到sudoers_在Ubuntu系统中将用户添加到sudoers文件的说明-程序员宅基地

文章浏览阅读147次。如果你需要在基于Debian的发行版中(Ubuntu或Linux Mint)将用户添加到sudoers,以下介绍达到此目的的方法,总的来说,和在CentOS系统中将用户添加到Sudoers文件的方法大致一样,只有某些参数存在异同,你也可以参考着操作,以下为你说明。将用户添加到sudo组及将用户添加到sudoers文件的说明1、将用户添加到sudo组在Ubuntu或Linux Mint上,向用户授予...

随便推点

ACProtect2.0脱壳-程序员宅基地

文章浏览阅读378次。这上以前加入黑手安全网上做的教程,也搬过来吧目标程序:红盟(内部版)TNT社工辅助.exe所加的壳:ACProtect 2.00 - RISCO Software Inc.首先忽略所有异常,隐藏下od脱壳步骤:1.程序附加(程序附加后会停在系统的领空)代码:7C92120F C3 RETN7C921210 8BFF MOV EDI,EDI7C921212 > CC INT3..._acprotect 教程

下垂控制实现混合储能功率分配控制,下垂电流均衡控制,母线电压补偿_蓄电池下垂控制-程序员宅基地

文章浏览阅读174次。混合储能功率分配,下垂控制,功率均衡,母线电压补偿_蓄电池下垂控制

谈谈UVM中事务级建模(TLM)的uvm_tlm_fifo-程序员宅基地

文章浏览阅读1.4k次。在前面文章的producer和consumer示例中,只存在一个进程。producer调用put时执行了consumer中的put方法,consumer调用get时执行了producer..._uvm_tlm_analysis_fifo默认深度

如何在Ubuntu中安装libevent库_ubuntu 安装libevent-程序员宅基地

文章浏览阅读542次。在当前目录下:tar -zxvf +自己下载的安装包名字,我的是:tar -zxvf libevent-2.1.12-stable.tar.gz。那就使用这个命令:sudo apt-get install libssl-dev 安装openssl。在这个目录下的终端输入:./configure --prefix=/usr。安装完成后继续输入:./configure --prefix=/usr。如果这个命令下面输出一大堆东西就代表安装成功,啥也没输出代表安装失败。我下载的是这个压缩包。_ubuntu 安装libevent

键盘ascii码表 linux,ASCII码表【美国信息交换标准代码】-程序员宅基地

文章浏览阅读434次。1英文缩写及全称缩写:ASCII英文全称:American Standard Code for Information Interchange2简介美国信息交换标准代码是一种用于信息交换的美国标准代码。7位 字符集广泛用于代表标准美国键盘上的字符或符号。通过将这些 字符使用的值标准化,ASCII允许计算机和计算机程序交换信息。ASCII 字符集是与ANSI字符集中的前面128个(0-127)字符相..._linux键盘ascii码

Could not resolve all files for configuration ‘:app:debugCompileClasspath‘.解决方案_> could not resolve all files for configuration ':-程序员宅基地

文章浏览阅读2k次。Could not resolve all files for configuration ':app:debugCompileClasspath'.解决方案_> could not resolve all files for configuration ':debugcompileclasspath'. >