Originally posted by: drag
kernel a complete standalone piece, and everything plugs into it.. sort of deal.. or if the OS is one big program
NT kernel is a Micro kernel.
Unlike Linux which is a monolythic kernel.
The difference is that everything is compiled into a monolythic kernel. The drivers, system calls, blah blah. Everything is integrated into the kernel. Although Linux is getting more and more modular. Everything operates in kernel code. This is the traditional method. Except for the GPL liscence linux is very conservatively designed.
The NT kernel is designed just to handle system calls. One device want's to talk to the hardware it has it's own address space sends messages to the kernel, the kernel then sends that message to another module for the hardware.
Basicly the microkernel design is suppose to be superior from a technical stand point. It makes it easier to utilize new hardware and a bad driver isn't suppose to directly affect the kernel. IE kernel panic. If a driver compiled into Linux is badly designed or has a flaw in can cause a crash and a kernel panic.
The major disadvantages of the microkernel design is speed and size(memory footprint). Memory isn't a issue much anymore, and as software technology increases microkernels go faster and faster. But then again so are Monolythic kernels.
But most of that is academic.
edit. Another example of a microkernel is the Mach kernel used by Apple in OS X.