On Thu, Aug 09, 2018 at 08:15:42AM +0100, mick crane wrote:
Am I right in thinking that the kernel is a single codebase agreed between all the kernel developers at any particular date and that Linux distributions can take bits out from that for their release but shouldn't add bespoke stuff that isn't agreed by everybody else ?just wondering how that works. mick
The kernel IS a single codebase. The definitive source for it is kernel.org and Linus et al combine the contributions from many sources into the code there.
In terms of modifying the code, the kernel is licensed under the GPL which, broadly speaking states "You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions." (Courtesy of https://tldrlegal.com/license/gnu-general-public-license-v2). In practice, though, the kernel is very configurable and most distributions merely include or remove parts of the code by changing the configuration before compilation.
As for adding new code, there are two hurdles to getting that into the mainline kernel: it must be legally allowable as part of the kernel (e.g. Licensed under the GPL) and it must pass review (by the kernel maintainers). If you can't pass these hurdles, you can provide an out-of-kernel module (this is how things like Virtualbox, Wireguard and NVIDIA work). Your code is distributed separately, but includes the kernel headers and produces a kernel module which can be loaded. Doing this will TAINT the kernel, though (not necessarily a bad thing, but will alert developers to the fact that there may be issues).
-- For more information, please reread.
Description: PGP signature