On Fri, Nov 08, 2002 at 02:44:19PM -0500, David Boyes wrote: > > What distribution are you using which places these utilities in /usr? > > Sorry, finger check. I date back far enough that everything was in or near > /usr... thanks. Meant to say "from their default location".
I do not date back very far in UN*X years, so I do not speak from first-hand experience, but I have the distinct impression that /bin predates /usr/bin. SunOS/Solaris, though, has lacked a separate /bin for a long time, but I believe even it originally had one. > > Also, they should not need to be statically linked, as they should only > > be linked with libraries in /lib. > > This I would argue about. Why should I need /lib and dynamic library > support at a point where the system is still initializing? What if I want > to mount /lib from another disk? If I have the absolutely critical > utilities available in a statically linked version, I need only a root > file system containing the critical static binaries and a kernel and > minimal configuration info. You don't need shared libraries to run your system at all. However, they are beneficial for many reasons, and most of those reasons hold for things which live on the root filesystem. If you want to mount /lib from another disk, you must (at least) be sure that you don't require _any_ loadable kernel modules to get to that point, and that every executable along the way is statically linked. If you are willing to pay the price in maintainability, it is of course possible. If you have the absolutely critical utilities available in a dynamically linked version, you need only a root filesystem containing the critical static binaries and a kernel and minimal configuration info and the shared libraries (usually only libc). Personally, my preference is to run with dynamically linked executables, and to use a statically linked copy of busybox or sash for recovery purposes. One can boot such a system using only the kernel and a single user executable if necessary. -- - mdz
