Redefining OSes Re: Common carriers Re: A letter to Joe

Dr. Ernest N. Prabhakar (
Mon, 18 May 98 19:45:10 -0700

Jeff Bone <> wrote:
> Let me propose a radical redefinition of "operating system" --- how
> about if we consider an OS to be nothing more than the "kernel" which
> provides scheduling, memory management, execution services, virtual
> memory, naming services, and perhaps networking and a filesystem? Add
> in the essential libraries which implement APIs to those services and
> *maybe* (being generous here) some set of minimum-functionality,
> essential utilities and a windowing system.

Of course, you can't do this cleanly 'cause NT has the graphics library
buit into the kernel. :-)

> Microsoft shipped this set of capabilities without any of the other
> gunk and without tying practices -wrt- other (application) products,

Actually, it would make more sense if they gave the core away, and
charged money for the higher layers. There's no value add in core
operating systems anymore (except for driver compatibility), just value

>If you want a scapegoat for that situation, blame Apple
>for not winning the hearts of those corporate buyers back in the
>mid-late 80s, or the UNIX vendors for being such a nation divided and
>focusing on the high end during that timeframe... or whatever.

So, lets say we decided to do it 'right'. We'd start by using a core
OS based around Linux or one of the other free OSes. Ideally it could
use NT drivers, but if not we'd add a really cool O-O driver model so its
easy to add support for various platforms. Of course, we'd make both
the drivers and the Core OS processor-independent. If we're really
smart, we'd leave it all in the public domain so that the open source
community can continue to move it forward.

Then, we'd add a lightweight generic windowing system, that allows the
use of multiple drawing models. Make one of them PostScript or PDF, for
WYSIWYG publishing. Make it easy to plug in any drawing model you
want, and share the screen between them.

Next, make it easy to plug in different environments. One would be Mac
OS or Windows compatiblity, so you could run existing apps. Another
would be Linux if the Core OS was BSD, or BSD if it was Linux. Yet
another would be Java. And, just for fun, make the last one a funky
dynamic object-oriented frameworks, with all sorts of cool web and
database functionality.

Make the desktop experience really modular, so users can add in whatever
views of the underlying filesystem they want. Get some brilliant
designer to create the icons, so it looks really cool.

What do you get? A really modular system. You can decide to sell or
give away different pieces in various combinations, depending on the
realities of the market. But at every step, somebody else could compete
with you by plugging in their piece of technology. But you don't mind.
You think your pieces will be the best, and everything else will just be
legacy compatibility. But if not, you just pick their technology as the
basis of the next rev. Maximal innovation.

Geez, what a great idea! I wonder why nobody ever thought of it before...

-- Ernie P.