cpr%Shasta@.ARPA (05/02/85)
From: imagen!cpr@Shasta It is high time someone spoke out on this august forum on the topic of Apollo workstations. At Imagen, we have a few dozen diskless DN300's (a basic black and white workstation with 1.5MB--don't buy them with anything less), and one DFS-500 (a 1MB RAM, 500 MB high-speed disk file server) for each 5 DN300's. We decided in their favor for two fundamental reasons: they have a true single-level file store--that is, any file on the entire ring is accessible to any machine, modulo protection--and they promised to have what appeared to be an excellent set of integrated software maintenance tools (DSEE, for Domain Software Engineering Environment). (I can't usefully comment on DSEE, since we are just starting to use it, but I will summarize our experience in a few months.) We use these workstations mostly for software development, and are also just starting to use Mentor Graphics software for hardware development. First the bad news. We had a rummy experience with cabling--if you don't use the Belden cable they so lightly recommend, their network will not work. Period. For some reason, Belden makes much better cable than any of their competitors, and the Apollos need this quality to work. We made the mistake, since our Belden cable was 6 months back-ordered, of using some other "equivalent" cable, and ended up replacing all 8,000 feet of it. Apollo's only fault here is not absolutely requiring its use. Further, you really have to know how to make those BNC connectors, or, again, the network will not work. (I guess the same can be said of making N-type connectors on Ethernet, but if you use the stinger taps, you can usually avoid problems.) As far as hardware reliability goes, the Apollos are quite good, EXCEPT, from our experience, for their ring interface boards. Unfortunately, this is their Achilles heel, since if a ring board goes bonkers, it will just as likely take out the entire ring as not (unlike the passive networks). And, when you're entirely diskless, even if your ring board goes bad in a way which doesn't bring down the net, you are personally down. (Same as your Ethernet card going south in a diskless Sun, of course.) On the whole, however, now that we have the proper cable installed, and Apollo has been able to track down the marginal transceivers and ring boards, network reliability has been good. The DFS-500 file servers have been rock solid. I believe we've had one failure amoung all 8 servers since they were installed about 6 months ago. This is with a machine room air conditioning system that is most politically described as recalcitrant. I'm impressed. Apollo is a truly professional company, and it shows in their field service: they have competent people, and they are quite responsive. (This is their Mountain View office supporting us.) One reason we didn't buy Suns was because they didn't have a field maintenance organization at that point (and didn't for quite a while after, if they do now--I haven't kept up). I also have to put in a good word for our sales rep (Ed McGinnis), who is really one of the better people in this business. One picky point about mice: I happen to like the Kirsch, er, Mouse Systems, mice above all others (the one that Sun uses). Apollo uses the clumsiest of the Logitech mice, and if I were given the chance to order over again, I would buy the keyboards without a mouse (I think you can do that), and use the Mouse Systems Logitech-emulation plug-compatible optical mouse. Now on to Software. I couldn't stomach the thought of managing 50 different file systems, even with the public file system hack that Sun has. Apollo's single-level file system is truly wonderful, both in concept and in implementation. Any file is completely accessible to any process on the ring, a Multics-like sophisticated protection scheme permitting. I can't see how anything less would ever be acceptable. I'm not impressed with the Sun NFS proposal as an operational tool, since it would still have "private virtual disks" for efficiency's sake (someone correct me if I'm wrong). The arbitrarily-precise protection scheme that Apollo gives you for file system objects--you can allow or disallow a variety of access modes to any given object from any given user/project/organization/node, in any combination, wildcards included--is important for some environments, especially if you have randoms from all over a company on the network. The Apollo Display Manager is truly useful, and makes the Sun default "virtual dumb tty" windows looks anemic by comparison. The Display Manager provides the concept of arbitrarily scrollable windows on transcript pads containing both text and graphics. The ability to scroll back in any process transcript arbitrarily far, and to scroll right and left when the line length or graphics output exceeds the window width is amazingly useful, and is something I wouldn't give up now that I've used it. The Display Manager also has a soft interface that is user-customizable, and I've used that customizability to its fullest extent, by providing our users with a set of key definitions that provides a simple Emacs emulation. We still run Gosling Emacs in a window, of course, when we need the "real thing", but having an Emacs-like interface to ALL system interaction is addictive. The Apollo Display Manager provides a very powerful set of graphics primitives, both in pad and direct screen access modes. The direct screen access within a window means, for example, that software packages like Interleaf can easily work within a window, when they can't on the Sun because the Sun lowest-level access (pixrect?) is too inefficient. The same is true of our Gosling (Unipress) Emacs port--it works in direct screen mode for speed, but within an ordinary window which can be resized, moved, etc., at any time. My feeling about the Sun window system, based soley on reading the manual and watching the Sun-Spots digest, is that it more of a mechanism for OEMs and others wanting to write their own window systems, than a user-level window system. The Display Manager supports user-definable icons, representing windows or groups of windows. It has the basic set of screen fonts available per-window, so you can customize a given window for readability or capacity. The Apollo has a Multics-like dynamic binding scheme whereby libraries aren't normally linked with an image until it is executed. This has all the good effects you'd expect (see the Organick book on Multics for details), such as avoiding duplication of many libraries in all images, both on disk and in memory. It also means that executable images don't become obsolete with system updates--as long as the library interfaces are upwards compatible (something that Apollo guarantees for a transition from version n to n+1, and which normally is true for many version changes), then you don't have to relink anything. The Apollo operating system, Aegis, provides a user-accessible extensible streams package. This means, for example, that the DSEE package, which stores differences between n versions of a source file as an n-way branch inside the file itself, can present a ordinary stream file to the outside world at high efficiency. It also means that adding access to foreign file systems can be done at user level with a new stream type. Another feature of Aegis is user-level dynamically-loaded device drivers--you can build your own Multibus device driver and install it at any time, without rebuilding anything. The fundamental, low-level Apollo file system access primitive is mapping file pages, which leads to great efficiencies. For example, the stdio package in Unix maps files directly, avoiding the multiple copies that occur in every Unix implementation I've ever seen. One of Apollo's goals for Aegis was to keep the kernel itself VERY small and simple. They seem to have achieved that, with user-level libraries doing most of what you would normally associate with an "operating system:" display, stream, network, etc., management. This is great for keeping the fundamental kernel small and maintainable, but it does open up one problem area: some libraries' global data are present and unprotected in every processes' address space. Thus, an errant process can clobber other processes' stream or display manager data bases, which of course doesn't formally "crash" the workstation, as the kernel is incorrupt, but it does make it unusable! This could be fixed, I suppose, if they would add one more domain of protection to their system so that the libraries could run at a higher right than user mode. They have an excellent TCP/IP implementation, running as a user process either on each node or on a gateway node, using IP gateways running on any node that has a Multibus and an Ethernet interface. We have been heavily using a beta test version of their 4.2 TCP/IP socket support for a couple of months now with no problems. From a disked node to an unloaded 750, they get almost 500Kbits/second. From my diskless DN300, I have consistently seen 250Kbits/second to an unloaded 750. Not bad for a user-level implementation! We are just about to start beta-testing their 4.2 implementation. From my playing with it, it looks excellent (as does their System V implementation--they use a Ridge-like scheme of selecting the version of Unix to emulate based on an environment variable). They no longer consider their 4.2 and System V Unix environments as an add-on, though--market pressures have made them realize that they'd better have real Unix to a "t" or they won't survive in some segments of the market. I know they made substantial changes to Aegis to support their new Unix products (called Domain/IX). I'll report back after a few months of experience. I might also recommend the Interleaf software here, which we use on the Apollos--it's probably the world's best WYSIWYG text and graphics editor to date. It's a little pricey--about $3K per node, after the first node, which is $8K. (Disclaimer: Interleaf resells Imagen printers as part of their bundled systems, so I'm not a totally disinterested party.) I don't have any experience with their color systems (DN550 and DN660), but I have played with them a little, and they both exhibit impressive display speed. Of course, I have a lot of nit-picky complaints about the Apollos, but that's inevitable when you use a system daily. I do wish they would get over their religious committment to ring networks, and support an Ethernet network interface--there's apparently no technical reason they couldn't, other than internal adherence to the ring religion, and lack of market pressure. For smaller sites such as ours (we'll never have more than ~100 nodes, I hope), I have strong reasons to believe the performance using Ethernet would match their current ring net, and since we already have Ethernet everywhere, it would have been nice not to have to also cable the world for the ringnet. Oh, of course--I forgot the most important feature of the Apollo system (tongue fairly firmly inserted in cheek): they have, for my tastes, the most wonderful keyboards in the world. The Sun-1 keyboards were unspeakably bad, and the Sun-2 keyboards are very much like the Apollo keyboard (Microswitch, I believe), but they have an amazingly brain-damaged mechanical keyclick. The one thing wrong with the Apollo keyboard is that only some of the keys are up/down encoded, so there is no obvious left-hand "meta" key, something near and dear to the heart of an ex-ITS Emacs freak. --Chris Ryland {decwrl,shasta,ucbvax}!imagen!cpr