Aaron J. Grier wrote:
> On Wed, Dec 31, 2008 at 10:21:50AM -0800, Scott Francis wrote:
>> sure, you _could_ do the OS as a collection of packages ... given that
>> no other UNIX-like OS historically has done that, you could also
>> adhere to the principle of least surprise and keep a clear segregation
>> between core OS (kernel, base tools) and aftermarket packages.
> 
> any examples of linux distributions in which segregation between "core
> OS" and "aftermarket packages" is not an ephemeral illusion?
> 
> I count 29 distinct RPM packages on my fedora machine for the contents
> of /bin.

/bin (and /sbin), at least in the FHS universe, is just for commands necessary
in single user mode when just the root filesystem is mounted.
http://www.pathname.com/fhs/pub/fhs-2.3.html#BINESSENTIALUSERCOMMANDBINARIES

For example...

$ ldd /bin/ls
        librt.so.1 => /lib/librt.so.1 (0x40021000)
        libacl.so.1 => /lib/libacl.so.1 (0x40034000)
        libc.so.6 => /lib/libc.so.6 (0x4003b000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x4016f000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
        libattr.so.1 => /lib/libattr.so.1 (0x401c0000)

ls is dynamically linked but it's all to /lib so that's fine.

The intention is to keep the boot filesystem potentially as small as possible
to run on small devices and so you can get the system moving even with a fried
/usr partition.

Of course, not everyone gets this right (Debian 3.1)...

/bin/lspci:
        libpci.so.2 => /usr/lib/libpci.so.2 (0x40021000)
        libc.so.6 => /lib/libc.so.6 (0x40029000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
/sbin/discover:
        libdiscover.so.1 => /usr/lib/libdiscover.so.1 (0x40021000)
        libm.so.6 => /lib/libm.so.6 (0x40032000)
        libc.so.6 => /lib/libc.so.6 (0x40054000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
/sbin/fsck.cramfs:
        libz.so.1 => /usr/lib/libz.so.1 (0x40021000)
        libc.so.6 => /lib/libc.so.6 (0x40033000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
/sbin/mkfs.cramfs:
        libz.so.1 => /usr/lib/libz.so.1 (0x40021000)
        libc.so.6 => /lib/libc.so.6 (0x40033000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Whoopsie.

I'm not sure where one draws the line between "core" and "aftermarket"
packages, but what's in /bin and /sbin is a little bit too thin for me.

(FWIW I count about 60 packages in /bin and /sbin on this Debian machine).

bash
bootpc
chpax
coreutils
cpio
dash
debianutils
dhcp-client
discover1
dpkg
dump
e2fsprogs
ed
elvis-tiny
flvtool2-ruby
gradm
grep
grub
gzip
hdparm
hostname
ifrename
ifupdown
initscripts
ipchains
iproute
iptables
iputils-ping
isapnptools
kbd
ksh
libblkid1
libc6
libpam-modules
lilo
login
makedev
mdadm
module-init-tools
modutils
mount
nano
net-tools
nfs-common
passwd
pciutils
portmap
procps
psmisc
quota
reiserfsprogs
scsitools
sed
syslog-ng
sysvinit
tar
tcsh
udev
update
util-linux
vlan
zsh


-- 
Whip me, beat me, make my code compatible with VMS!

Reply via email to