below...

On Fri, Dec 23, 2016 at 5:27 AM, Joerg Schilling <schily@schily.net> wrote:
Diomidis Spinellis <dds@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.

Clem