On 25 Apr 2015, at 01:11, Clem Cole <clemc at ccc.com> wrote:
On Fri, Apr 24, 2015 at 6:15 PM, Sampsa Laine <sampsa at mac.com> wrote:
hy they put binaries in /etc, I always thought that was a config directory, now the name
makes sense: /etc = random stuff goes here since we don't have /sbin yet :P
?/etc goes back to very early Unix (at least 5th edition). Ken put things that only an
admin would need in there. At it was in the PATH of root typically.
/sbin is >>static<< bin not systems bin and it's very late in Unix
development (i.e. it came from the Summit guys in the mid 1980s, not research). It was
created when unix started to support shared libraries it needed to split bin in the stuff
needed before sharing and statically linked (typically systems stuff)? vs. stuff that
could be shipped with a shared library. Difference between ed and ex/vi.
I'm aware of its history - however nowadays the meaning has shifted to "sysadmin
tools that should be in root's path and that's about it" - some of the stuff
isn't necessarily even statically linked on some Linux distros.
However I always found the naming of one of the most crucial directories of a unix box
"etc", i.e. random stuff. :)
Shared libs came very late to UNIX. To give Summit
(and Columbus) credit, it was definitely there by system V and I don't remember it in
PWB 3.0 (aka System 3.0 when it got "branded" by Summit). PWB 4.0 never left
the Bell System it may have had it but I've forgotten and I do not have an PWB 4.0
docs. By the time Summit picked up the other BTL changes you got the System V.
Also /bin <-> /usr/bin split was left over from the RK05 (2.5Mbyte) disk and also
very early in Unix - certainly was in Research 6th, and I've forgotten if it was in
5th.
And now we also have /usr/local/bin, /opt/<package>/bin, /opt/bin and I _THINK_
I've seen /opt/sbin. It's insane..
So in the old days of Research (and later BSD) you
had:
/bin <-- mortal user programs that would exist before anything was mounted (ed, ls,
kept to a minimum..)
/etc <-- binaries and configuration files and script - used for booting, system
maintenance and like (mount, umount, the password file ,,)
/usr/bin <-- mortal programs but might not need until after running multi-user
(init had only 2 states -- single user or multi-user) all the other programs from section
1 that were not in /bin
And this made sense - now you never know where some installer will randomly fire off a
binary or three.
This allowed you to balance the space needed.
/lib and /usr/lib has similar beginnings. /lib contain libc.a, the compiler itself, cpp
front end and not much else. Everything was put in /usr/bin
Funny, to this day I still in terms of /bin and /lib being very small and only limited in
what is there.
In fact, their was an early attempt at what we now called the union file system to try to
bring directories like these be "visible" as a single directory in one the UNIX
- again IIRC that the Columbus guys. Berkeley later added it in BSD 4.4 although it was
buggy for a long time and really did not come into being until the VFS layer/file system
switch comes about in the late 1980s.
I remember using a Linux distro in the mid-90s that did something like this, it mapped
directories from a CD onto a HDD partition so it was a strange mix of a live CD and an
installed system..