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.
- compatibility: it is compatible with the other things in the
adopters' lives.
- trialability: it is easy for adopters to try, entailing little risk
or up-front effort
- observability: it is easy for potential adopters to observe current
adopters' experiences.
- simplicity: it is not complex, particularly from an adopter's point
of view.
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
- following the release-notes link from http://www.eros-os.org/
- figuring out that there are not five packages as the release notes
say, but seven, of which only three are needed;
- downloading three tarballs totaling fifteen megabytes (!);
- committing an additional 82 megabytes (!!!) of your disk space to the
unpacked EROS;
[fortunately not becoming root to install the xenv; bravo, Jonathan]
- spending quite some time to wait for the build to complete;
- going up and doing another build (now you have 80 or so more
megabytes committed)
- somehow figuring out how to build a minimal boot floppy (this took me
roughly an hour, because unlike the rest of the steps, it is not
documented at all in the release notes, let alone correctly; I ended
up using http://www.eros-os.org/~majordomo/eros-port/0232.html to get
me there)
- doing so and rebooting your machine
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. :)