Lines Matching full:kernel
1 HOWTO do Linux kernel development
5 instructions on how to become a Linux kernel developer and how to learn
6 to work with the Linux kernel development community. It tries to not
7 contain anything related to the technical aspects of kernel programming,
18 So, you want to learn how to become a Linux kernel developer? Or you
25 The kernel is written mostly in C, with some architecture-dependent
27 kernel development. Assembly (any architecture) is not required unless
36 The kernel is written using GNU C and the GNU toolchain. While it
38 not featured in the standard. The kernel is a freestanding C
42 difficult to understand the assumptions the kernel has on the toolchain
60 The Linux kernel source code is released under the GPL. Please see the
63 contact a lawyer, and do not ask on the Linux kernel mailing list. The
75 The Linux kernel source tree has a large range of documents that are
76 invaluable for learning how to interact with the kernel community. When
77 new features are added to the kernel, it is recommended that new
79 When a kernel change causes the interface that the kernel exposes to
83 linux-api@vger.kernel.org.
85 Here is a list of files that are in the kernel source tree that are
89 This file gives a short background on the Linux kernel and describes
90 what is necessary to do to configure and build the kernel. People
91 who are new to the kernel should start here.
95 packages that are necessary to build and run the kernel
99 This describes the Linux kernel coding style, and some of the
122 "Linux kernel patch submission format"
127 not have a stable API within the kernel, including things like:
131 - Mitigating rapid change within the kernel source tree (or
139 If you feel you have found a security problem in the Linux kernel,
140 please follow the steps in this document to help notify the kernel
144 This document describes how Linux kernel maintainers operate and the
146 for anyone new to kernel development (or anyone simply curious about
148 about the unique behavior of kernel maintainers.
150 :ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>`
151 This file describes the rules on how the stable kernel releases
155 :ref:`Documentation/process/kernel-docs.rst <kernel_docs>`
156 A list of external documentation that pertains to kernel
158 are looking for within the in-kernel documentation.
162 apply it to the different development branches of the kernel.
164 The kernel also has a large number of documents that can be
167 full description of the in-kernel API, and rules on how to handle
175 respectively from the main kernel source directory.
183 Becoming A Kernel Developer
186 If you do not know anything about Linux kernel development, you should
192 of basic kernel development question (make sure to search the archives
196 learning about Linux kernel development.
200 some basic logistical information, like how to compile a kernel and
204 some task to start doing to join into the kernel development community,
205 go to the Linux Kernel Janitor's project:
210 problems that need to be cleaned up and fixed within the Linux kernel
212 will learn the basics of getting your patch into the Linux kernel tree,
216 Before making any actual modifications to the Linux kernel code, it is
223 repository of the kernel code may be found at:
231 Linux kernel development process currently consists of a few different
232 main kernel "branches" and lots of different subsystem-specific kernel
235 - main 4.x kernel tree
236 - 4.x.y -stable kernel tree
237 - 4.x -git kernel patches
238 - subsystem specific kernel trees and patches
239 - the 4.x -next kernel tree for integration tests
241 4.x kernel tree
245 https://kernel.org in the pub/linux/kernel/v4.x/ directory. Its development
248 - As soon as a new kernel is released a two weeks window is open,
251 -next kernel for a few weeks. The preferred way to submit big changes
252 is using git (the kernel's source management tool, more information
255 - After two weeks a -rc1 kernel is released and the focus is on making the
256 new kernel as rock solid as possible. Most of the patches at this point
267 release a new -rc kernel every week.
268 - Process continues until the kernel is considered "ready", the
271 It is worth mentioning what Andrew Morton wrote on the linux-kernel
272 mailing list about kernel releases:
274 *"Nobody knows when a kernel will be released, because it's
278 4.x.y -stable kernel tree
283 regressions discovered in a given 4.x kernel.
286 kernel and are not interested in helping test development/experimental
289 If no 4.x.y kernel is available, then the highest numbered 4.x
290 kernel is the current stable kernel.
292 4.x.y are maintained by the "stable" team <stable@vger.kernel.org>, and
298 The file Documentation/process/stable-kernel-rules.rst in the kernel tree
305 These are daily snapshots of Linus' kernel tree which are managed in a
311 Subsystem Specific kernel trees and patches
314 The maintainers of the various kernel subsystems --- and also many
315 kernel subsystem developers --- expose their current state of
317 happening in the different areas of the kernel. In areas where
319 onto such a subsystem kernel tree so that conflicts between the
325 of them can be browsed at https://git.kernel.org/.
329 respective section below). For several kernel subsystems, this review
334 https://patchwork.kernel.org/.
336 4.x -next kernel tree for integration tests
344 https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
346 This way, the -next kernel gives a summary outlook onto what will be
347 expected to go into the mainline kernel at the next merge period.
348 Adventurous testers are very welcome to runtime-test the -next kernel.
354 https://bugzilla.kernel.org is where the Linux kernel developers track kernel
356 tool. For details on how to use the kernel bugzilla, please see:
358 https://bugzilla.kernel.org/page.cgi?id=faq.html
360 The file admin-guide/reporting-bugs.rst in the main kernel source directory has a good
361 template for how to report a possible kernel bug, and details what kind
362 of information is needed by the kernel developers to help track down the
370 bugs reported by other people. Not only you will help to make the kernel
376 To work in the already reported bug reports, go to https://bugzilla.kernel.org.
382 As some of the above documents describe, the majority of the core kernel
383 developers participate on the Linux Kernel Mailing list. Details on how
386 http://vger.kernel.org/vger-lists.html#linux-kernel
391 http://dir.gmane.org/gmane.linux.kernel
398 Most of the individual kernel subsystems also have their own separate
403 Many of the lists are hosted on kernel.org. Information on them can be
406 http://vger.kernel.org/vger-lists.html
427 Kernel developers don't want to deal with
441 The goal of the kernel community is to provide the best possible kernel
452 Remember, this is part of getting your patch into the kernel. You have
469 the kernel. Or at least be willing to prove your idea is worth it.
480 Differences between the kernel community and corporate structures
483 The kernel community works differently than most traditional corporate
509 Another way the kernel community is different than most traditional
513 The Linux kernel work environment is accepting of women and minorities
517 Most women who have worked in the Linux kernel and have expressed an
530 The Linux kernel community does not gladly accept large chunks of code
558 Here is an analogy from kernel developer Al Viro:
567 *The same is true of kernel development. The maintainers and