OS design...

Kragen kragen@pobox.com
Sat, 17 Oct 1998 11:32:32 -0400 (EDT)

On Sat, 17 Oct 1998, Francois-Rene Rideau wrote:
> On Fri, Oct 16, 1998 at 12:52:36PM -0700, Ray Dillinger wrote:
> > I'm picturing each and every hardware driver and operating
> > system service as a standalone process -- not a library to link
> > against.
> Why "process"? If there's an intrinsic background activity,
> then certainly according threads should be spawned.
> If their ain't, spawning a request listener and demultiplexer,
> and multiplexing and forwarding requests into it
> is a particularly stupid approach
> (unless we're talking about network protocols).

Oh, such heated words!  :)

Btw, in the exokernel, the kernel doesn't do context save and restore.
So at least *that* service needs to be in a library --- you can't very
well have another thread save your thread's context for you!

Sometimes a single thread for some particular service might be helpful
to simplify synchronization, or to allow requests to be processed in a
non-blocking fashion --- although maybe that last is an `intrinsic
background activity'.

> > User processes would communicate with them using sockets.
> Sockets are bad. Function calls and inline code are good.
> Once you have a real high-level system language,
> you can drop paranoid low-level misprotection techniques,
> and use aggressive dynamic compilation instead.

Sounds good.

> In TUNES, we intend to push metaprogramming techniques
> as a way to achieve efficiency at runtime.

What are those?

> And even that should be modular!
> Some people need real-time GC, but it costs a lot,
> and most people would rather not.

I've been wondering about this lately.  How much does it actually
cost?  Where can I find online references on it?

Nearly every application is, in a sense, real-time.  My mailreader has
a major bug wherein it rescans my mailbox periodically, not responding
to user input during that time.  This is insignificant when the pause
is 100 ms, noticeable when it's 500 ms, annoying when it's 10 seconds,
and a severe bug when it's 90 seconds.  (Which is about what it is at
the moment.)

> Been reading Jonathan Rees' W7 article recently?
> 	ftp://publications.ai.mit.edu/ai-publications/1500-1999/AIM-1564.ps.Z

Thanks for the tip!

BTW, have you read Alan Cox's recent article on Slashdot about the
"Town Council Effect"?  IMHO, LispOSes in general are suffering from
this problem --- perhaps TUNES is an exception?  (I hope?)


<kragen@pobox.com>       Kragen Sitaker     <http://www.pobox.com/~kragen/>
A well designed system must take people into account.  . . .  It's hard to
build a system that provides strong authentication on top of systems that
can be penetrated by knowing someone's mother's maiden name.  -- Schneier