Lines Matching full:of
9 The rest of this section covers the scope of the kernel development process
10 and the kinds of frustrations that developers and their employers can
14 influence the direction of kernel development. Code contributed to the
18 release cycle, and the mechanics of the merge window. The various phases in
20 discussion of tools and mailing lists. Developers wanting to get started
29 patches are covered, and there is an introduction to some of the tools
32 :ref:`development_posting` talks about the process of posting patches for
40 of the development process; this section offers a number of tips on how to
44 :ref:`development_advancedtopics` introduces a couple of "advanced" topics:
53 The Linux kernel, at over 8 million lines of code and well over 1000
54 contributors to each release, is one of the largest and most active free
56 kernel has evolved into a best-of-breed operating system component which
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
68 interest in the capabilities, performance, and reliability of the Linux
72 One of the most compelling features of Linux is that it is accessible to
74 influence the direction of its development. Proprietary products cannot
75 offer this kind of openness, which is a characteristic of the free software
84 evolved its own distinct ways of operating which allow it to function
86 thousands of lines of code are being changed every day. So it is not
99 frustrating experience. There is a lot of material here, but the effort
101 community is always in need of developers who will help to make the kernel
115 Amanda McPherson, who saw the value of this effort and made it all happen.
117 The importance of getting code into the mainline
125 just keep the code separate and support users directly. The truth of the
126 matter is that keeping code separate ("out of tree") is a false economy.
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
135 of supporting multiple versions of multiple distributions; it all just
137 mainline solves a large number of distribution and support problems.
140 space, the internal kernel API is in constant flux. The lack of a stable
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
149 result of a simple rule requiring any developer who makes an API change
150 to also fix any code that breaks as the result of that change. So code
164 developers. Out-of-tree code is lower-quality code.
167 direction of kernel development. Users who complain from the sidelines
172 will contribute a different implementation of a similar feature always
174 harder - to the point of impossibility. Then you will be faced with the
175 unpleasant alternatives of either (1) maintaining a nonstandard feature
176 out of tree indefinitely, or (2) abandoning your code and migrating your
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
184 success of this platform; contributing code is one of the best ways to
187 All of the reasoning above applies to any out-of-tree kernel code,
190 before considering any sort of binary-only kernel code distribution. These
193 - The legal issues around the distribution of proprietary kernel modules
195 most binary-only modules are derived products of the kernel and that, as
196 a result, their distribution is a violation of the GNU General Public
199 legal advice. The true legal status of closed-source modules can only be
203 - Binary modules greatly increase the difficulty of debugging kernel
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
210 version they wish to support. Dozens of builds of a single module can
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
223 more development after its release. This argument misses the value of
224 widespread code review and the value of allowing your users to add
233 Code is contributed to the Linux kernel under a number of licenses, but all
234 code must be compatible with version 2 of the GNU General Public License
238 versions of the GPL) or the three-clause BSD license. Any contributions
244 original ownership; as a result, the kernel now has thousands of owners.
246 One implication of this ownership structure is that any attempt to change
247 the licensing of the kernel is doomed to almost certain failure. There are
248 few practical scenarios where the agreement of all copyright holders could
250 there is no prospect of a migration to version 3 of the GPL in the
263 mailing lists. Such questions will normally receive no shortage of