Re: GUI systems Kragen Sitaker (kragen@pobox.com)
Mon, 26 Jun 2000 22:56:59 -0400 (EDT)

Shawn T. Rutledge says:

> On Mon, Jun 26, 2000 at 05:18:09PM -0700, John C. Randolph wrote:
> > Actually, this is the overriding reason to avoid using X, IMNSHO.  EROS is  
> > a clean slate, and a GUI for EROS should not be a legacy turd like X.
> 
> . . .  It's over-homogenized, and I'm here in the hope that we have
> a real frontier, not just another desktop.

In general, the more frontiers you are pushing, the slower and less predictable your progress will be, and the crappier your end product. There are exceptions where *not* pushing a particular frontier will actually make your life harder because there is synergy between different traditional ways of doing things.

Pushing as few frontiers at a time as possible is the way to get systems that will be maximally useful.

What's worse is that we're not just talking about what we have to implement; we're talking about what folks porting apps have to implement. People use OSes mostly because they support applications they want to run.

Building a monolithic Linux server (starting from something like MkLinux or user-mode Linux) would make life maximally easy from a porting POV; unfortunately, it would also render the capability kernel simply the underpinning for a slower version of Linux.

EROS is useful because it enables the construction of more reliable software and more reliable computers, and, in a larger sense, because it enables people to be exposed to less risk from computers.

You can get more reliable computers in a Unix world simply by giving each application program and user a limited view of the filesystem and other objects. (For example, most programs don't need to be able to open /dev/ttyS* or /dev/hd*; they don't even need to have them available. And most programs don't need to kill processes they didn't start.)

You can get more reliable software by writing it in terms of the capability model; unfortunately, not a lot of software has yet been written for EROS. I suspect most people who use EROS will use it, at first, as a version of Linux that supports better security and easier software testing. So new EROS software will have to interface well with Dionysix programs to be used.

EROS will only reduce people's risk from computers if it gets used. That's why I think it's important how widespread its use is.

Everett Rogers' book, _Diffusion of Innovation_, lists five attributes that largely determine how fast an innovation diffuses. They are
- relative advantage: it is very advantageous to its adopters.

I want EROS to diffuse as fast as possible as soon as possible. I'd like to see 100 different people with at least one computer running EROS on a regular basis by the end of this year. Do you think it's possible? What needs to happen first?

Right now, EROS is not good for anything, unless you're into playing with weird operating systems for fun. So it has negative relative advantage.

It is compatible with sitting in front of a computer, but it is not compatible with running another OS on the computer concurrently; there's not a lot we can do about that, unless we can build a version of EROS that will run as a task under Linux or Windows. It is compatible with having another OS installed on the computer, though.

It's not particularly easy to try, although it's getting better, because now it builds out of the box instead of dying in mid-make. Trying it currently requires:
- having a GenuineIntel system running Linux or FreeBSD

It should be possible *at least* to reduce this to a "download one tarfile, read the ten-line INSTALL file therein, ./configure, make, and dd" procedure. Searching through mailing list archives really should not be part of the process.

It should be fairly observable once people start using it; your co-workers will see you are running a different OS, and you can publicize it on your web site. Observing why you're using it may be more difficult. Observability can be enhanced by simple expedients like mentioning it in login banners, default screen backgrounds and prompts, and web-server default pages.

I'm clueless on simplicity. Is it simple? Is it possible to make it simpler?

The other thing we need to remember is that KeyKOS in 1980 was a miraculous alien system from on high; in 2000 EROS is rather unusual and has some nice features, but not a lot programmers haven't heard of; and by 2005 both Linux and Windows will have full-fledged but broken-as-designed capability subsystems that lets you do everything EROS can do, only more slowly, less reliably, and less easily. Our "market" opportunity is *now*.

-- 
<kragen@pobox.com>       Kragen Sitaker     <http://www.pobox.com/~kragen/>
The Internet stock bubble didn't burst on 1999-11-08.  Hurrah!
<URL:http://www.pobox.com/~kragen/bubble.html>
The power didn't go out on 2000-01-01 either.  :)