Notes on “The KeyKOS® Nanokernel Architecture”

It has been several years since I have read this paper (hereinafter the paper) and I now have some points that I need to make. From the today’s perspective it seems like a valuable introduction to the ideas of Keykos and their ramifications. It complements my architecture paper in many ways by relating to conventional operating system theory where my paper largely uses a stand-alone terminology. The paper also includes much information that may not be available elsewhere.

In this version of the paper I have taken the liberty to include marks as an added link to a remark I want to make at the marked place. A red star () is a pointer to more technical on the subject. These stars can be safely ignored as they merely expand on some point.

The paper uses the term ‘nanokernel’ whose origin is murky. I prefer the term ‘kernel’ for brevity but in most contexts I agree with proponents ‘micro-kernels’ and ‘nano-kernels’ as in “Small kernels are better even if slower.” (which they are often not).

The following paragraph belongs somewhere else.

The plain truth is that conventional kernels are cursed with the addition of many admittedly good ideas—witness the number of file systems in existence. Such code bulk inexorably leads to vulnerabilities. Applications that don’t need the new functionality nonetheless become vulnerable. With the minimal kernel we have been able to see new opportunities for global function. The Keykos kernel is more complex because it supports orthogonal persistence and concurrent remote backup and many other wild ideas that have not made their way into the kernel. If we had implemented half of the ideas that we are aware of the kernel would no longer be small. As it stands now, however, there kernel is still small and, as it is, supports many patterns that conventional kernels do not.