Notes on Apple’s Kernel Programming Guide

supervisor, kernel, privileged, system
kernel vs.user mode; MS
interrupts, Kernel Extension Overview, and Glossary, ; ‘privileged’ port?
There is a question that is nearly the first thing that I need to know about a system that I want to understand: “Which code runs in supervisor mode?”. There are on the web four terms for this mode distinction: ‘kernel’, ‘supervisor’, ‘privileged’, ‘system‘. The Glossary refers to kernel and supervisor modes with near adequate precision.

The “Kernel Architecture Overview” divides the system into several parts. This is the place to be clear as to which of these parts run in supervisor mode.

I am sure that all Apple programmers who have contributed low level code know the answer to this and may consider it so obvious as not to require this information in the document. I claim, however that whether the “Core Services”, for instance, runs in supervisor mode is neither stated, nor deducible from the document, even to the sophisticated reader,

Nearly as important is whether parts of “Core Services” run in their own spaces or in the kernel address space. Similarly which parts are subject to demand paging is critical to many of the users to whom this document is addressed.