Linked by Thom Holwerda on Fri 26th Dec 2008 11:58 UTC, submitted by probono
BSD and Darwin derivatives Most of you will know that the underlying core set of components of Mac OS X and the iPhone operating system are released under the Apple Public Source License, an FSF-approved open source license. Few of you, however, will have actually used Darwin in any other form than Mac OS X or the iPhone OS. Despite numerous projects attempting so, Darwin has never gained any significant traction apart from Apple's own interest. The PureDarwin project tries to rise from the ashes of the OpenDarwin project, and has just released a Christmas developer preview.
Thread beginning with comment 342040
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[5]: Comment by Kroc
by silix on Wed 31st Dec 2008 20:10 UTC in reply to "RE[4]: Comment by Kroc"
silix
Member since:
2006-03-01

It's not very NT-like. It's a Mach kernel, "inherited" by Apple from its acquisition of NeXT. The Mach kernel has some interesting architectural features that make an open source Darwin-based OS an interesting idea indeed, and a worthy project to pursue.
but also some very bad performance drawbacks ( that other microkernels like L4 or KeyKos have successfully tackled in the last decades, btw)

PureDarwin may actually prove to offer the kind of benefits NT only pretended (and failed) to offer, because of its choice of core architecture.
what some people don't remember or deliberately ignore, is that:
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

Microsoft's NT kernel pretended to offer similar architectural features with all its dithering on about how it uses a "hybrid" kernel, but the truth is that the NT kernel just made use of some superficial characteristics of a modularized monolithic kernel without actually leveraging any of the advantages thereof.
given the above, you see that NT has not "failed" in delivering a 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

Reply Parent Bookmark Score: 1