sendmail.net: An Interview with Kirk McKusick [Part Two]

One of your ambitions is to merge virtual memory and the
filesystem. What would that entail, and what’s the reasoning behind

“For various historic reasons, there are really two major
interfaces in the kernel. One is the v-node interface, which is the
one that allows you to plug multiple filesystems in underneath it.
The other one is the object interface. All of your virtual memory
spaces are built up from these virtual memory objects. So you fire
up a program, and you get an object that represents the executable,
and you get one that represents your stack, and one that represents
your heap, and when you map in a shared library, you have an object
that represents that. So these collections of objects make up the
address spaces of things. And some of those objects are backed by
what’s called anonymous memory. If you have a stack, the first time
you look at it, it’s zero, and then whatever you put in it after
that. Whereas if you map in a shared library, then that’s
represented by a file, so as you try to access it, the file gets
brought in off the disk.”

Complete Story