[comp.sys.sequent] Sequent S81 running Dynix, att universe

csg@pyramid.pyramid.com (Carl S. Gutekunst) (03/14/89)

[If you don't care about System V, hit 'n' now!]

[If Sequent won't answer technical questions here, then I'll do it for them.
What Sequent needs to do is hire some of their more technically competant and
well-known-on-the-net customers, like the way Encore hired Barry Shein. Maybe
Ron Christian can be enticed away from Fujitsu. :-) :-) :-) Just a JOKE, Ron!]

In article <368@pbseps.UUCP> rdp@pbseps.PacBell.COM (Richard Perlman) writes:
>System V seems to be only half-heartedly implemented.

That's not quite fair. Essentially, the Dynix att universe is a mapping layer
for translating SVR2 semantics into 4.2BSD. A combination of the following
hooks are employed:

- The att universe runtime library (libc.a) remaps a number of calls from SVR2
  into their moral equivalent in BSD 4.2 calls. Sometimes, the bulk of the
  "system call" is handled entirely in the library. An example is the uname(2)
  call. (Note, there is nothing at all wrong with this; the SVID specifically
  allows for it.) In addition, Dynix takes advantage of some of its extended
  facilities; for example shared memory operations are performed through the
  mmap(2) facility.

- A number of new system calls were added for semantics that were beyond the
  reach of library calls, e.g., chown(2), open(2), creat(2), and setuid(2).
  There are also some kernel hooks for signals.

- The notion of conditional symbolic links was added. The conditional symlink
  points one of several ways, with a value in the u table selecting which path
  to follow. Of course, this is how the notion of "universes" is implemented.
  It is a very useful and elegant concept (assuming you consider symlinks a
  good idea at all, which many purists do not), and at one time Pyramid and
  Sequent were jointly trying to convince Sun to adopt support for conditional
  symlinks in NFS. I don't know whatever happened to that.

The weakness of the current Dynix implementation is that *distinctly* SVR2
facilities that cannot be emulated by the 4.2BSD kernel are not available.
For example, the SVR2 flock(2) provides either mandatory or advisory file
locking. The 4.2BSD kernel can perform advisory locks only; hence the Dynix
flock(2) also is only capable of advisory locks. Perhaps the most painful
limitation is termio(7), as observed by Mr. Perlman. The Dynix termio calls
all have the correct structures and ioctl(2) calls of SVR2, and code will
compile correctly. But the distinctly System V capabilities like VMIN, VTIME,
and the useful permutations of IXON/IXANY/IXOFF silently fail to work. I do
not believe named pipes work entirely, either, although they could.

The Dynix implementation does cover a large percentage of the System V utili-
ties. The things I've had the most trouble with are datacomm programs. For
example, when HoneyDanBer UUCP is compiled for System V, it is very aggresive
about using all kinds of SVR2 features; it won't run on Dynix. Of course, if
you configure HDB for 4.2BSD, it compiles and runs on Dynix without a hitch. 
Also non-portable are the distinctly System V utilities like init/getty/login.

Note that I am only commenting about the current Dynix *implementation*; the
*design* is not significantly different from the "merged UNIX" strategy that
Sun Microsystems has been following for some time. Library calls, and kernel
when you have to. What Dynix needs is to be brought up to date; SVR2 was old
news three years ago. Perhaps even smarter would be a brand new symmetric port
of SVR3, and forget Berkeley. I'd bet anyone lunch that that is exactly what
Sequent and Unisys are doing, even as we speak; Unisys presently is offering
only an SVR2 port for their version of the Sequent S27 and S81. 

What is humorous -- to me, anyway -- is that Dynix has the internal implemen-
tation of a merged system, but the external appearance of a Pyramid-style dual
port. (A true dual port has two complete and independent sets of system calls,
amongst other things.) Given all the reasons why *not* to do a dual port, this
seems like more of a marketing decision than an R&D one. I haven't seen the
Harris or Gould dual port systems, so I can't contrast them.

Back to Richard Perlman:
>There are problems with term i/o and some simple things (news) just don't
>work at all.

In article <455@sendai.ann-arbor.mi.us> rich@sendai.UUCP (K. Richard Magill) writes:
>What news?  Oxtrap has been running news for almost 2 years now.

