The characterization of microkernels as having a “poor reputation” due
to performance is scurrilous - I’d like to see the empirical data to
back up that accusation.
One of the most capable systems on which I’ve ever had the privilege to
work was a true micro-kernel, message passing OS - even the file system
ran in user mode. It had features that even now would be a struggle on
Windows (15 years ago we saw heterogenous process migration, which we
thought was interesting at the time but since we’d had process migration
for quite a while at that point - you know, where processes move from
computer to computer - we didn’t think it was that spectacular).
The list of micro-kernel OS systems is legion. That would include
Amoeba (someone was trashing it a few weeks ago in NTDEV for some
reason, no doubt because the didn’t like Tannenbaum’s quirky coding
style or something equally important), Accent (that was the microkernel
squished together with UNIX to become Mach), Chorus, V, etc. OSF/1 was
based upon Mach - both the monolithic version and eventually the
micro-kernel version. Performance was not the thing developers or users
seemed to complain about.
Of course performance is highly subjective; even today the Windows
system on which I operate seems to me to have horrible performance
characteristics (why, for example, does IE hang when Outlook cannot
contact my Exchange server?) in comparison to how V functioned for me
15+ years ago on hardware that was nowhere near as capable as what we
have today (Sun 2 workstations anyone?)
Conceptually, microkernel systems solve certain classes of problems
(e.g., distributed systems) extremely well. Of course, just like in the
real world, specific implementations can vary dramatically in terms of
actual performance.
IBM has had multiple micro-kernel based OS projects and as far as I know
they’ve shipped such products. I’m not sure how much influence OSF/1
had on AIX, but given that AIX 5 has the Open Group’s blessing there
must be some…
Windows incorporates numerous OS concepts that were bubbling in the
1980s - message passing, clear encapsulation layers (particularly from
hardware,) platform independence, etc. The concept of journaling file
systems also came out of that same time period (e.g., Cedar) and brought
us NTFS (which wasn’t the first journaling file system but is certainly
the most successful in the Windows arena).
There are a number of ideas from that era that sadly have not survived
so well, such as distributed OS support and distributed file systems.
More is the pity.
Of course, much of what drives the Windows platform success has to do
with its broad base of applications, largely driven by the availability
of powerful inexpensive hardware. The OS, or its structure, has
surprisingly little to do with why the general public buys Windows.
So maybe this boils down to a “GM versus Shelby” argument. Each has
their place in the world (I’ve got space in my garage for the Shelby you
don’t want, by the way…) Of course, for engineers, we often enjoy
working with Shelby but make our living working with GM…
Regards,
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com