[TUHS] The origin of /home

Grant Taylor gtaylor at tnetconsulting.net
Thu Oct 11 03:08:58 AEST 2018

On 10/10/2018 08:43 AM, Norman Wilson wrote:
> The first UNIX system I ever used, ca. 1980, had users' home directories 
> in /u.  I suspect it was that way (as suggested in some earlier messages) 
> just for storage management: separate file system from /usr.

I sort of like /u because I'm lazy and it's shorter than /usr or /home. 

> I've carried /u around with me ever since to other systems I've set up 
> from scratch, except in my home environment where I've made a radical 
> departure: everything that isn't part of the base OS is in a tree 
> rooted at /con, so home directories are /con/u.  /con was `constant,' 
> inspired by /var, meaning stuff that should be preserved when the OS 
> is reinstalled--everything else should come from installation media or 
> configuration management.

Save for /etc, I like the spirit of /con.

> But in any case there's nothing especially novel about moving users' home 
> directories out of /usr, and since it's UNIX, nothing that says there has 
> to be any standard at all.

The wonderful thing about standards is that we have so many to choose from.

> On the systems I am currently paid to help run, most users have 
> home-directory names like /h/u12/c4/00/c4ntest.  There is no attempt to 
> glue together a single name hierarchy; we have in excess of 17000 users 
> so that would be something of a mess.  (I guess enormous directories 
> aren't the resource pigs they used to be,

I don't know if it's still the performance penalty that it used to be, 
or if the systems are just faster and / or better and overcoming said 
performance penalty of big directories.

> though symlinks are just as bad as they have ever been.)

Would you please elaborate on what you mean by that?

> There's the ~user shell syntax for those who like that; I don't, but 
> I have a little shell script in my personal bin directory so I can do 
> things like ls `home c4ntest`; it all just works.

I use tilde somewhat frequently, particularly when I want to manipulate 
contents from someone else's home directory.  (Usually copy something 
from my directory elsewhere when running as root.  I.e. scp a file to my 
home, then move said file to where it belongs, which my normal user 
can't write to.)

I've done some other things like your "home" script (or variables).  But 
I found them lacking when wanting to do file manipulations like above.

> 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.

Are you talking about just things like /usr ~> /home or all other 
mounted file systems too?

I still see a reason to have other files systems, particularly if they 
come from block devices with different storage criteria.  I.e. RAID 1 
for root, RAID 5 for user data, RAID 0 for news spool & HTTP cache, etc.

> 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 

> Unfortunately all the quick hacks and poorly-considered tweaks of the 
> past have long since been cast in stone by widespread convention, so 
> it's fruitless to try to clean any of this up.

That doesn't make it any less of a thought experiment or enlightening 

Grant. . . .
unix || die

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3982 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20181010/20595cbe/attachment.bin>

More information about the TUHS mailing list