On Mon, Jul 02, 2012 at 03:04:50PM +0100, Giles Coochey wrote:
As Rob@landley.net mentioned on the busybox list a couple of years ago:
bureaucrats who never question _why_ they're doing things. It stopped making any sense before Linux was ever invented, for multiple reasons:
- Early system bringup is the provice of initrd and initramfs, which deals
with the "this file is needed before that file" issues. We've already _got_ a temporary system that boots the main system.
Which, of course, is a fallacy. Back when we did FSSTND the concept of initrd/initramfs wasn't used. It still wasn't too unusual to use rdev to set the root disk in the kernel image rather than pass it as a parameter via LILO. (I'm not sure when initrd became usable; it might have been around 2000. According to http://www.linuxsymposium.org/2000/booting.php ramdisks only appeared in the kernel in 1996 and pivot_root in 2000. Thus initrd didn't exist when FSSTND was written... in 1993/1994. Hardly "before Linux was ever invented".)
- shared libraries (introduced by the Berkeley guys) prevent you from
independently upgrading the /lib and /usr/bin parts. They two partitions have
Irrelevant to the discussion. "Independence" of / and /usr was never an argument in the Linux space.
- Cheap retail hard drives passed the 100 megabyte mark around 1990, and
partition resizing software showed up somewhere around there (partition magic 3.0 shipped in 1997).
Hmm, we did FSSTND in 1993/1994 timeframe. At this time, considering that for many people this was a 2nd OS dual-booted with DOS/Windows 3, we dealt with smaller partitions spread potentially on the end of multiple disks that DOS couldn't use (8Mb at the end of a 40Mb disk 'cos of the 32Mb limit of the time. Woohoo, I had two of these disks!).
Root was for the OS stuff you got from upstream and /usr was for your site- local files. Then / was for the stuff you got from AT&T and /usr was for the
That was never in FSSTND, and it wasn't in the SVR4 definition documents (which I used a fair bit to help steer the FSSTND discussion).
Basically, Rob is incorrect as to the Linux rationale. We kept the / and /usr split to be _consistent_ with existing practice and to allow small and hobbyist systems to be usable.
_TODAY_ (where I have an MMC card in my wallet that's almost 1000 times bigger than that old hard disk!) the rationale for a / and /usr split is a lot less. We _do_ commonly use ramdisk based boot systems, we _do_ have disk space to spare. If we were to redo FSSTND (er, FHS as it became) today then it's likely that decisions like the / /usr split would have been decided differently.
I'm not convinced a /XX -> /usr/XX symlink solution buys us very much (for cross-platform compatibility people will still have /usr/local/bin:/usr/bin:/bin as PATHs) but I'm also not convinced it'll cause any real problems.
If you want a historical look as to some of the reasons why we did what we did, http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/FSSTND-FAQ