Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

The future of 9x...

4 views
Skip to first unread message

how...@plan9.bell-labs.com

unread,
May 1, 1997, 3:00:00 AM5/1/97
to

OK, I'll finally fess up. I did the Plan 9 X server here at Bell Labs,
but it never fully worked. Later I made another attempt, and got
it working just fine, but by that time we were using Brazil, which
has a different graphics model. Basically the server works by
doing all screen operations into a memory pixmap, keeping track
of changed bounding boxes, and transferring those changed
rectangles to the screen at opportune moments. It works surprisingly
well. It wouldn't be too hard to do for Plan 9, but I've always been
to busy. Also, there are three problems I can think of:

- the Plan 9 graphics model only allows you to write whole lines
of bitmaps, so transferring narrow vertical rectangles to the screen has
to be done carefully---my abortive Plan 9 port used a series of
off screen temporaries of varying widths that could be used as
midway transfer bitmaps.
- the whole make procedure is rather dodgy, and some of what I did
is so far in the past that I can't quite remember what I did either.
I used a make, the korn shell (ape/sh), and ape/cc. I used imake to
make the initial makefiles, but there were difficulties in what imake
expected cpp to do versus what our cpp does (ours followed the
ansi standard), so I ended up using a gnu cpp for that part. Various
parts of these have sources that I don't think I can distribute. And
even with the makefiles that are there, the situation with building for
multiple architectures is awful -- you have to clean out completely,
and I think build on the architecture you're building for. All or much
of this could be corrected but I don't have the time or inclination.
This is the reason I haven't even released the client libraries.
- I needed to add another fork flag to fork the rendezvous group
in brazil, and that never made it back to Plan 9, as far as I know.
It was needed to make select() work in the presence of forked
subprocesses that also wanted to select, but I forget the details.
Perhaps there is a workaround.

Anyway, with all this said, I'm sure what I've done is more use as a start
than starting from scratch, and I'm willing to put it on the net for
people to have a go with (with the understanding that I'm too busy
with Inferno at the moment to help or answer many questions).
Any suggestions for how to do it? My stuff is intimately mixed in
with the whole X11/R6 release (with patches up to patch #04),
and I would have to put all of that up -- about 210 Megabytes.

Howard Trickey
how...@plan9.bell-labs.com

0 new messages