On 09 Jul, 2004, at 15:30, Brian Medley wrote: > On Fri, Jul 09, 2004 at 12:44:27PM +0100, David Ledger wrote: >>> It would not have to break every shell script. For example, >>> the behavior of some versions Solaris depends on your path. >> >> The behavior of _all_ versions of Unix depends on your PATH. > > True, but I am not aware (but I don't have significant > experience) with many Unix variants that contain multiple > versions of the same utility. Solaris had a directory tree > called xpg4 (iirc) - something like /usr/xpg4/bin, > /usr/xpg4/sbin, etc. /usr/bin/ps was the old compatible ps and > /usr/xpg4/bin/ps was the "new" open group standards compliant ps. > > This is what I was getting at. But the "path" concept is the very core of Unix. It has been since the beginning. If you don't understand the implications of the "path" then you don't understand Unix. UNIX has two primary "roots" -- BSD and SystemV. BSD Unix meetings (Usenix) were long hair and sandals; System V meetings (Unisphere) were suits. Or put another way BSD Unix had its roots firmly in the academic world, System V was a product used for "real world", i.e. production use. For many years, SystemV had something like 90% market share. (In the form of "black box" systems from SCO!) Each of those "universes" had duplicates of the same commands, but they behaved differently, different output, different arguments, AND same arguments, different output! As part of the constant efforts to gain "market share," (new clients) ALL Commercial Unix variants implemented a "universe" concept so that one could switch from one style to another. By the early 90s every "unix" out there had two directory trees for the primary "command" structure. The ability to do this is one of the strengths of Unix. As Unix evolved, compliance with things like the SVID test (for System V compatibility) and the assorted POSIX and UNIX(tm) branding test suites have homogenized things to the point where today, one never finds a real BSD or a real SystemV environment. Then GNU and Linux got into the mix and generated another batch of variants... now the same program would take either arguments. xpg4 (1992) is one of the Unix standards. Solaris is itself a bastardization of Unix. The old Sun OS was predominantly BSD Unix. Sun worked a deal with ATT(or was it IBM) to generate a new Operating system -- the product was called Solaris, and was basically a SystemV Unix. But Sun was confronted with a major conversion problem -- it's existing customer base was BSD folk, but it was trying to lure new customers who were System V folks. (DEC and IBM did the same thing.... And remember, Unix was invented on a PDP! Sun did not exist as a company for another 10 years! Bill Joy was still in grade school!) OSF was much the same thing - Digital was the only vendor who ever implemented OSF/1 -- every other vendor made their existing Proprietary versions of Unix "compliant" with the OSF/1 standard. How? by modifying the path command as much as anything. The we get to Linux... there is NOTHING common about Linux. Try running Alpha Linux sometime, or even Linux on the PowerPC. Those variants are quite different from Wintel Linux by Red Hat (which is what everybody REALLY means when they say Linux.) Darwin (i.e. OSX) happens to derive from FreeBSD, so it's dominant look and feel is BSD Unix. The BSD Unix look and feel is quite different than Linux or System V. Many, if not most, of the differences are proprietary. That is the main reason why neither GNU nor Linux conform to the Unix standards. [The discussion of how "Standards" can be proprietary is a separate can of worms.] T.T.F.N. William H. Magill # Beige G3 - Rev A motherboard - 768 Meg # Flat-panel iMac (2.1) 800MHz - Super Drive - 768 Meg # PWS433a [Alpha 21164 Rev 7.2 (EV56)- 64 Meg]- Tru64 5.1a # XP1000 [Alpha EV6] magill at mcgillsociety.org magill at acm.org magill at mac.com