Return to BSD News archive
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.uwa.edu.au!classic.iinet.com.au!news.uoknor.edu!news.ecn.uoknor.edu!qns3.qns.com!news.sprintlink.net!gatech!swrinde!elroy.jpl.nasa.gov!ames!onramp.arc.nasa.gov!viking.arc.nasa.gov!lamaster From: lamaster@viking.arc.nasa.gov (Hugh LaMaster) Newsgroups: comp.unix.bsd.freebsd.misc Subject: Re: Stability: FreeBSD, NetBSD, or Linux ? Date: 18 May 1995 22:36:30 GMT Organization: NASA Ames Research Center Lines: 113 Distribution: world Message-ID: <3pgi5e$j5a@onramp.arc.nasa.gov> References: <ortegaD7puFE.Dp2@netcom.com> <3o6gj4$e1m@agate.berkeley.edu> <3o84ia$fa6@newshost.lanl.gov> <1995May3.185147.4535@mdl.sandia.gov> <3oe4sk$m41@nova.netapp.com> NNTP-Posting-Host: viking.arc.nasa.gov In article <3oe4sk$m41@nova.netapp.com>, guy@netapp.com (Guy Harris) writes: |> Alan F Lundin <aflundi@sandia.gov> wrote: |> >This goes back a number of years I believe (about 6 or |> >7 years?). The story, as I remember, was that Sun, Dec, |> >CSRG (and perhaps others) got together to restructure Sun, DEC, and CSRG were working on it in 1988 for sure. |> >the filesystem to support networking, diskless workstations, |> >and heterogeneous platforms better. |> |> Yup. |> |> It was originally done by Sun, as part of SunOS 4.0, in order to, among |> other things, better support diskless machines. Most of the changes were supposed to go into Ultrix 2.4, SunOS 4.x, and were supposed to go into 4.4 BSD [insert history of 4.4/CSRG here]. Most of the changes were very rational. The goal was to have as |> little as possible in the root file system that would be likely to be |> shared by multiple diskless clients of a single server, and *nothing* in |> the "/usr" file system that couldn't be shared by diskless clients of a |> single server, assuming those clients had compatible architectures and |> ran the same OS release. That is right. /usr is supposed to be NFS-mountable, read-only. |> I forget precisely why "/var" was split off, Per-machine variable directories, including mail, spool, acct/adm, log, crash, and /var/tmp, which is to replace /usr/tmp. /usr is supposed to be (potentially) read-only, so anything in /usr which isn't goes in /var. but I suspect it was to |> keep small stuff like configuration files in one place (typically |> "/etc") and big stuff like log files and spool directories in another |> place. (As I remember, within Sun there was some shuffling of stuff |> between "/etc" and "/var" before the final file system layout was |> chosen.) /etc was also per-machine, but for config files. Should be small. |> You probably want whatever file system contains "/var" to be large; |> SunOS 4.x (and probably some other OSes) come with a small root |> partition, which is unfortunate as "/var" is, by default, on the root |> partition in 4.x. At Auspex, we put "/var" on its own partition; I'd |> done that on some machines I used at Sun. /var was intended to be on its own partition I'm sure, or possibly even a number of partitions as necessary on large servers. |> "/usr/share" was, as you note, intended for stuff that could even be |> shared by clients with *incompatible* architectures, e.g. most text |> files (other than configuration files that might be changed on some |> particular host), and binary files in a machine-independent format. I think /usr/share may have been a later change. Originally this was called /usr/text. But yes, it was intended to be architecture- independent, and residing on a common (group) server. |> The Sun folks then got, as I remember, DEC and CSRG, and perhaps others |> - precisely as you note - to get them to pick up on it as well. I |> forget whether AT&T was in that group at the time, or whether they |> picked it up later as part of the Sun/AT&T SVR4 deal. |> |> The scheme that most vendors seem to be offering differs from the SunOS |> 4.x scheme in one fashion - the SunOS 4.x scheme puts binaries expected |> to be used primarily by a system administrator or by an "/etc/rc"-type |> file, and binaries for daemons and the like, in "/usr/etc", while the |> scheme used by later BSDs and by SVR4 (and thus by SunOS 5.x) puts them |> in "/usr/sbin". /sbin was intended for root binaries only, while /etc was intended for config files. /bin was supposed to be minimal bootup binaries (e.g. sh). But /usr/sbin and /usr/etc were going to be a single directory, since /usr is supposed to be global/NFS-mountable/read-only. There is certainly room for taste here, but consistency would be nice... I'm not sure I ever understood /bin, /sbin, /usr/bin, /usr/sbin exactly. |> Also, Berkeley wasn't as aggressive about keeping "/sbin" as small as |> possible as was Sun. "/sbin" is on the root file system, and wouldn't |> be shared by diskless clients; Sun put in there, in 4.0, *only* those |> programs necessary to get "/usr" mounted - as the machine might be a |> diskless client, this includes some networking stuff, and also includes |> a shell because the stuff necessary to get "/usr" mounted gets run from |> one of the "/etc/rc*" scripts ("/etc/rc.boot" in SunOS 4.x). |> |> Sun did, of course, leave a pile of symlinks around, for the benefit of |> old programs and old programmers. :-) For example, old binaries might |> looked for the "termcap" file in "/etc", so, even though the "termcap" |> file belongs under "/usr/share" in the new scheme, a symlink was left to |> it in "/etc". I still mostly like this SunOS 4.x/CSRG organization better than some other variants, which still often assume, one way or another, that a {file,boot} server is only serving one architecture type, something which has virtually never been true in my experience. If you can't mount a shared readonly /usr from a server with a different architecture, there is something wrong. -- Hugh LaMaster, M/S 233-9, UUCP: ames!lamaster NASA Ames Research Center Internet: lamaster@ames.arc.nasa.gov Moffett Field, CA 94035-1000 Or: lamaster@george.arc.nasa.gov Phone: 415/604-1056 #include <std_disclaimer.h>