On Mon, Jul 02, 2012 at 03:04:50PM +0100, Giles Coochey wrote: > As Rob at 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: > > 1) 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".) > 2) 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. > 3) 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 -- rgds Stephen