[BusyBox] Improving Our Development Process

Mark Whitley markw at lineo.com
Wed Jan 24 17:32:00 UTC 2001


On Tue, Jan 23, 2001 at 05:32:38PM -0600, David Douthitt wrote:
> 
> On 23 Jan 2001, at 22:11, Mark Whitley wrote:
> 
> > Okay, gang, the time has come for an explanation about the whole netkit-tiny
> > seperation plan:
> > 
> > There were a few reasons offered originally, like being able to
> > suid netkit-tiny while not having to do the same for busybox, but
> > Alex makes the very good point that we could simply build two
> > executables from the same codebase. 
> 
> I've been wondering if building two sets of tinylogin would be 
> advantageous - one suid and one not.  Seems like it would be more 
> secure..... right?

Yes, as I mentioned, the original reason offered for the split was so you
could suid the network-apps binary (i.e. netkit-tiny), but leave the
shell-apps binary (i.e. busybox) non-setuid. As Alex mentioned earlier,
though, this can be done even with the existing, single codebase, just by
building two seperate binaries with two different Config.h files.

> > Alex (and others before him) futher make a good point that
> > splitting up the apps would cause some redundancy in shared code
> > (i.e. utility.c) which could lead to further maintenance burdens
> > (somebody fixes a bug in busybox utility.c, but doesn't fix it in
> > netkit-tiny utility.c, etc.). One could also argue that the applets
> > should be kept together so people using it can decide for
> > themselves what they want to compile into however many executables
> > they want. 
> 
> Why not use a dynamic busybox library?  Convert this utility.c into 
> busybox.lib.so ...and it wouldn't be far from there to go to 
> busybox.lib.a ...

This is certainly one approach. The thing I dislike about this approach is
that it complicates development by adding an additional dependency. It also
makes debugging a little more involved.

We have bandied about the idea of makinga libbusybox and there could possibly
be some merit to it.

> > In short, there is no technical reason why networking apps *can't*
> > stay in busybox, and in fact there are some pretty good reasons for
> > keeping all the applets in one codebase. 
> 
> What about the suid v. non-suid split?  Doesn't this enhance 
> security?1

Addressed above.

> > I went and asked Erik about this (seeing as how he sits right next
> > to me and isn't on the road this week), and he said that the
> > biggest reason for splitting up busybox is to make life a little
> > easier on him, cuz maintaining busybox is a big job, one that
> > consumes a lot of his time (and he already has a full-time job). 
> 
> What about tinylogin?

At this point, tinylogin is essentially a "finished" product and consumes very
little of Erik's (or my, or anybody else's) time.

uClibc on the other hand...

> > If anyone has any further ideas on how we can "spread the load" a
> > little better, please propose it. If everyone else can help
> > shoulder the burden just a little bit, Erik's shoulders will feel a
> > lot lighter. :-) 
> 
> What if we went the library route?  A busybox library could even be 
> split off from the applications.

It could, but the question then becomes: Who becomes the maintainer of said
library? What will be the process of moving common code from codebase X, Y, or
Z into the library. If you'd like to make the case for the library (spell out
hte list of advantages), please do, but personally I don't know if it would be
an overall win. I can be persuaded otherwise, but right now I'm leaning away
from the library approach.

Mark Whitley
markw at lineo.com





More information about the busybox mailing list