Slashdot Mirror


/bin And /sbin Now Dynamically Linked In FreeBSD

Dan writes "Gordon Tetlow just committed a patch in FreeBSD current to change /bin and /sbin from statically to dynamically linked. The reason to do this is two-fold. This feature brings support for loadable PAM and NSS modules to base system utilities located in those directories. It also reduces the storage requirements for the root filesystem due to the use of shared libraries. This feature can be disabled in a buildworld by defining the Makefile (make.conf) variable WITHOUT_DYNAMICROOT. Note that statically-linked, crunched executables are available in the /rescue directory for use during system repair and recovery operations."

9 of 172 comments (clear)

  1. Re:Bad if not included with non-dyn executables by __past__ · · Score: 4, Informative
    But I don't understand this myself. /sbin means "static /bin" and it's that way for recovery purposes.
    Wrong. man 7 hier:
    /sbin/
    system programs and administration utilities fundamental to both single-user and multi-user environments
    Think "system administration", not "static". After all, /bin was static too, so the distinction doesn't much sense (and I think /sbin has been part of Unix earlier than dynamic linking anyway)
  2. Re:Cool by rtaylor · · Score: 4, Informative

    Indeed.. According to the schedule the tree is to be frozen today.

    --
    Rod Taylor
  3. Re:Cool by __past__ · · Score: 4, Informative

    Because size is not the only reason for the dynamic /bin. One big reason was better support for dynamically loadable PAM/nsswitch modules in the base utilities - so there is a good reason to have multiple versions of some binaries, one that always works and one that can do more fancy stuff.

  4. Re:Cool by shlong · · Score: 4, Informative

    I'm still somewhat surprised that this got committed now, shouldn't 5.2 be released Really Soon Now? This looks like something that ought to be tested in -CURRENT for a good while.

    This is of course a very valid concern. It should be noted, however, that this was the last phase in the overall change. The 'heavy lifting' parts were done months ago (creating /rescue, moving libraries to /lib and /libexec). It also had been extensively tested by many developers, and was already an optional switch when building world.
    In the end, we decided that a dynamic root filesystem was the future of 5.x, and that the 5.3 cycle was already overbooked with significant changes. We still have nearly a month before the release date of 5.2 to iron out any bugs. So after some final testing for a few days last week, I asked Gordon to Throw The Switch.

    --
    Cat, the other, tastier white meat.
  5. Re:Amiga by Brandybuck · · Score: 2, Informative

    If not, how does this differ?

    The difference is that the Amiga is dead, while FreeBSD is alive, well and kicking. FreeBSD could have done this way back in 1.0, but there was no pressing need to. In the immortal words of some anonymous software designer: "don't prematurely optimize."

    --
    Don't blame me, I didn't vote for either of them!
  6. Re:Purpose of / by Brandybuck · · Score: 4, Informative

    / - minimum required to boot and repair system

    It still is. /rescue is for repairing the system. /bin and /sbin are a comfortable but minimal set needed for booting.

    While there may be stuff in /bin and /sbin you might never use, all of it is used by someone or another at boot, single or rescue time.

    --
    Don't blame me, I didn't vote for either of them!
  7. Re:Amiga by cant_get_a_good_nick · · Score: 3, Informative

    You don't understand the post. The point is not that FreeBSD is going boldly into the 80s with dynamic linking, it's that the default world now has binaries living in /bin and /sbin as dynamic instead of static. For a long time they were all static linked because of recovery issues. Now they are dynamically linked (with an option to be static if you're paranoid). They probably link against only stuff in /lib which will be on the root partition. Anything in /usr/lib would be dangerous if /usr was toasted - your shell would go bye bye.

  8. Re:Security advantage by cperciva · · Score: 2, Informative

    This isn't really a big deal -- if you don't want to rebuild things yourself, you can just use FreeBSD Update.

  9. Speed by dcs · · Score: 2, Informative

    Actually, no. Dynamically linked binaries are slower than statically linked ones.

    --
    (8-DCS)