[ Thanks to Moshe Bar
for this link. ]
“And you thought the netherworlds of dry kernel
engineering were free of politics, egos, and prima-donnas? Guess
again. The events of the last four to six weeks and the e-mails
flying to and from the Linux kernel mailing list show how Byzantine
and complex the dynamics of decision finding, features design, and
implementations can be. Go to http://www.tux.org/lkml/ to subscribe
to the kernel mailing list, but be careful: This is a very
high-traffic list. Subscribe only if you really want to follow
every single detail of the Linux kernel, or instead read the weekly
digest at Linux Kernel Cousin at http://kt.zork.net/kernel-traffic.Sure, the lively debates have always existed. In the past there
have been disputes about the Linux firewalling code, networking
code, scheduler, installer, driver model, and many more. One
recurrent theme has always been the Virtual Memory (VM) manager.
Nothing determines the peculiar behavior, the feel ? even the
ultimate success or failure of an operating system ? like its
virtual memory design. Sometime during the development cycle
leading up to the Linux 2.4.0 kernel, in other words in 2.3.xx
times, Rik Van Riel (http://www.surriel.com ), a Dutch kernel
hacker working for Brazil-based Conectiva (one of the smaller Linux
distributions), introduced a radically new VM code. It was based on
what seemed to be new and advanced algorithms for efficient
finding, allocation, and disposal of virtual memory pages requested
by programs. Rik later introduced an interesting new kernel feature
called the “OOM killer.” OOM stands for Out Of Memory. The OOM
killer attempts to locate a killable process when memory runs out
in the system. Without such a feature the whole machine can go nuts
or enter a vicious cycle of swapping out a few pages, realizing
immediately after that those pages are needed, and searching again
for swappable page candidates, keeping the kernel busy doing only
this instead of letting user processes run.Rik is a gifted hacker, and among other things he has been
trying to improve the efficiency and speed of maintenance of those
lists in the kernel responsible for managing all the virtual memory
pages in the system. One of the main questions to address in every
operating system VM code is: ‘How do you choose which page to steal
next when there is a RAM shortage?'”