Wrong concept. There is a System V utility called news(1), which has nothing
at all to do with Netnews or Usenet.

But I wouldn't call news(1) a "simple thing." Neither the Dynix version nor
the original SVR2 source works (I tested it myself); it doesn't find any news
files. The problem is news.c does its own read and scan of the /usr/news
directory. Dynix cannot (at least, it better not!) manipulate what a program
gets when it reads a raw directory. And of course, Dynix uses the BSD file-
system, which doesn't look much like a System V filesystem. 

So news.c either has to be fixed to use dirent.h (as it does in SVR3) or con-
verted to read BSD directories. Note that any other machine that uses the BSD
filesystem will have exactly the same problem, including Pyramid and Sun.

<csg>

phil@sequent.UUCP (Phil Hochstetler) (03/15/89)

In article <62468@pyramid.pyramid.com> csg@pyramid.pyramid.com (Carl S. Gutekunst) writes:
| In article <368@pbseps.UUCP> rdp@pbseps.PacBell.COM (Richard Perlman) writes:
| >System V seems to be only half-heartedly implemented.
| 
| That's not quite fair. Essentially, the Dynix att universe is a mapping layer
| for translating SVR2 semantics into 4.2BSD. A combination of the following
| hooks are employed:

[ discription of the SVAE (System V Application Environment) deleted]

| But I wouldn't call news(1) a "simple thing." Neither the Dynix version nor
| the original SVR2 source works (I tested it myself); it doesn't find any news
| files. The problem is news.c does its own read and scan of the /usr/news
| directory. Dynix cannot (at least, it better not!) manipulate what a program
| gets when it reads a raw directory. And of course, Dynix uses the BSD file-
| system, which doesn't look much like a System V filesystem. 
| 
| So news.c either has to be fixed to use dirent.h (as it does in SVR3) or con-
| verted to read BSD directories. Note that any other machine that uses the BSD
| filesystem will have exactly the same problem, including Pyramid and Sun.
| 
| <csg>

On the contrary, the kernel performs what is called "directory emulation".
Any program using the SystemV read system call to read a directory, gets
a directory formatted with 14 char names.  I think the problems with
news(1) is somewhere else.

Sequent does read the net on a regular basis but maintains a low profile.
-- 
Phil Hochstetler		UUCP:  uunet!sequent!phil
Sequent Computer Systems
Beaverton, Oregon

rich@sendai.ann-arbor.mi.us (K. Richard Magill) (03/19/89)

In article <62468@pyramid.pyramid.com> csg@pyramid.pyramid.com (Carl S. Gutekunst) writes:

(You obviously have source.  I don't.)

>What Dynix needs is to be brought up to date; 

This isn't unique to the SysV world.  I could mention Van Jacobson
code, (which is might not be fair), but surely async io, sigio, and a
host of other 4.3 socket features are long overdue.

>SVR2 was old
>news three years ago. Perhaps even smarter would be a brand new symmetric port
>of SVR3, and forget Berkeley.

Uh, this isn't really quite possible.  There are some of us out here
who are really using symmetric code and applications that SysV hasn't
even begun to think about.

First and foremost, (remember I'm not a source code owner), if at&t
has a working version of streams, why are so many vendors marketting
SysV w/sockets only?

>What is humorous -- to me, anyway -- is that Dynix has the internal implemen-
>tation of a merged system, but the external appearance of a Pyramid-style dual
>port. [...] Given all the reasons why *not* to do a dual port, this
>seems like more of a marketing decision than an R&D one.

I don't agree.  Must simpler to support as is.  And personally, I get
kind of pissed at the Sun only features of SunOS.  ie, I'd rather
system V was in SysV universe and I can import the things I
like/want/need which is precisely what sequent currently provides.

>In article <455@sendai.ann-arbor.mi.us> rich@sendai.UUCP (K. Richard Magill) writes:
>>What news?  Oxtrap has been running news for almost 2 years now.
>Wrong concept. There is a System V utility called news(1), which has nothing
>at all to do with Netnews or Usenet.

Ok, ok.  too many things called gnus or gnews or news or nEws or ...
in the world.
-- 
rich.