Lines Matching +full:in +full:- +full:kernel
7 -----------------
9 The rest of this section covers the scope of the kernel development process
11 encounter there. There are a great many reasons why kernel code should be
12 merged into the official ("mainline") kernel, including automatic
13 availability to users, community support in many forms, and the ability to
14 influence the direction of kernel development. Code contributed to the
15 Linux kernel must be made available under a GPL-compatible license.
17 :ref:`development_process` introduces the development process, the kernel
18 release cycle, and the mechanics of the merge window. The various phases in
21 with kernel development are encouraged to track down and fix bugs as an
24 :ref:`development_early_stage` covers early-stage project planning, with an
30 which can help to ensure that kernel patches are correct.
35 Following the advice in this section should help to ensure the best
48 for more information on kernel development.
51 ---------------------------
53 The Linux kernel, at over 8 million lines of code and well over 1000
55 software projects in existence. Since its humble beginning in 1991, this
56 kernel has evolved into a best-of-breed operating system component which
57 runs on pocket-sized digital music players, desktop PCs, the largest
58 supercomputers in existence, and all types of systems in between. It is a
61 With the growth of Linux has come an increase in the number of developers
62 (and companies) wishing to participate in its development. Hardware
65 use Linux as a component in an integrated product, want Linux to be as
66 capable and well-suited to the task at hand as possible. Distributors and
68 interest in the capabilities, performance, and reliability of the Linux
69 kernel. And end users, too, will often wish to change Linux to make it
76 process. But, if anything, the kernel is even more open than most other
77 free software projects. A typical three-month kernel development cycle can
81 Working with the kernel development community is not especially hard. But,
83 difficulties when trying to do kernel work. The kernel community has
85 smoothly (and produce a high-quality product) in an environment where
87 surprising that Linux kernel development process differs greatly from
90 The kernel's development process may come across as strange and
92 experience behind it. A developer who does not understand the kernel
94 have a frustrating experience in store. The development community, while
100 involved in reading it will be repaid in short order. The development
101 community is always in need of developers who will help to make the kernel
102 better; the following text should help you - or those who work for you -
106 -------
118 ------------------------------------------------
121 learning how to work with the kernel community and get their code into the
122 mainline kernel (the "mainline" being the kernel maintained by Linus
123 Torvalds and used as a base by Linux distributors). In the short term,
128 As a way of illustrating the costs of out-of-tree code, here are a few
129 relevant aspects of the kernel development process; most of these will be
130 discussed in greater detail later in this document. Consider:
132 - Code which has been merged into the mainline kernel is available to all
139 - While kernel developers strive to maintain a stable interface to user
140 space, the internal kernel API is in constant flux. The lack of a stable
142 improvements to be made at any time and results in higher-quality code.
143 But one result of that policy is that any out-of-tree code requires
145 out-of-tree code requires significant amounts of work just to keep that
148 Code which is in the mainline, instead, does not require this work as the
154 - Beyond that, code which is in the kernel will often be improved by other
158 - Kernel code is subjected to review, both before and after merging into
160 this review process invariably finds ways in which the code can be
162 especially true for code which has been developed in a closed
164 developers. Out-of-tree code is lower-quality code.
166 - Participation in the development process is your way to influence the
167 direction of kernel development. Users who complain from the sidelines
168 are heard, but active developers have a stronger voice - and the ability
169 to implement changes which make the kernel work better for their needs.
171 - When code is maintained separately, the possibility that a third party
174 harder - to the point of impossibility. Then you will be faced with the
177 users over to the in-tree version.
179 - Contribution of code is the fundamental action which makes the whole
181 the kernel and provide capabilities and examples which are of use to
182 other kernel developers. If you have developed code for Linux (or are
183 thinking about doing so), you clearly have an interest in the continued
187 All of the reasoning above applies to any out-of-tree kernel code,
188 including code which is distributed in proprietary, binary-only form.
190 before considering any sort of binary-only kernel code distribution. These
193 - The legal issues around the distribution of proprietary kernel modules
194 are cloudy at best; quite a few kernel copyright holders believe that
195 most binary-only modules are derived products of the kernel and that, as
198 lawyer, and nothing in this document can possibly be considered to be
199 legal advice. The true legal status of closed-source modules can only be
203 - Binary modules greatly increase the difficulty of debugging kernel
204 problems, to the point that most kernel developers will not even try. So
205 the distribution of binary-only modules will make it harder for your
208 - Support is also harder for distributors of binary-only modules, who must
209 provide a version of the module for every distribution and every kernel
213 kernel.
215 - Everything that was said above about code review applies doubly to
216 closed-source code. Since this code is not available at all, it cannot
220 Makers of embedded systems, in particular, may be tempted to disregard much
221 of what has been said in this section in the belief that they are shipping
222 a self-contained product which uses a frozen kernel version and requires no
227 point, vendors whose code is in the mainline and well maintained will be
231 ---------
233 Code is contributed to the Linux kernel under a number of licenses, but all
235 (GPLv2), which is the license covering the kernel distribution as a whole.
236 In practice, that means that all code contributions are covered either by
238 versions of the GPL) or the three-clause BSD license. Any contributions
240 kernel.
243 to the kernel. All code merged into the mainline kernel retains its
244 original ownership; as a result, the kernel now has thousands of owners.
247 the licensing of the kernel is doomed to almost certain failure. There are
249 be obtained (or their code removed from the kernel). So, in particular,
250 there is no prospect of a migration to version 3 of the GPL in the
253 It is imperative that all code contributed to the kernel be legitimately
257 kernel under the GPL. Code which has not been licensed as free software by
258 its owner, or which risks creating copyright-related problems for the
259 kernel (such as code which derives from reverse-engineering efforts lacking
262 Questions about copyright-related issues are common on Linux development
264 answers, but one should bear in mind that the people answering those