More Questions about Sun OS/ATT Merged UNIX.

David Hitz hitz at mips.COM
Wed Mar 2 18:06:11 AEST 1988


I was at the USENIX Sun BOF and got to see a description of some of the
merged UNIX plans.  The session was very open and informative, but I do
still have some questions.

As described at the BOF, SunOS 5 is phase I of merged UNIX, and will be
available Q3 or Q4 of this year.  It will be SVID compatible and the
default environment for users will be Sys-V-ish.  (Surprise!  But they
claim it's easy to switch so not to worry.)

In cases where a particular command differs between the two OSs, Sun
will include both versions of the command.  The version you get depends
on your path.  (Sounded like if you have /usr/ucb first you are in
"BSD-mode" and if you have /bin:/usr/bin first you are in "SYSV-mode", but
that wasn't completely clear ...).

What I'm still curious about is source code compatibility and header
files.  For instance, will the current tree of Sys V.3.1 commands build
unmodified under SunOS 5?  What about the SunOS 3.X command tree?

If the default environment is really SYSV-ish, that seems to imply that
(1) SYSV commands must build unchanged and (2) the SYSV headers must
be the ones that are really in /usr/include.

But obviously Sun must also want the Sun command tree to build
unchanged.  (Note: I'm not really interested in the commands per say.
They are just a convenient body of UNIX user code.  If the command
trees won't build unmodified then customer applications probably won't
either.  (Possibly excepting some administrative commands.))

So the obvious questions are, how do you specify which style source you
are using?  Where do the "old fashioned" Sun style headers go?  Is
there some special Sun header directory, kind of like BRL in reverse?
Or maybe nami will be modified to allow BSD and SYSV style users to see
the directory tree differently as some converged UNIXs have done?
Maybe there's a new-and-improved solution I haven't even thought of?

More miscellany: How are hard coded paths in shell scripts and C code
handled?  Or shell scripts that don't set PATH explicitely?  This only
matters where commands differ, but one needn't search hard to find
differences that could break shell scripts (e.g. /bin/cat, /bin/ls,
/bin/tr, /bin/ps, /bin/nm, ...).  Having the default environment be
SYSV would imply that SYSV style shell scripts work fine, but again Sun
would want their stuff to work as well.  (Nami hack again?)

Where there are semantic differences like the meaning of the path "",
or whether regular users can chown, is the semantic used determined
by whether the code is compiled as SYSV code or BSD code, or is there
a per user bit that specifies flavor?

I know that these problems are tricky, and maybe the answer for some of
them is simply, "That's too hard to solve perfectly.  We will support
only the BSD (or SYSV) behavior."  That's a fine answer by me (although
I expect the arguements with ATT aren't much fun :-).

My motivation for asking these questions is this:  MIPS -- and probably
other UNIX manufacturers and users -- is very interested in tracking
standards and in what the future of UNIX will be.  Right now ATT/Sun
seems to be running with the standards flag, but there isn't much
public information available about where they are taking it.  (Working
for a UNIX supplier I'm especially interested in advanced information.)

The Sun BOF was a great start, and I'd like to encourage the flow of
information from ATT/Sun to continue so that the UNIX world isn't taken
by surprise.

-- 
Dave Hitz	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
UUCP: {decvax,ucbvax,ihnp4}!decwrl!mips!hitz 	DDD: hitz at 408-991-0345



More information about the Comp.unix.wizards mailing list