Position & proposal

Mike McDonald mikemac@titian.engr.sgi.com
Wed, 04 Jun 1997 19:51:01 -0700


>From: Dave Mason <dmason@scs.Ryerson.CA>
>To: lispos@math.gatech.edu
>Subject: Re: Position & proposal 
>Date: 	Wed, 4 Jun 1997 21:51:14 -0400

>It should be possible to do most updates in a sandbox, including
>iteratively debugging, with only processes sharing the hacker's
>environment seeing the hacked versions until at some point you commit,
>and everyone sees the new environment.  Think database.
>
>E.g.	(define global (current-environment))
>	(new-environment)
>--> now in new environment
>	(define (mouse-tracker) ...)
>	(define (keyboard-handler) ...)
>--> play with this definition, if we decide we like it, say:
>	(set! (global . mouse-tracker) mouse-tracker)
>--> play with other things, eventually abandoning them by saying:
>	(set-environment global)

  What if what I'm trying out is how environments are implemented?

>This might be difficult in a timesharing environment if you wanted to
>debug say the disk driver that had hardware interactions with the
>already running disk driver, but virtually any part of the OS that
>doesn't share hardware state should be no problem at all!
>
>../Dave

  But isn't the whole point of an OS to arbitrate access to shared
resources, whether they be hardware or software? For instance, say I
have a brilliant idea on how to implement a TCP/IP stack that takes
one less copy than everyone else's. I can't test that out on the same
machine that other users are on. (Who does the hardware deliver
packets to? My new code or the production version?)

  Basicly, there's should be a distinction between a production
machine and a development machine. You don't allow "users" on
production machines, aka servers. They're tightly controlled wrt which
software they're running and how that software is updated. 

Each user should have his own development machine. (Let's get real,
we're talking about PCs here! Nobody wants there own Cray YMP. A T3E,
maybe. :-) And yes, each and ever user should have the ability to
screw him or her self royally. With that freedom comes a sense of
responibility. (Heck, it's no fun "hacking" a machine that'll let you
do whatever you want. Where's the challenge?)

  Mike McDonald
  mikemac@engr.sgi.com