On 10/14/2011 04:17 PM, Jason McBrien wrote:
Then explain
why an OS (Windows and MacOS X for example) is so slow and
bloated? I'm not talking about the pretty layers of user interface atop the
OS, but the OS itself. We've had dialog boxes and pull-down menus for
decades, on machines whose memory measured in hundreds of kilobytes and
clock rates in the single-digit MHz. This stuff isn't THAT complex, man!
Miles of abstraction. HALs to take care of multiple file system types,
Doesn't need to be switched or selected at run-time; index into a
table of pointers to the correct routines.
transparent encryption and compression,
Well ok, this burns CPU no matter how you slice it, unless you use
hardware crypto accelerators. I do, and will never go back!
continual and intermittent networked file access,
distributed file systems, transparent backup schemes,
These burn more bandwidth than CPU cycles.
multiple ACL schemes,
Who uses more than one (or maybe two) at a time? If anyone does, I'd
love to know why.
and every unicode page known to man.
As above, indexing into a table is fast. And how many languages does
ONE person really want to use to interact with their computer? Usually
one. Why even have the others installed?
HALs to handle multiple display driver types,
Also as above, the decisions between them don't need to be made
during use, but only during initialization. Unless you mean stuff like
abstract display coordinate systems, which can (and arguably should) be
handled by the display hardware. GL is pretty much standardized these days.
generic display optimization and computing routines,
encrypted and non-encrypted data paths, and redirecting the whole thing to a
remote desktop. Everything is abstracted, sometimes on multiple levels.
I see and agree with your point. But if these things are competently
implemented, the performance impact should be minimal.
This is the price of flexibility. Either abstract
everything or maintain
dozens of kernels for every possible hardware configuration. Neither is
ideal, but abstraction is more maintainable.
But different kernels for different hardware configurations are
handled by pluggable modules. Save for some indirection through device
tables and such, ALL of that stuff is handled at boot time. Minimal
time-of-use impact.
-Dave
--
Dave McGuire
New Kensington, PA