Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Subject: status report
Date: Fri, 4-Dec-87 11:39:41 EST
Posted: Fri Dec 4 11:39:41 1987
Date-Received: Wed, 9-Dec-87 06:19:06 EST
Organization: The ARPA Internet
There are enough new names on the mailing list to justiify a brief
review of Xinu status. in addition, several people asked for a
summary of how Xinu developed. So, here's quick account:
The Xinu project started circa 1980 as a research project to explore how
network communications software fit into operating systems. At first, we
thought about using UNIX, but it seemed to me that (1) it was too large to
learn in a few weeks, (2) changing so rapidly that we couldn't keep up with
it, and (3) only available on expensive machines. In response to a proposal,
Digital Equipment Corp. donated a batch of diskless LSI 11s. Although the
11s seemed too frail to be really useful, I decided they would make a nice
experimental environment. Because the 11s had almost no useful software,
I was motivted to design a reasonable operating system we could use for
The machines arrived in August, 1981. I organized a seminar of half a dozen
graduate students (including system hackers like Bob Brown and Chris Kent
and many smart Ph.D. students). The students were divided into teams,
where each team was responsible for one piece of support software that
would run on the VAX under UNIX (e.g., 11 cross compiler/linker/loader,
VAX-to-11 downloader, etc). Two of the students read the Xinu source code
to check for errors before the compiler was available (I had little C
and no 11 assembler experience before Xinu). By mid semester, the process
manager was running on the 11s. By the end of the semester we had a
ring network using serial lines and demonstrated "write" and "wall".
Chris kent suggested the name XINU (Xinu Is Not Unix). In thinking about
the design, I tried to understand what would make the structure of the
system managable: the result was the hierarchy.
We polished the software, called Xinu version 5, for another semester.
While on sabbatical at Bell Labs during 1982-83, I wrote the first book,
Operating System Design - The Xinu Approach. Along the way, I finished the
disk driver and file system, and divided the software into book-size chunks
(and removed most of the comments to make the code look less cluttered).
The result was version 6 (with the code in the book called 6b).
After returning to Purdue, I obtained a grant from Digital Equipment Corp.
to build a Xinu laboratory for use in teaching and research, and convinced
the University to fund rmaining needed pieces. The laboratory came at a
good time, just as the department moved into a new building with lab space.
Meanwhile, I began using Xinu in the operating system course, and continued
exploring new ideas with the graduate seminar. Students contributed by
providing a critique of ideas and software, and by transporting Xinu to
new machines. A student also built ConcurrenC, a Xinu-like system that
runs under 4.2 or 4.3 BSD UNIX and allows multiple tasks that share a
single address space.
After I added an Ethernet driver and UDP/IP software, the syntactic
namespace, the shell, and other new facilites, I decided to call the
new system version 7 and write a second book to describe it. I also
worked with a student to build an Ethernet downloader that we still use
in the lab. Again, the idea was to keep the elegance of Xinu wherever
possible, and the protocol software seemed to fit into the hierarchy
During the past year or so, students moved Xinu onto the IBM PC, MacIntosh,
and VAX architecture. The VAX version has been downloaded onto the
Microvax I & II, 780, 785, and an 8600 (which was obtained partially from
the Digital grant for Xinu). In the graduate seminar, we designed and
students implemented a virtual memory system for the VAX version along with
a remote page server. The main contribution was an exploration of a novel
shared memory scheme that uses conventional paging hardware to achieve
Timothy Fossum (University of Wisconsin at Parkside) has his own
verison of Xinu on the IBM PC (slightly differnet than the original port
done here), and we're working on a revision of the first Xinu book that
uses the PC code as an example (should be out in a couple of months).
The MacIntosh version
This year, SUN has dontated machines to the Xinu lab, and we're moving onto
them. Version 7 is up and running on SUNs (native mode), and we intend to
build a virtual memory system on them this spring. It differs from what
we did last year because the SUNs do not have the shared system address
space that the VAX does.
We try to make available all the software we do here for whatever use
people want to make of it. In addition, Prentice Hall distributes tapes
of the LSI 11 and VAX versions (and soon, the PC version too). We charge
$100 for version 6 tapes and $200 for version 7 tapes to hold down the
flood of requests. Once you get the tape, you can duplicate it and use
it with as many classes of students as you like. We ask that you don't
pass it on to third parties (simply because I got VERY tired of debugging
mistakes that had been added by someone else).
Hope this answers everyone's questions,