Linked by Thom Holwerda on Fri 26th Dec 2008 11:58 UTC, submitted by probono
Thread beginning with comment 342040
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.





Member since:
2006-03-01
1) Darwin is NOT NT, and its architecture is now totally different;
2) NT too was based on a pure microkernel (actually a Mach derivative) for some time, in the early days
3) NT being hybrid doesn't have to do with filesystem and networking stacks being merged into the kernel, but with the latter being a layered (and "ringed") structure made of elements interfaced by versioned APIs and accessed with LPC
4) NT4+ applications could be written, link, and work the same way (and with the same runtime libraries) as application for previous (3.x) versions of NT, and these could continue to run on the newer (integrated hybrid) kernel - this was because (thanks to architectural provisioning for messaging, transactions and local RPC, and the use of a dispatch system) they were independent from whether function providers were in- kernel or external;
5) "inner core" facilities (those that would be placed in a microkernel too) like VM, scheduling, messaging, are logically separated from less vital ones (whose memory may also be *paged out* to disk, btw - few other monolit... ehm, macrokernels can swap out parts of their address space, afaik...);
then, NT can be said to have a *microkernel centered*, structured, hybrid kernel
at least less of a failure than some other OS's one at leveraging the monolithic kernel design...
if the monolithic approach is chosen to reduce context switch overhead;
but, if user space daemons have to be present anyway to supply functionality required for the base platform to *work* at all (functionality such as event notifications or messaged ipc, that even other *microkernels* have implemented internally for ages);
and moreover, if they have to communicate in the most inefficient way possible (plain marshaling over sockets, even for local interaction - when things like protected procedure calls and Lightweight RPC, have existed for decades on other systems);
then i'm inclined to believe that in that case, there's something wrong in the way the monolithic kernel has been designed and deployed ...
after all, everything boils down to NIH syndrome, doesnt it?
Edited 2008-12-31 20:23 UTC