tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: busybox replacement idea



On Fri, 24 Aug 2012, Jeremy C. Reed wrote:
Depending on the configuration, there may be up to 310 commands all contained in one binary [with busybox].

NetBSD already has a similar feature: /rescue/foo. This crunchgen solution has around 150 commands.

I believe that crunchgen has no fixed limits to the number of commands.

We should be able to just copy the existing simple and short src/rescue/ infrastructure to create the more complete replacement.

Yes, of course. However, this often requires adding a few conditional lines to the Makefile for the program to be built, and if you want to omit some features from the crunched version of the program then you have to add conditional code to the source of the program itself.

For example, the build infrastructure for /rescue instructs crunchgen to set SMALLPROG in the environment; sbin/init/Makefile uses that to change the CPPFLAGS and libraries; and sbin/init/init.c uses the preprocessor definitions to conditionally exclude some features.

Then we should allow building this for a non-NetBSD target system. Any suggestions or examples on how to build rescue for a non-NetBSD target system?

This is the only non-trivial part.

We may not be as small, but three benefits may be 1) user friendly commands; 2) nice license for proprietary use (There have been license violations reported for busybox); and 3) nice promotion of NetBSD.

Any thoughts on this?

It's not difficult to have more than two levels of "the full-featured command" and "a smaller version omitting some features". Different invocations of crunchgen can set different environment variables (akin to the existing SMALLPROG variable) which can be fed through the Makefils and CPPFLAGS to achieve finer control over what features to include or exclude. (For example, I use crunchgen to build images in which init is full-featured, whereas the standard NetBSD /rescue contains an init with reduced functionality.)

--apb (Alan Barrett)


Home | Main Index | Thread Index | Old Index