[TUHS] User maintained programs in the Second Edition

Clem Cole clemc at ccc.com
Sat Dec 24 02:57:02 AEST 2016


On Fri, Dec 23, 2016 at 5:27 AM, Joerg Schilling <schily at schily.net> wrote:

> Diomidis Spinellis <dds at aueb.gr> wrote:
> > On 23/12/2016 04:28, Doug McIlroy wrote:
> >  >> Does anyone remember whether at the time these were installed in the
> >  >> system-wide /bin directory,
> >  >
> >  > Those that I remember were in /usr/bin.
> >
> > So was "/usr/bin" initially only for user-contributed binaries, or was
> > it from its inception a place for binaries that were not essential for
> > system boot and could not fit in the root partition?
> From the talk from Stephen Bourne around 1990 at the Sun User Group
> meeting,
> /usr/bin started with user contributed binaries only.
> Later the directory was aquired by the system after many of the user
> contributed programs have been integrated into UNIX.

​Right - that follows what I had been told.   So /usr/local (for locally
compiled) and /usr/ucb (to differentiate from Research programs) were
introduced, which worked when UNIX was a source release.​

​Many makefiles in USENIX tapes use the /usr/local convention for new
programs but it failed to deal with binary distributions from ISV's ​

> At that time people started to use /usr/local and in order to interrupt
> this
> chain of bad naming, /opt/<vendor>/bin has been introduced.

​Almost right --- This was one of the things the /usr/group gave us.   IIRC
it was Heinz Lyclamia that proposed it BTW.   Before IEEE P1003 (aka POSIX)
the burgeoning industry folks started to talk about how to deal with the
plethora of almost, but not quite the same UNIX flavors.   The 1985
/usr/group API was the result (which would begat POSIX but that's a
different story).

Heinz was the pushing an ABI not an API.   He was sure UNIX would never be
able to compete with VMS or the like and get ISV's to the table without
one.  Two of the things he insisted that we consider was where to install
vendors code and /usr/opt/vendor was born (** /opt would come later **)​.
It was put in /usr because symlink did not yet exist AND people agreed that
the root file system should be as small as possible.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20161223/06ce5618/attachment.html>

More information about the TUHS mailing list