Path: utzoo!mnetor!uunet!yale!cmcl2!edler From: edler@cmcl2.NYU.EDU (Jan Edler) Newsgroups: comp.unix.wizards Subject: Re: ABIs and the futurrrr of UNIX(tm) Message-ID: <24674@cmcl2.NYU.EDU> Date: 31 Mar 88 20:58:54 GMT References: <431@micropen> <185@tscs.UUCP> <587@garth.UUCP> Reply-To: edler@cmcl2.UUCP (Jan Edler) Organization: New York University, Ultracomputer project Lines: 47 Summary: another disadvantage There are always pros and cons to standardizing something in this business. The main advantages of a source compatibility standard (such as SVID or POSIX) is that it increases portability and availability of software. A disadvantage is that programs conforming to the standard can't take advantage of extensions provided by specific UNIX implementations. Of course, non-portable programs will use them and, if successful and generally applicable, such extensions may be incorporated into future revisions of the standard. In the case of binary interfaces, the technical situation is much the same for each processor type. Portability of binary programs is improved, but if a program is distributed in standard binary form, it can't take advantage of extensions provided by specific UNIX implementations. I think it will be difficult to get such extensions incorporated in new revisions of the binary standard if they don't directly corespond to new features also being added to the source standard. In both cases, I worry that the UNIX implementor will be discouraged from exploring innovative extensions to the system. If most distributed programs adhere to the relevant standard (source or binary), the incentive to innovate is reduced. The benefits of source compatibility are so great that I believe it is well justified. However I'm not so convinced about the benefits of binary standards. Consider that if I build a machine based on microprocessor X, and many programs are available only in binary standard form, I might think twice before investing significant effort into highly optimizing compilers, since the binary programs won't benefit (since they were presumably compiled on my competitor's machines, with inferior compilers but larger market share). And I might be disinclined to invent new implementations of standard kernel functionality, such as getpid() in user mode time(), gettimeofday(), etc. in user mode pipes in user mode more efficient signal handling mechanisms All of these enhancements (and many others) can be done in a way that conforms to source standards, but none of them will benefit binary standard programs. Many of them aren't even generally applicable (e.g. user mode pipes make more sense on multiprocessors than uniprocessors). I'm not saying the success of binary standards will kill innovation, but I think it would have a detrimental effect. Jan Edler NYU Ultracomputer Project edler@nyu.edu