The not so secret history of /var
Originally, Unix had no /var; what is currently put there went
into /usr instead (with some of it going into /etc), so you had
/usr/log, /usr/spool, /usr/tmp, and so on. Remnants of this
era still linger on in /etc, where you still find a certain number of
frequently updated data files like /etc/passwd.
(One might sensibly ask why Unix had both /tmp and /usr/tmp. My
guess is that it goes back to the days before /usr, and so /tmp had to be retained when /usr was
added but at the same time people wanted a bigger scratch space, so
/usr/tmp was created.)
Then along came the idea of diskless workstations (I believe originally
from Sun). Even back then, /usr was the biggest system filesystem, so
no one was really enthused about the idea of each diskless system having
its own copy. Since at this point symlinks had been introduced, people
came up with the idea of moving everything writable from /usr into a
new filesystem, /var, and leaving symlinks behind so that people and
programs could continue to use old paths like /usr/tmp. This left
/usr read-only and shareable among all of your diskless clients,
which saved a lot of disk space.
(Indeed, a shared /usr and the accompanying disk space savings
are probably what made diskless clients viable in the first place.)
Over the years since then, the symlinks have been progressively removed on many systems. But today you can still find them on some systems that especially value backwards compatibility, for example Solaris 10.
In addition to moving things from /usr to /var, a certain number of
things were relocated from /etc to /var. Practically speaking this
was much less important, since you needed a separate / filesystem for
each diskless client anyways, but it did create a culture where system
daemons shouldn't normally write to /etc to store PID files and so on.
|
|