Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!sri-unix!sri-spam!ames! ucbcad!ucbvax!PURDUE.EDU!comer From: co...@PURDUE.EDU.UUCP Newsgroups: comp.os.xinu Subject: status report Message-ID: <8712041639.AA04515@merlin.cs.purdue.edu> Date: Fri, 4-Dec-87 11:39:41 EST Article-I.D.: merlin.8712041639.AA04515 Posted: Fri Dec 4 11:39:41 1987 Date-Received: Wed, 9-Dec-87 06:19:06 EST Sender: use...@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 96 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: History: 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 experimentation. 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 beautifully. Expansion: 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 sharing. 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. Software availability: 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, Doug