using Vax as fileserver for Xerox Lisp machine

Steve D. Miller steve at tove.UUCP
Sun Nov 17 14:10:16 AEST 1985


   Important definitions you will need to know to understand the rest
of this article: (if you know Xerox networking at all, skip this...)

	IDP -- Internet Datagram Protocol, the Xerox protocol that
	  most closely corresponds to Arpa IP and the bottom-level
	  protocol for XNS, Xerox's most recent networking implementation.
	SPP -- Sequenced Packet Protocol, the XNS equivalent to Arpa
	  TCP and the "level 2" protocol for XNS.  This is what I
	  believe the current servers et al are working under, though
	  Pup is still supported.
	PUP -- Packet Universal Protocol, Xerox's "old" networking
	  protocol; still used rather heavily by Interlisp.
	Courier -- Xerox's remote procedure call facility, and the thing
	  the programmer sees when writing (or using) Xerox services.
	Services -- the set of distributed facilities (name service, aka
	  Clearinghouse; Authentication; Filing; Printing; etc.) available
	  from Xerox for use with their workstations.  Like I said, this
	  is, as far as I know, the new Xerox networking standard, with
	  PUP moving slowly into the background.  The Services stuff
	  (version 8.0, at this point, though they may have Services 9 
	  by now inside Xerox) still supports PUP connections.
	
   There have been a lot of questions recently about integrating the
XNS world (Xerox) with the Unix world.  I know almost nothing about PUP,
but I've done a good bit of fooling around with XNS (both our local
implementation for 4.2 and the one Keith Sklower's been working on
at Berkeley) under Unix and on the Xeroxes, so maybe I can shed some
light on things.  If I make a mistake, please feel free to scream
and holler...

   OK.  You've probably seen Barry Shein's article on Unix PUP support
for file service and the like already; that's something that I didn't
know about, but definitely worth looking at.  We have Xerox's support
package for Interpress conversion (I think it's called the Interpress
Toolkit), and it's really pretty good; I would bet that the other
Xerox software would be similarly solid.

   Anyway, the support for Xerox networking in the 4.3 kernel consists of an
IDP/SPP implementation that has some hooks in it for Packet Exchange
(basically, a getsockopt that lets you get some unique numbers from the
kernel to use in the "unique id" field of an outgoing PEX packet; you have
to write the PEX stuff on top of the IDP packet, then tack on your own data.
I've done some PEX stuff -- a little program that looks for clearinghouses
on the local net -- and it's sort of a pain but definitely doable).
Evidently, the PUP stuff is disappearing from 4.3 and from Xerox; there is
a limit of 256ish machines on the same network, and since Xerox has more
than that internally, they've got to do *something*...so there's not
much incentive to keep it around.

   On top of the kernel stuff lives some "user-contributed" software,
consisting of J.Q.  Johnson/Cornell's Courier compiler.  It's a wee bit hard
to use, but it's actually easier to write Courier stuff (once you get the
basics down) with it than it is to do so in Mesa under XDE, and he's
implemented a print spooler for Services 8.0 printers, a ftp program
(xnsftp) that will talk from a Vax to a Services file server (though the Vax
has to start the connection; it can't play file server yet), a GAP service
implementation so you can log in to your Xeroxes from vaxes and vice versa
(and, at least with the Intermezzo release, there is a "NSChat" that can be
coerced into talking to a vax without too much work), and some generally
nifty stuff.  There's also Keith Sklower's "nsip" kernel hacks that let you
hook local NS networks together to form a virtual NS internetwork (with Bill
Nesheim's router and the nsip stuff conspiring to send the NS packets across
the Arpanet inside of IP packets).  Basically, the tools exist to do pretty
much whatever you want (in terms of going from a 4.3 machine to your
Xeroxes), though it may take a bit of sweat to get it all running, and
you'll have to write some of your own stuff.

   The situation from the Xerox end is a bit more bleak.  The Xerox services
people are pretty resistant to the idea of giving Mesa services source out,
so it's hard to implement servers (though certainly not impossible, except
for maybe Authentication; unfortunately, that's pretty important...).  Some
of the NS Filing protocol stuff doesn't map well to a Unix filesystem;
Filing could be faked, but it'd take mucho work -- the Xerox Filing protocol
(and the filesystem it describes) is very flexible and very complex.  The
PUP situation is (rather obviously) more bleak, but (at least with their
business software and their development environment) Xerox is moving toward
getting rid of PUP, and it probably won't be long now.  As was also
mentioned, Intermezzo supports TCP/IP (so you could probably write stuff
there that would let you talk to the Unix FTP), and I would think that if
Intermezzo supports TCP/IP now, XDE/Star/whatever would probably do so in
the not too distant future.

  To summarize, the situation isn't hopeless (by a long shot); after all,
I'm typing this rambling mess from my VaxChat window on my XDE Dandelion,
and I go from vaxes to servers probably a few times a day.  If you're
expecting to be able to do all the nice Xerox stuff from day one, you're
probably going to be disappointed.  Still, the only really necessary thing
is the ability to log in to your 4.3 machine from your XDE/Interlisp
machine; from there, you can fire up the Unix Courier tools and do quite a
bit, and if you can xnsftp it from or to a file server, you can go from
there to your workstation.  If you're getting a PUP machine and expecting to
do great things with it and your 4.3 machine, you probably have some
thinking to do.  Interlisp is a *very* nice environment, and compiled
Interlisp is a whole blazing lot faster than normal lisp on vaxen, and it's
really mostly capable of getting the job done with XNS-based networks and
machines...but I think it's still a wee bit transitional.  If I was doing
lisp, I'd say, "hang the vax, I want a Dandelion," regardless of whether I
could log into a unix machine with it (I suggest that someone from Xerox
clarify the situation here; I'm not an Interlisp hacker -- merely an admirer
-- and I'm getting my information secondhand from an Interlisp hacker here).
In case you haven't noticed, I think the Xerox stuff is very good, and just
keeps getting better and better (if they'd just be a bit more open with some
of their deep dark secrets, I think they'd blow the market open), and
Courier is a neat, flexible standard that's probably not a bad place to
start even if you are writing a distributed system that'll never run
anyplace but on a Unix machine.  I hope that what I've said will help to
dispel some of the fog, and if I can answer any more questions, please feel
free to drop me a line and I'll see what I can do.

	-Steve
-- 
Spoken: Steve Miller 	ARPA:	steve at mimsy.umd.edu	Phone: +1-301-454-4251
CSNet:	steve at umcp-cs 	UUCP:	{seismo,allegra}!umcp-cs!steve
USPS: Computer Science Dept., University of Maryland, College Park, MD 20742



More information about the Comp.unix.wizards mailing list