Kevin - reading this thread to date it occurs to me that a couple of
concepts affecting kernel structures haven't been mentioned, and you
might be interested.
Modern processor architectures have 2 different "states": supervisor and
user. Supervisor state is all-powerful, with direct access to all CPU
instructions and system resources; user state is limited and can execute
only a limited set of CPU operations. In the world of "common"
Intel-based operating systems, the Unix, OS/2, and NT families make full
use of this distinction; DOS (and Windows systems other than
NT/W200x/XP) never did.
The "kernels" of the advanced systems are thus able to exert much more
control over user applications than are DOS and the simpler systems;
only the kernels run in supervisor state. This leads to great increases
in stability, integrity, and securability as far as these systems are
concerned. DOS-based systems, at least in my opinion, can't really be
said to have a kernel in any sophisticated sense. Any user app can reach
over and destroy the heart of such systems directly, with no trouble.
Along with the supervisor/user state capability, other processor
architecture features such as relocation and paging registers and the
like enable what you see in the advanced systems: no user application
deals directly with hardware - they deal with "virtual" hardware, under
the control and protection of the kernel. And user apps can be written
as if they own all system resources - including more RAM than may
actually exist - without mutual interference (if the system and app code
are well written.)
There's a wealth of this sort of info on the web. Some of the above
terms are good search arguments. I hope this note isn't way off the mark.