"The Linux kernel is the center of every Linux distribution. It
is the foundation upon which the userland (the programs and
environment you use to interact with the system) is built. The
source code which goes into it is very special -- any bugs it has
will affect every part of the system, perhaps even destroying the
work of the user. How do changes happen inside of it? How are
decisions made about the direction that the kernel will take?"
"The Linux kernel is split into many parts. The largest division
is that of the core kernel code and the device drivers. The core
kernel code is divided further into subsystems. Some subsystems
contain architecture-specific code, whereas most device drivers are
not architecture specific. By the kernel being divided in this way,
many people can share the work of maintaining the kernel by
watching over specific parts. Each device driver has a person who
is responsible for it; each subsystem of the kernel core has a
maintainer which monitors its development...."
"You may be wondering how a tree maintainer decides on a
direction for the kernel; where their vision comes from. It comes
from the users. The users ask for features, report bugs that
interfere with their work, and generally provide feedback about
what the kernel is doing for them. Based on this, and personal
motivation, the tree maintainer decides on a set of concrete goals
for the kernel. This is their vision."