Making a dynamically-linked root

Matthew D. Fuller fullermd at over-yonder.net
Thu Jun 5 15:11:19 PDT 2003


On Thu, Jun 05, 2003 at 04:35:56AM -0700 I heard the voice of
Terry Lambert, and lo! it spake thus:
> 
> And if init or mount gets hosed?

Oh, come on.  You're smarter than that.

If a static /sbin/init gets hosed, you're screwed.
If a dynamic /sbin/init gets hosed, you're screwed.

If /lib/libc gets hosed, your dynamic /sbin/init is screwed.  Your static
/sbin/init still moves along just fine.


It's not that static binaries eliminate SPoF's.  They just reduce the
scope of some failures.  Whether that reduction is sizeable or lost in
the noise is left as an exercise to the reader (presuming the reader
understands the concept of "different strokes").


> You're not so much missing anything as you are ignoring the
> examples which are inconvenient to arguing your position.

A reasonable statement, but equally true in reverse.

Dynamic _everything_ multiplies the number of single failures that can
completely screw you by making many more failures able to indirectly b0rk
basic things like "getting a shell".


For extra points, find the false statement:
- Static-linked systems are immune from corruption failures.
- Dynamically-linked systems no more failure modes than static.


-- 
Matthew Fuller     (MF4839)   |  fullermd at over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/

"The only reason I'm burning my candle at both ends, is because I
      haven't figured out how to light the middle yet"


More information about the freebsd-arch mailing list