Path: utzoo!mnetor!uunet!oddjob!hao!ames!hc!lll-winken!lll-lcc!pyramid!prls!mips!hitz From: hitz@mips.COM (David Hitz) Newsgroups: comp.unix.wizards Subject: More Questions about Sun OS/ATT Merged UNIX. Message-ID: <1742@quacky.mips.COM> Date: 2 Mar 88 08:06:11 GMT Reply-To: hitz@quacky.UUCP (David Hitz) Distribution: all Organization: MIPS Computer Systems, Sunnyvale, CA Lines: 67 Keywords: SunOS 5, Merged UNIX Summary: So many questions, so little time. 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: UUCP: {decvax,ucbvax,ihnp4}!decwrl!mips!hitz DDD: hitz@408-991-0345