Giebelhaus@HI-MULTICS.ARPA (05/21/87)
I'm also interested in peoples opinions about whether Apollos are UNIX boxes. My presonal opinion is that they are just about as UNIX as any other vendor except Berkley or Bell depending on which version of UNIX you mean. I know of a number of places where the Apollo is different. Perhapse the amost annoying is the file descriptors (although they are close enough to mostly be an annoyance only). Other vendors have their own problems. Everyone has been into the kernals hacking for windows, networks, and other fun features. The worst problem the Apollo has is marketing. When you think of a UNIX workstation, is the Apollo the first thing that comes to mind? For many people it does not come to mind at all. Why? Has anyone ever put together a list of difference between Apollo's IX and bsd at the interface level? For example, the /dev/kmem does not have what you might expect in it. I would love to see such a list. If people want to send me the incompatibilities they know of, I would be happy to compile such a list.
dennis@PEANUTS.NOSC.MIL (Dennis Cottel) (05/21/87)
Seems to me you're asking for Apollo to provide both Unix enhancements (longer than 8-character ids) and very close compatibility tolerances (same format for /dev/kmem). I'm not a Unix guru, but this sounds tough to do. --Dennis Dennis Cottel Naval Ocean Systems Center, San Diego, CA 92152 (619) 225-2406 dennis@nosc.ARPA sdcsvax!noscvax!dennis
Giebelhaus@HI-MULTICS.ARPA (05/21/87)
I did not mean to say I wanted Apollo to support /dev/kmem. I think it is very bad programming practice to use kmem. Not only that, I think Apollo has advanced beyond the point where they can use kmem. I just want to KNOW what the differences are, not have ALL of them "fixed". I do still think talk is "broke" if it will not work with all the users on the Apollo, though. Yes, I'm greedy. Where I can have compatibility without giving up enhancements, I want it. In some cases, it may be best to give up the enhancements to get the compatibility. I don't mind where IX & Aegis is a superset of UNIX, but I am at least intereasted in the places IX is lacking compatibility to UNIX.
ray3rd@ssc-vax.UUCP (Ray E Saddler III) (05/21/87)
In article <870520222712.854845@HI-MULTICS.ARPA>, Giebelhaus@HI-MULTICS.ARPA writes: > I'm also interested in peoples opinions about whether Apollos are UNIX > boxes. My presonal opinion is that they are just about as UNIX as any > other vendor except Berkley or Bell depending on which version of UNIX > you mean. > > The worst problem the Apollo has is marketing. When you think of a UNIX > workstation, is the Apollo the first thing that comes to mind? For many > people it does not come to mind at all. Why? > I'm not a real heavy Apollo user, but I do not think of it as a UNIX box, rather, an AEGIS box. I have run UNIX on an APOLLO workstation, but it was on a system called MENTOR (a system installed on Apollo h/w to do electronic design/test). It (the UNIX shell) seemed real wierd, and was made to fit/run from AEGIS, which caused a lot of ~standard UNIX files and utilities to be quite out of the norm. That's about all I have, what about the rest of y'all? -- Ray E. Saddler III CAD Support and Administration | __ __ __ __ Boeing Aerospace Company Ballistic Systems Division | / / / // //| // P.O. Box 3999 M.S. 3R-05 Kent Space Center East | /-< / //- // |// _ Seattle, Wa. 98124 U.S.A. - North America - Earth | /__//_//__ // //__/
bobr@zeus.TEK.COM (Robert Reed) (05/21/87)
Apollo currently is NOT a UNIX box. It runs an operating system called AEGIS, and provides libraries to simulate SV and BSD system calls, plus a lot of hacked up versions of standard programs which attempt to give the APPEARANCE of a unix system. The file system, protection strategies, interprocess support, I/O drivers, administrative support and networking are substantially different from those of any flavor of UNIX. Rumors abound that SR-10 of the Apollo system will be a "true" UNIX, implemented at the kernel level. We wait to see. -- Robert Reed, Tektronix CAE Systems Division, bobr@zeus.TEK
benoni@ssc-vax.UUCP (Charles L Ditzel) (05/22/87)
> In article <870520222712.854845@HI-MULTICS.ARPA>, Giebelhaus@HI-MULTICS.ARPA writes: > I'm also interested in peoples opinions about whether Apollos are UNIX > boxes. My presonal opinion is that they are just about as UNIX as any > other vendor except Berkley or Bell depending on which version of UNIX > you mean. > > The worst problem the Apollo has is marketing. When you think of a UNIX > workstation, is the Apollo the first thing that comes to mind? For many > people it does not come to mind at all. Why? > No Apollo is not a Unix box - *for starters look at the kludges with /etc/passwd... *second - what starts up your Unix shells... *funny within GMR3D & GMR2D your Unix system calls die... *Acl? Why don't they map *correctly* into Unix protections. Fix_cache and flush_cache exist to fix mappings between acls and unix permissions remember. *why do certain Unix ports take literally forever. Go ask alis (sic ... i really meant Alice). *i am sure that i will believe that Apollo is a Unix box when i see the required amount of Apollo ads (telling me 'i am so a Unix box')
peterson@utah-cs.UUCP (John W Peterson) (05/22/87)
I have ported a fair amount of Unix code (50K+ lines of C, shell scripts, makefiles, etc.) to the Apollo, and in general (speaking post SR9.2) I would say it's relativly painless. The major differences usually crop up in programs that want to know lots about /dev/kmem, a.out.h, or the guts of stdio.h. I would say it's much easier to port code to Domain/IX than to try and port it across different versions of Unix (say, from 4.2 BSD to ATT Sys5). Cheers, jp
bandy@amdcad.AMD.COM (Andy Beals) (05/23/87)
In article <1734@zeus.TEK.COM> bobr@zeus.UUCP (Robert Reed) writes: >Apollo currently is NOT a UNIX box. Agreed. >Rumors abound >that SR-10 of the Apollo system will be a "true" UNIX, implemented at the >kernel level. We wait to see. Our Apollo salesdroid was out today with his dog and pony show about "Native Ethernet, Unix Update and Network Computer System". The "native ethernet" is a 3-com(?) card that goes into the "at slot". They claim that while it's still a hair slower at getting data between Domain-Ring members, their engineering folks can't really tell the difference between Domain-Over-Ethernet and Domain-on-a-Ring. That's right, they're saying that if they run Domain-Over-Ethernet, it not only runs at the same speed, they encapsulate the Domain packets within IP packets so you can squirt them across gateways - but only T1 links, 56kbps is too slow. They were also claiming that TCP/IP throughput is 63% better with the "native ethernet". He also said that with SR-10, Aegis will exist for backwards compatability reasons and that Unix will be the base of their system. I'll believe that when I see it. The "Network Computing System" seems to be mostly vaporware right now, but they do seem to have some good ideas. Basically they're willing to hand out standard interfaces to subroutines that could be on remote machines. They have servers for deciding what machines to poll for certain subroutines and also a couple other functions. They didn't say anything about compiler improvements. They also made a face when I asked when they were going to start supporting NeWS. andy -- Andrew Scott Beals, {lll-crg,decwrl,allegra}!amdcad!bandy +1 408 749 3683
kjb@zeke.UUCP (Kevin Buchs) (05/24/87)
in article <1242@ssc-vax.UUCP>, ray3rd@ssc-vax.UUCP (Ray E Saddler III) says: > > I have run UNIX on an APOLLO workstation, but it was on a system > called MENTOR (a system installed on Apollo h/w to do electronic > design/test). It (the UNIX shell) seemed real wierd, and was made > to fit/run from AEGIS, which caused a lot of ~standard UNIX files > and utilities to be quite out of the norm. Mentor does not modify the Apollo operating system. The Domain/IX unix variant is ok, but not nearly as fast as other systems I have used. I hope Aegis 10.0 will improve this. -- Kevin Buchs 3500 Zycad Dr. Oakdale, MN 55109 (612)779-5548 Zycad Corp. {rutgers,ihnp4,amdahl,umn-cs}!meccts!zeke!kjb
Erstad@HI-MULTICS.ARPA (05/26/87)
Minor correction. Mentor does not FOR THE MOST PART modify the Apollo operating system. They do use a non-standard /lib/gprlib file which includes routines not normally distributed by Apollo.
mishkin@apollo.UUCP.UUCP (05/27/87)
In-Reply-To: amdcad!bandy@ucbvax.Berkeley.EDU (Andy Beals), fri, 22 may 87 20:52:56 [[Sorry for those of you who are receiving this twice. The Yale mailer bounced a bunch of targets.]] The "native ethernet" is a 3-com(?) card that goes into the "at slot". They claim that while it's still a hair slower at getting data between Domain-Ring members, their engineering folks can't really tell the difference between Domain-Over-Ethernet and Domain-on-a-Ring. That's right, they're saying that if they run Domain-Over-Ethernet, it not only runs at the same speed, they encapsulate the Domain packets within IP packets so you can squirt them across gateways - but only T1 links, 56kbps is too slow. They were also claiming that TCP/IP throughput is 63% better with the "native ethernet". This is a little garbled. There is no IP encapsulation. Routing through an internetwork (note that little "i") is handled the way it's been handled for the last year or so: using Apollo routers. The only thing that's new is we support Ethernet as one of the possible data link types that can be a network in an Apollo internetwork. As far as Domain performance, it is indeed just fine. As far as TCP/IP goes, one should note that the most likely reason it's better is that you generally have a route that's one hop shorter than before (when your node was on the ring and had an extra hop through a node that was on an ether and a ring). This isn't saying that "63%" is wrong, I just think people should understand the details. The "Network Computing System" seems to be mostly vaporware right now, but they do seem to have some good ideas. NCS is NOT vaporware. (I speak as an engineer working on the project.) It is fully functioning and in beta test. I personally have run it on Apollo, a VAX running 4.3, a Sun running SunOS 3.0, and an Alliant (running Concentrix [aka 4.2 Unix for Alliants]). BTW, we have a paper on NCS at Usenix next month. -- Nat Mishkin Apollo Computer Inc. -------
rees@apollo.UUCP (Jim Rees) (05/28/87)
Apollo currently is NOT a UNIX box. It runs an operating system called AEGIS, and provides libraries to simulate SV and BSD system calls, plus a lot of hacked up versions of standard programs which attempt to give the APPEARANCE of a unix system. I decided to try to verify this claim, and took a look at the source code to some of our unix commands. I just looked at the Berkeley commands, because that's what I use. Didn't check out the system V commands. Just going alphabetically through /usr/src/bin, here's what I found. Apparently unchanged from the Berkeley source tape, or with bug fixes having nothing to do with Domain/IX: awk, cat, chgrp, chmod, cmp, date, dd, diff, du, echo, ed, expr, false, grep, hostid, hostname, kill, ln, mail, make, mkdir, nice, od, pagesize, pr, pwd, rm, rmail, rmdir, sed, strip, stty, tee, test, time, true. 'ar', 'cc', 'ld', 'nm', and 'size' are different because we don't use a.out. Neither does sys V, so I don't think you can claim we're deficient here. 'cp', 'mv', and 'tar' have some modifications to make them work better with our typed file system. If you only ever used unix commands on our system, you would only ever have ascii typed files, and you could get by with the regular unix versions of these commands. We felt it was important that unix users be able to co-exist with aegis users on the same ring, so that's why they've been modified. The user interface to these commands looks just like 4.2 bsd as far as I can tell. 'df' has been changed to use an abstract interface to the file system instead of opening the raw device and reading the superblock. I guess we could have fixed it to understand our superblock, which is different from the bsd4.2 superblock, but it seemed better to put in the abstraction. Similarly, 'ps' uses well-defined interfaces rather than muck about in /dev/kmem. This seems like a better implementation to me, and the user interface (which is what's important here, I think) looks a lot like unix to me. 'write' has been fixed to work with windows rather than dumb terminals. 'csh' and 'sh' have quite a few hacks in them. These are hard to characterize. Some of it has to do with better error reporting. For example, if I run some program on my Sun (oops) that calls foo(), but foo() isn't defined, it says " (core dumped)". But if I run that same program on my Apollo, it says "reference to undefined global (process manager/loader)". I guess this is a matter of taste, but I prefer the Apollo way. 'login' and 'passwd' are pretty hacked up. This has to do with our distributed registry, which I think is better than /etc/passwd. I hear that part of the sr10 work is to make this more unix-like without losing the benefits of a distributed registry. 'mt' is completely different because we never implemented the tape ioctls. Guilty as charged on this one. We tried to set priorities and I guess this one lost. On the other hand, the user interface to the command seems to be just like 4.2 bsd. To be fair, you would have to also check out /usr/src/usr.bin and ucb. My guess is that you would find even fewer changes in these commands, because they tend to muck with things like /dev/mem less then the /bin commands do. The only thing I could find different in a quick spot check was ranlib, again because of the difference in a.out/archive formats. I can just about guarantee that a diff between the Berkeley source tape and our bsd 4.2 sources would be smaller than a diff between the Berkeley source tape and the sys V source tape. In other words, we're more nearly 'real' unix than AT&T is. Assuming you're from the Berkeley school. If you're from the AT&T school, just s/Berkeley/Sys V/. We're more nearly 'real' unix than Berkeley is. Anyway, I don't think I would want to work for a 'pure' unix box company. It's obsolete technology. What Apollo is trying to do, and I think it's a pretty good strategy, is provide enough unix to make you feel at home, and enough state-of-the-art computer science muck (object-oriented, uid-addressed, distributed file system, etc.) to entice the folks who like to live on the leading (ragged?) edge. It's sometimes hard to know where to draw the line. Note that this is all my opinion. I don't work for the OS group here at Apollo, have little to do with Domain/IX (any more), and can't tell you with any authority what's in sr10. Sorry this got so long. I'll shut up now. -------
bobr@zeus.UUCP (05/29/87)
Jim Rees replied to my statement: Apollo currently is NOT a UNIX box. It runs an operating system called AEGIS, and provides libraries to simulate SV and BSD system calls, plus a lot of hacked up versions of standard programs which attempt to give the APPEARANCE of a unix system. with: I decided to try to verify this claim, and took a look at the source code to some of our unix commands. I just looked at the Berkeley commands, because that's what I use. I appreciate his review of changes for Domain/IX. It is the first time I have seen such a concise description of the modifications made to BSD UNIX utilities for Domain/IX. I have a few comments on the material presented. 'ar', 'cc', 'ld', 'nm', and 'size' are different because we don't use a.out. Neither does sys V, ... I don't know about the SV comment, but I do know that the standard way for generating nroff terminal descriptions (as found in /usr/lib/term) is to compile a C source file and strip it. I believe this works both under BSD and under SV, but it doesn't on an Apollo, because the object format bears no resemblence. I'm not claiming that it should--just that this is one of the loose ends in Apollo's emulation of UNIX. There may be other dependencies here, but nroff driver tables is one I know about. 'ps' uses well-defined interfaces rather than muck about in /dev/kmem. I appreciate the fact that Apollo is trying to clean up some of the dangerous coding practices employed in the implementation of UNIX. I would like to see the well-defined interface used for implementing 'ps'. I would like to port 'sps', which has in my opinion a superior user interface. However, since I can get neither the source for the Apollo version of ps nor documentation or code for this interface (as far as I know), I'm stuck. 'csh' and 'sh' have quite a few hacks in them. These are hard to characterize. Some of it has to do with better error reporting. Some of it has to do with a lot of other things, like process forking/job control. Because of the underlying differences in process support, Apollo workstations do very poorly in forking processes. They work much better when the process address space is reused (controlled via the INPROCESS environment variable). /com/sh provides some nice error reporting features, which do not work under the modified /bin/sh or /bin/csh, and the usual UNIX tools (e.g. adb) are not available to do the corresponding sorts of probes under the UNIX shells. 'login' and 'passwd' are pretty hacked up. This has to do with our distributed registry, which I think is better than /etc/passwd. I won't comment here. Please note a recent posting on the difficulties this system has introduced in reconfiguring nets operating under Domain/IX. Anyway, I don't think I would want to work for a 'pure' unix box company. It's obsolete technology. Is that why sr10 is going to have a kernel level implementation of UNIX system calls? Or why IEEE is formulating operating system standards that look very much like UNIX? Or why superficially AEGIS itself looks very much like UNIX, with names changed to protect the guilty? Give me a break. Not mentioned in Jim's summary are changed to the support libraries. I'm not sure how much difference exists, but I've seen mentioned on the net that UNIX system calls fail when using DMR3D, and I have personal experience with TERMCAP. The Termcap library implemented on Apollo systems is something of a kludge. Under conventional UNIX systems is the notion that control information can be sent to the "screen" via the same stream that transmits data. This is a reasonable conclusion for a system first implemented on "terminals." Implicit in this notion is the ability to divine a set of character strings which control the screen in certain ways, and a library which can contain the particular character strings to service a great number of terminals. Unfortunately, control or special data access to the Apollo screen is available only through a functional interface. So in order to support termcap, some magic had to be employed. A call to tgetent() to establish a particular terminal type automatically spawns a vt100 terminal emulator task, which subsequently acts as a filter with predefined and unchangable characteristics. These characteristics include the creation of a new pad which covers the existing input and output pad, remaining in place until the program which called tgetent() terminates. In 4.2BSD the easiest way to find the width of the screen was via termcap (this information has been moved to the terminal driver in 4.3). Thus the simple act of trying to determine the width of the window prior to formatting output places an obscuring pad which captures all output for the duration of the program, and on exit any program output issued afte the tgetent() call similarly disappears. MH mail is an example of programs which use this technique and so require nontrivial changes to work on Apollo systems. Another example is more(1). I would class myself as a novice Apollo user, yet I was able to find these and many more differences between the BSD system I use and the Apollo system I am trying to learn in my free time. I thank Jim for confirming my contention about Domain/IX. Nothing in my claim was contradicted by his posting. -- Robert Reed, Tektronix CAE Systems Division, bobr@zeus.TEK