xref: /OK3568_Linux_fs/kernel/Documentation/translations/zh_CN/process/license-rules.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun.. include:: ../disclaimer-zh_CN.rst
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun:Original: :ref:`Documentation/process/license-rules.rst <kernel_licensing>`
6*4882a593Smuzhiyun:Translator: Alex Shi <alex.shi@linux.alibaba.com>
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun.. _cn_kernel_licensing:
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunLinux内核许可规则
11*4882a593Smuzhiyun=================
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunLinux内核根据LICENSES/preferred/GPL-2.0中提供的GNU通用公共许可证版本2
14*4882a593Smuzhiyun(GPL-2.0)的条款提供,并在LICENSES/exceptions/Linux-syscall-note中显式
15*4882a593Smuzhiyun描述了例外的系统调用,如COPYING文件中所述。
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun此文档文件提供了如何对每个源文件进行注释以使其许可证清晰明确的说明。
18*4882a593Smuzhiyun它不会取代内核的许可证。
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun内核源代码作为一个整体适用于COPYING文件中描述的许可证,但是单个源文件可以
21*4882a593Smuzhiyun具有不同的与GPL-20兼容的许可证::
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun    GPL-1.0+ : GNU通用公共许可证v1.0或更高版本
24*4882a593Smuzhiyun    GPL-2.0+ : GNU通用公共许可证v2.0或更高版本
25*4882a593Smuzhiyun    LGPL-2.0 : 仅限GNU库通用公共许可证v2
26*4882a593Smuzhiyun    LGPL-2.0+: GNU 库通用公共许可证v2或更高版本
27*4882a593Smuzhiyun    LGPL-2.1 : 仅限GNU宽通用公共许可证v2.1
28*4882a593Smuzhiyun    LGPL-2.1+: GNU宽通用公共许可证v2.1或更高版本
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun除此之外,个人文件可以在双重许可下提供,例如一个兼容的GPL变体,或者BSD,
31*4882a593SmuzhiyunMIT等许可。
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun用户空间API(UAPI)头文件描述了用户空间程序与内核的接口,这是一种特殊情况。
34*4882a593Smuzhiyun根据内核COPYING文件中的注释,syscall接口是一个明确的边界,它不会将GPL要求
35*4882a593Smuzhiyun扩展到任何使用它与内核通信的软件。由于UAPI头文件必须包含在创建在Linux内核
36*4882a593Smuzhiyun上运行的可执行文件的任何源文件中,因此此例外必须记录在特别的许可证表述中。
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun表达源文件许可证的常用方法是将匹配的样板文本添加到文件的顶部注释中。由于
39*4882a593Smuzhiyun格式,拼写错误等,这些“样板”很难通过那些在上下文中使用的验证许可证合规性
40*4882a593Smuzhiyun的工具。
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun样板文本的替代方法是在每个源文件中使用软件包数据交换(SPDX)许可证标识符。
43*4882a593SmuzhiyunSPDX许可证标识符是机器可解析的,并且是用于提供文件内容的许可证的精确缩写。
44*4882a593SmuzhiyunSPDX许可证标识符由Linux 基金会的SPDX 工作组管理,并得到了整个行业,工具
45*4882a593Smuzhiyun供应商和法律团队的合作伙伴的一致同意。有关详细信息,请参阅
46*4882a593Smuzhiyunhttps://spdx.org/
47*4882a593Smuzhiyun
48*4882a593SmuzhiyunLinux内核需要所有源文件中的精确SPDX标识符。内核中使用的有效标识符在
49*4882a593Smuzhiyun`许可标识符`_ 一节中进行了解释,并且已可以在
50*4882a593Smuzhiyunhttps://spdx.org/licenses/ 上的官方SPDX许可证列表中检索,并附带许可证
51*4882a593Smuzhiyun文本。
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun许可标识符语法
54*4882a593Smuzhiyun--------------
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun1.安置:
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun   内核文件中的SPDX许可证标识符应添加到可包含注释的文件中的第一行。对于大多
59*4882a593Smuzhiyun   数文件,这是第一行,除了那些在第一行中需要'#!PATH_TO_INTERPRETER'的脚本。
60*4882a593Smuzhiyun   对于这些脚本,SPDX标识符进入第二行。
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun|
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun2. 风格:
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun   SPDX许可证标识符以注释的形式添加。注释样式取决于文件类型::
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun      C source:	// SPDX-License-Identifier: <SPDX License Expression>
69*4882a593Smuzhiyun      C header:	/* SPDX-License-Identifier: <SPDX License Expression> */
70*4882a593Smuzhiyun      ASM:	/* SPDX-License-Identifier: <SPDX License Expression> */
71*4882a593Smuzhiyun      scripts:	# SPDX-License-Identifier: <SPDX License Expression>
72*4882a593Smuzhiyun      .rst:	.. SPDX-License-Identifier: <SPDX License Expression>
73*4882a593Smuzhiyun      .dts{i}:	// SPDX-License-Identifier: <SPDX License Expression>
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun   如果特定工具无法处理标准注释样式,则应使用工具接受的相应注释机制。这是在
76*4882a593Smuzhiyun   C 头文件中使用“/\*\*/”样式注释的原因。过去在使用生成的.lds文件中观察到
77*4882a593Smuzhiyun   构建被破坏,其中'ld'无法解析C++注释。现在已经解决了这个问题,但仍然有较
78*4882a593Smuzhiyun   旧的汇编程序工具无法处理C++样式的注释。
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun|
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun3. 句法:
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun   <SPDX许可证表达式>是SPDX许可证列表中的SPDX短格式许可证标识符,或者在许可
85*4882a593Smuzhiyun   证例外适用时由“WITH”分隔的两个SPDX短格式许可证标识符的组合。当应用多个许
86*4882a593Smuzhiyun   可证时,表达式由分隔子表达式的关键字“AND”,“OR”组成,并由“(”,“)”包围。
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun   带有“或更高”选项的[L]GPL等许可证的许可证标识符通过使用“+”来表示“或更高”
89*4882a593Smuzhiyun   选项来构建。::
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0+
92*4882a593Smuzhiyun      // SPDX-License-Identifier: LGPL-2.1+
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun   当需要修正的许可证时,应使用WITH。 例如,linux内核UAPI文件使用表达式::
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
97*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun   其它在内核中使用WITH例外的事例如下::
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0 WITH mif-exception
102*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun   例外只能与特定的许可证标识符一起使用。有效的许可证标识符列在异常文本文件
105*4882a593Smuzhiyun   的标记中。有关详细信息,请参阅 `许可标识符`_ 一章中的 `例外`_ 。
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun   如果文件是双重许可且只选择一个许可证,则应使用OR。例如,一些dtsi文件在双
108*4882a593Smuzhiyun   许可下可用::
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun   内核中双许可文件中许可表达式的示例::
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0 OR MIT
115*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
116*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0
117*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1
118*4882a593Smuzhiyun      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT
119*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun   如果文件具有多个许可证,其条款全部适用于使用该文件,则应使用AND。例如,
122*4882a593Smuzhiyun   如果代码是从另一个项目继承的,并且已经授予了将其放入内核的权限,但原始
123*4882a593Smuzhiyun   许可条款需要保持有效::
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun   另一个需要遵守两套许可条款的例子是::
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun      // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun许可标识符
132*4882a593Smuzhiyun----------
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun当前使用的许可证以及添加到内核的代码许可证可以分解为:
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun1. _`优先许可`:
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun   应尽可能使用这些许可证,因为它们已知完全兼容并广泛使用。这些许可证在内核
139*4882a593Smuzhiyun   目录::
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun      LICENSES/preferred/
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun   此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识
144*4882a593Smuzhiyun   符相同,后者应用于源文件中的许可证。
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun   例如::
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun      LICENSES/preferred/GPL-2.0
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun   包含GPLv2许可证文本和所需的元标签::
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun      LICENSES/preferred/MIT
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun   包含MIT许可证文本和所需的元标记
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun   _`元标记`:
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun   许可证文件中必须包含以下元标记:
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun   - Valid-License-Identifier:
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun     一行或多行, 声明那些许可标识符在项目内有效, 以引用此特定许可的文本。通
163*4882a593Smuzhiyun     常这是一个有效的标识符,但是例如对于带有'或更高'选项的许可证,两个标识
164*4882a593Smuzhiyun     符都有效。
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun   - SPDX-URL:
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun     SPDX页面的URL,其中包含与许可证相关的其他信息.
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun   - Usage-Guidance:
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun     使用建议的自由格式文本。该文本必须包含SPDX许可证标识符的正确示例,因为
173*4882a593Smuzhiyun     它们应根据 `许可标识符语法`_ 指南放入源文件中。
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun   - License-Text:
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun     此标记之后的所有文本都被视为原始许可文本
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun   文件格式示例::
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun      Valid-License-Identifier: GPL-2.0
182*4882a593Smuzhiyun      Valid-License-Identifier: GPL-2.0+
183*4882a593Smuzhiyun      SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
184*4882a593Smuzhiyun      Usage-Guide:
185*4882a593Smuzhiyun        To use this license in source code, put one of the following SPDX
186*4882a593Smuzhiyun	tag/value pairs into a comment according to the placement
187*4882a593Smuzhiyun	guidelines in the licensing rules documentation.
188*4882a593Smuzhiyun	For 'GNU General Public License (GPL) version 2 only' use:
189*4882a593Smuzhiyun	  SPDX-License-Identifier: GPL-2.0
190*4882a593Smuzhiyun	For 'GNU General Public License (GPL) version 2 or any later version' use:
191*4882a593Smuzhiyun	  SPDX-License-Identifier: GPL-2.0+
192*4882a593Smuzhiyun      License-Text:
193*4882a593Smuzhiyun        Full license text
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun   ::
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun      SPDX-License-Identifier: MIT
198*4882a593Smuzhiyun      SPDX-URL: https://spdx.org/licenses/MIT.html
199*4882a593Smuzhiyun      Usage-Guide:
200*4882a593Smuzhiyun	To use this license in source code, put the following SPDX
201*4882a593Smuzhiyun	tag/value pair into a comment according to the placement
202*4882a593Smuzhiyun	guidelines in the licensing rules documentation.
203*4882a593Smuzhiyun	  SPDX-License-Identifier: MIT
204*4882a593Smuzhiyun      License-Text:
205*4882a593Smuzhiyun        Full license text
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun|
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun2. 不推荐的许可证:
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun   这些许可证只应用于现有代码或从其他项目导入代码。这些许可证在内核目录::
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun      LICENSES/other/
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun   此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识
216*4882a593Smuzhiyun   符相同,后者应用于源文件中的许可证。
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun   例如::
219*4882a593Smuzhiyun
220*4882a593Smuzhiyun      LICENSES/other/ISC
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun   包含国际系统联合许可文本和所需的元标签::
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun      LICENSES/other/ZLib
225*4882a593Smuzhiyun
226*4882a593Smuzhiyun   包含ZLIB许可文本和所需的元标签.
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun   元标签:
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun   “其他”许可证的元标签要求与 `优先许可`_ 的要求相同。
231*4882a593Smuzhiyun
232*4882a593Smuzhiyun   文件格式示例::
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun      Valid-License-Identifier: ISC
235*4882a593Smuzhiyun      SPDX-URL: https://spdx.org/licenses/ISC.html
236*4882a593Smuzhiyun      Usage-Guide:
237*4882a593Smuzhiyun        Usage of this license in the kernel for new code is discouraged
238*4882a593Smuzhiyun	and it should solely be used for importing code from an already
239*4882a593Smuzhiyun	existing project.
240*4882a593Smuzhiyun        To use this license in source code, put the following SPDX
241*4882a593Smuzhiyun	tag/value pair into a comment according to the placement
242*4882a593Smuzhiyun	guidelines in the licensing rules documentation.
243*4882a593Smuzhiyun	  SPDX-License-Identifier: ISC
244*4882a593Smuzhiyun      License-Text:
245*4882a593Smuzhiyun        Full license text
246*4882a593Smuzhiyun
247*4882a593Smuzhiyun|
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun3. _`例外`:
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun   某些许可证可以修改,并允许原始许可证不具有的某些例外权利。这些例外在
252*4882a593Smuzhiyun   内核目录::
253*4882a593Smuzhiyun
254*4882a593Smuzhiyun      LICENSES/exceptions/
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun   此目录中的文件包含完整的例外文本和所需的 `例外元标记`_ 。
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun   例如::
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun      LICENSES/exceptions/Linux-syscall-note
261*4882a593Smuzhiyun
262*4882a593Smuzhiyun   包含Linux内核的COPYING文件中记录的Linux系统调用例外,该文件用于UAPI
263*4882a593Smuzhiyun   头文件。例如::
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun      LICENSES/exceptions/GCC-exception-2.0
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun   包含GCC'链接例外',它允许独立于其许可证的任何二进制文件与标记有此例外的
268*4882a593Smuzhiyun   文件的编译版本链接。这是从GPL不兼容源代码创建可运行的可执行文件所必需的。
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun   _`例外元标记`:
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun   以下元标记必须在例外文件中可用:
273*4882a593Smuzhiyun
274*4882a593Smuzhiyun   - SPDX-Exception-Identifier:
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun     一个可与SPDX许可证标识符一起使用的例外标识符。
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun   - SPDX-URL:
279*4882a593Smuzhiyun
280*4882a593Smuzhiyun     SPDX页面的URL,其中包含与例外相关的其他信息。
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun   - SPDX-Licenses:
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun     以逗号分隔的例外可用的SPDX许可证标识符列表。
285*4882a593Smuzhiyun
286*4882a593Smuzhiyun   - Usage-Guidance:
287*4882a593Smuzhiyun
288*4882a593Smuzhiyun     使用建议的自由格式文本。必须在文本后面加上SPDX许可证标识符的正确示例,
289*4882a593Smuzhiyun     因为它们应根据 `许可标识符语法`_ 指南放入源文件中。
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun   - Exception-Text:
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun     此标记之后的所有文本都被视为原始异常文本
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun   文件格式示例::
296*4882a593Smuzhiyun
297*4882a593Smuzhiyun      SPDX-Exception-Identifier: Linux-syscall-note
298*4882a593Smuzhiyun      SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
299*4882a593Smuzhiyun      SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
300*4882a593Smuzhiyun      Usage-Guidance:
301*4882a593Smuzhiyun        This exception is used together with one of the above SPDX-Licenses
302*4882a593Smuzhiyun	to mark user-space API (uapi) header files so they can be included
303*4882a593Smuzhiyun	into non GPL compliant user-space application code.
304*4882a593Smuzhiyun        To use this exception add it with the keyword WITH to one of the
305*4882a593Smuzhiyun	identifiers in the SPDX-Licenses tag:
306*4882a593Smuzhiyun	  SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
307*4882a593Smuzhiyun      Exception-Text:
308*4882a593Smuzhiyun        Full exception text
309*4882a593Smuzhiyun
310*4882a593Smuzhiyun   ::
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun      SPDX-Exception-Identifier: GCC-exception-2.0
313*4882a593Smuzhiyun      SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html
314*4882a593Smuzhiyun      SPDX-Licenses: GPL-2.0, GPL-2.0+
315*4882a593Smuzhiyun      Usage-Guidance:
316*4882a593Smuzhiyun        The "GCC Runtime Library exception 2.0" is used together with one
317*4882a593Smuzhiyun	of the above SPDX-Licenses for code imported from the GCC runtime
318*4882a593Smuzhiyun	library.
319*4882a593Smuzhiyun        To use this exception add it with the keyword WITH to one of the
320*4882a593Smuzhiyun	identifiers in the SPDX-Licenses tag:
321*4882a593Smuzhiyun	  SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0
322*4882a593Smuzhiyun      Exception-Text:
323*4882a593Smuzhiyun        Full exception text
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun
326*4882a593Smuzhiyun所有SPDX许可证标识符和例外都必须在LICENSES子目录中具有相应的文件。这是允许
327*4882a593Smuzhiyun工具验证(例如checkpatch.pl)以及准备好从源读取和提取许可证所必需的, 这是
328*4882a593Smuzhiyun各种FOSS组织推荐的,例如 `FSFE REUSE initiative <https://reuse.software/>`_.
329*4882a593Smuzhiyun
330*4882a593Smuzhiyun_`模块许可`
331*4882a593Smuzhiyun-----------------
332*4882a593Smuzhiyun
333*4882a593Smuzhiyun   可加载内核模块还需要MODULE_LICENSE()标记。此标记既不替代正确的源代码
334*4882a593Smuzhiyun   许可证信息(SPDX-License-Identifier),也不以任何方式表示或确定提供模块
335*4882a593Smuzhiyun   源代码的确切许可证。
336*4882a593Smuzhiyun
337*4882a593Smuzhiyun   此标记的唯一目的是提供足够的信息,该模块是否是自由软件或者是内核模块加
338*4882a593Smuzhiyun   载器和用户空间工具的专有模块。
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun   MODULE_LICENSE()的有效许可证字符串是:
341*4882a593Smuzhiyun
342*4882a593Smuzhiyun    ============================= =============================================
343*4882a593Smuzhiyun    "GPL"			  模块是根据GPL版本2许可的。这并不表示仅限于
344*4882a593Smuzhiyun                                  GPL-2.0或GPL-2.0或更高版本之间的任何区别。
345*4882a593Smuzhiyun                                  最正确许可证信息只能通过相应源文件中的许可证
346*4882a593Smuzhiyun                                  信息来确定
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun    "GPL v2"			  和"GPL"相同,它的存在是因为历史原因。
349*4882a593Smuzhiyun
350*4882a593Smuzhiyun    "GPL and additional rights"   表示模块源在GPL v2变体和MIT许可下双重许可的
351*4882a593Smuzhiyun                                  历史变体。请不要在新代码中使用。
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun    "Dual MIT/GPL"		  表达该模块在GPL v2变体或MIT许可证选择下双重
354*4882a593Smuzhiyun                                  许可的正确方式。
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun    "Dual BSD/GPL"		  该模块根据GPL v2变体或BSD许可证选择进行双重
357*4882a593Smuzhiyun                                  许可。 BSD许可证的确切变体只能通过相应源文件
358*4882a593Smuzhiyun                                  中的许可证信息来确定。
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun    "Dual MPL/GPL"		  该模块根据GPL v2变体或Mozilla Public License
361*4882a593Smuzhiyun                                  (MPL)选项进行双重许可。 MPL许可证的确切变体
362*4882a593Smuzhiyun                                  只能通过相应的源文件中的许可证信息来确定。
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun    "Proprietary"		  该模块属于专有许可。此字符串仅用于专有的第三
365*4882a593Smuzhiyun                                  方模块,不能用于在内核树中具有源代码的模块。
366*4882a593Smuzhiyun                                  以这种方式标记的模块在加载时会使用'P'标记污
367*4882a593Smuzhiyun                                  染内核,并且内核模块加载器拒绝将这些模块链接
368*4882a593Smuzhiyun                                  到使用EXPORT_SYMBOL_GPL()导出的符号。
369*4882a593Smuzhiyun    ============================= =============================================
370*4882a593Smuzhiyun
371