Subject: Re: Package Paths Proposal v2
To: None <tech-pkg@netbsd.org>
From: None <Havard.Eidnes@runit.sintef.no>
List: tech-pkg
Date: 01/03/1999 15:41:47
woods@most.weird.com (Greg A. Woods) wrote:

> SunOS-4 was actually going in the right direction by moving
> /lib/* to /usr/lib and /bin/* to /usr/bin, but they didn't go
> far enough (i.e. they didn't force admins to give up on having
> a separate /usr filesystem), so they ended up with a very
> complex and sometimes unstable mess (not to mention the mess
> they left between /etc and /usr/etc!).

I think I remember seeing the announcement for the new hier(7) setup
around when 4.3 was released, together with the rationale for the
reorganization.  Not sure I still could find it, though.  If my memory
serves me, the reasons for those parts of the proposal related to the
root file system were mainly to:

  - reduce the rate of updates to the root file system so that a
    crash is less likely to cause a broken and/or unrepairable root
    file system

  - reduce the volume of the root file system to what's essential to
    get the system back on it's feet again, and to reduce the volume
    of what would be needed for an /altroot.

I think that going back to having a humungous root file system would
negate both of these benefits, and I would argue against doing so.

Other part of the scheme was to have a separate /tmp file system
(required to attain the reduced update level on the root file system),
the creation of /var to enable the removal of /usr/tmp and /usr/spool,
so that /usr could be mounted RO (and, again, to reduce the volume of
updates to /usr which could increase the danger of corruption if a
crash was to occur), moving executables and large data files (such as
termcap) away from /etc (executables typically to /sbin), refining
/etc to contain mainly "config files", renaming /usr/etc to /usr/sbin,
adding /usr/share for MI sharable files, distinguishing between what
goes into /usr/lib, /usr/libexec and /usr/libdata, etc. etc. etc.

As you note, Sun only went part of the way when SunOS 4 was
introduced, in that they kept /usr/etc around, most probably for
compatibility reasons with earlier SunOS releases, and in the same
vein Sun also kept sendmail in /usr/lib and did not introduce
/usr/libdata or /usr/libexec at that point either.  SunOS 4 also
needed to have /usr mounted to do system recovery if I remember
correctly, whereas that didn't seem to be required on a system
adhering to the 4.3 hier(7) setup.


- H=E5vard