[TUHS] The origin of /home

Steve Nickolas usotsuki at buric.co
Thu Oct 11 10:22:34 AEST 2018

On Wed, 10 Oct 2018, Grant Taylor via TUHS wrote:

> On 10/10/2018 08:43 AM, Norman Wilson wrote:
>> I once thought of writing a paper entitled `/usr and /etc considered 
>> harmful,' in which I would have proposed:
> I would be interested in reading such a paper.
>> a.  It no longer matters a whit whether the (real) root file system can fit 
>> into a 5MB slice of the disk or the like, so just merge everything that 
>> spilled into /usr in the tiny-disk days back into the root where it 
>> belongs.
>> b.  /etc is largely junk.  Executables have long since moved into /sbin. 
>> Pretty much everything else that's there belongs (according to the original 
>> scheme, not the latter-day complications inflicted by those who didn't 
>> understand) in /lib.
> I never liked executable (think binaries vs scripts) in /etc or /lib. Maybe 
> it's just my ignorance.
> I've never had a really good grasp on the difference between bin and sbin. 
> Different people have different explanations.  Then there's Solaris 
> sym-linking /bin to /usr/bin.
> (I think) I get the /{bin,lib,…} vs /usr/{bin,lib,…} vs 
> /usr/local/{bin,lib,…}.  At least / being what's required to boot strap and 
> bring the system up to run level 1 (or comparable).  Then /usr being the rest 
> of the things installed by the OS vendor.  With /usr/local being where the 
> site would install all of their customizations.
> To me, this is more about scoping of who's responsible for what and what it's 
> primary purpose is.
> Given Norman's comments, I could see how / and /usr could be merged back 
> together.  Then I suppose that they could be restructured to remove /usr.
> Question:  Where do the following things belong, if not in /etc?
> · passwd / shadow
> · group / gshadow
> · inittab
> In other words, where do system configuration files live?  —  IMHO they 
> should be separate from the location of the files the programs consist of. 
> Much like /con above allowing most everything else to be replaced wholesale.

Here is how I understand the current system is intended to work:

1. /sbin for binaries for use by root that must be available before the 
system is fully brought up (and for an emergency copy of the Bourne 
shell), which should all be linked static.

2. /bin for binaries for use by all users that must be available before 
the system is fully brought up.  These may be linked dynamic.

3. /lib for libraries which are needed for binaries in /bin to work, and 
for kernel plugin modules in /lib/modules.

4. /usr/sbin for other binaries in the base system to be available to 
root only.

5. /usr/bin for other binaries in the base system to be available to all 

6. /etc for global configuration files used by the kernel and the base OS.

7. /opt/PACKAGE contains a full bin, etc, lib etc. folder tree for every 
non-base package (I would put almost everything here, including X Window 
in /opt/X11/bin etc.).

8. /home as the base for all user folders.

(Scripts and binaries are not differentiated in this system.)

I think I would be prone to do a cleanup of the system to isolate 
everything into some form of the above.  Just my opinion.


More information about the TUHS mailing list