Why kernel space sucks
|Project:||This talk springs out of work on the Linux man-pages project|
A few years ago, respected kernel hacker Dave Jones gave a highly amusing talk, "Why userspace sucks", which looked at the extraordinary ways in which userspace programmers wreck the performance of Linux systems--systems based on the kernel whose performance kernel hackers go to such lengths to improve.
There's no denying Dave's analysis. But, sucking can go in both directions, and there are some myths about the perfection of kernel development to be deconstructed.
I'll take the specific example of programming interfaces--a place where kernel hackers inflict special pain on userspace, in the form of designs that are inconsistent, insufficiently general, unmaintainable, nonstandard, overcomplicated, nonextensible, poorly integrated with existing APIs, and simply out-and-out wrong. That leads to a parallel question: is code the only--or even the best--way to contribute to a project? That question in turn leads to some ideas about how we might improve the process of API design.
Michael Kerrisk (https://lca2013.linux.org.au/wiki/User:Michael_Kerrisk) is the author of the highly praised book, "The Linux Programming Interface" (http://man7.org/tlpi/), a guide and reference for system programming on Linux and UNIX. Since 2004, he has been the maintainer of the Linux man-pages project (http://man7.org/linux/man-pages/). Michael lives in Munich, Germany, and works as an editor and writer at LWN.net.