"First, people need to realize that our driver model is
different than other operating systems, because all our drivers
ship with the kernel. The license requires our drivers to be open,
so everything is in the main kernel tree.
"Because of our huge rate of change, they pretty much have to be
in the kernel tree. Otherwise, keeping a driver outside the kernel
is technically a very difficult thing to do, because our internal
kernel APIs change very, very rapidly.
"In other operating systems, APIs change more slowly, since
their development process is comparatively very slow. So, it makes
sense, from a technical standpoint and just to save money, to get
your code into the kernel. It is maintained that way, and when
changes happen within the kernel, your driver code will be fixed
for you. If I have to change an API, I change it everywhere."