Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site tove.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!mhuxn!mhuxr!mhuxt!houxm!whuxl!whuxlm!akgua!gatech!seismo!umcp-cs!tove!steve From: steve@tove.UUCP (Steve D. Miller) Newsgroups: net.unix-wizards,net.lang.lisp,net.ai Subject: Re: using Vax as fileserver for Xerox Lisp machine Message-ID: <354@tove.UUCP> Date: Sat, 16-Nov-85 23:10:16 EST Article-I.D.: tove.354 Posted: Sat Nov 16 23:10:16 1985 Date-Received: Mon, 18-Nov-85 07:36:18 EST References: <169@ecrcvax.UUCP> Reply-To: steve@tove.UUCP (Steve D. Miller) Organization: U of Maryland, Laboratory for Parallel Computation, C.P., MD Lines: 115 Xref: watmath net.unix-wizards:15754 net.lang.lisp:636 net.ai:3107 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@mimsy.umd.edu Phone: +1-301-454-4251 CSNet: steve@umcp-cs UUCP: {seismo,allegra}!umcp-cs!steve USPS: Computer Science Dept., University of Maryland, College Park, MD 20742