First proposal: what should LispOS feel like?

Sunil Mishra smishra@cc.gatech.edu
Tue, 29 Apr 1997 19:47:09 -0400


I am by no means a Lisp guru, though I have had some experience hacking. I
have never used a symbolics machine, but have seen something of what is
possible. Please keep this in mind if I sound naive.

> >How should LispOS be different from FreeBSD/Linux/X11 or Windows?
> 
>   The theory is that the tightly coupling of the various OS services
> under a LispOS allows you to quickly and efficiently do things that
> are really though to do in the compartmented world of a traditional
> OS. 

What would motivate anyone but LISP users to adopt such a system? Surely
there will have to be some mechanism for accessing traditionally available
facilities (such as an interface to standard libraries).

> >- it prompts me for login on network ports (like Telnet does)
> >- it prompts me for login on the console
>   
>   I'd prefer to see a lisp login prompt, not a Unix one.

What's the difference? (Functionally of course.)

> >And yes, I want several worlds. Maybe the whole stuff for my login
> >session should be *one* world (Listener, Editor, Window manager,
> >Browsers). But the background processes like HTTP servers should have
> >their own world that survives crashes of my login world and that
> >doesn't get messed up by manipulating my "front world" (nice term).
> 
>   Having several worlds running at the same time is a problem. Which
> one has the TCP/IP stack in it? (Better be only one.) I can understand
> the desire to have a stable, delivery world and a developement world
> running at the same time. I just don't know how to do it. It's like
> having two copies of the Unix kernal running in case I crash the user
> one.

I don't understand the concept of a world precisely, but it sounds as
though you are looking for closures, "sandboxes" that insulate one element
from another.

Based on this assumption, a couple of ideas come to mind:
1. A hierarchy of worlds.
2. Some mechanism for restarting ONE world if something does get messed
up, rather than the entire machine. I suppose this would require some kind
of self monitoring routine to figure out when a (system) world has been
corrupted.

> >Conclusions:
> >- I want different User IDs with different permissions on Object like
> >  memory areas, files and port, whatever and I want different processes
> >  to be run under different UserIDs
> 
>   Not me! I want access to everything on the system. I hate annoying
> machines that think they can protect me from myself. Their
> "protection" just gets in my way.

Think multiple users on machines at different times, rather than
simultaneous multiple users. Most university computer labs run this
way. Also think novice users that can't be trusted to keep out of parts of
the machine they don't understand. I KNOW I will probably not be able to
protect me from myself. (Incidentally, isn't this the argument C
programmers used against garbage collection?)

Sunil