The Swiss Army Knife of Embedded Linux
|
BusyBox combines tiny versions of many common UNIX utilities
into a single small executable. It provides minimalist
replacements for most of the utilities you usually find in GNU
fileutils, shellutils, etc. The utilities in BusyBox generally
have fewer options than their full-featured GNU cousins;
however, the options that are included provide the expected
functionality and behave very much like their GNU counterparts.
BusyBox provides a fairly complete POSIX environment for any
small or embedded system.
BusyBox has been written with size-optimization and
limited resources in mind. It is also extremely modular
so you can easily include or exclude commands (or
features) at compile time. This makes it easy to
customize your embedded systems. To create a working
system, just add /dev, /etc, and a kernel.
BusyBox is maintained by Erik
Andersen, and licensed under the GNU GENERAL
PUBLIC LICENSE.
Screenshot
Because everybody loves screenshots, a screenshot of
BusyBox is now available right here.
Mailing List Information
BusyBox has a mailing list.
To subscribe, go and visit this page.
Before asking questions on the mailing list
you should probably first search the mailing list archives...
|
Latest News |
- 12 Sept 2003 -- BusyBox 1.0.0-pre3 released
Here goes the third pre-release for the new BusyBox stable
series. The last prerelease has help up quite well under
testing, but a number of problems have turned up as the number
of people using it has increased. Thanks everyone for all
the testing, bug reports, and patches!
If you have submitted a patch or a bug report to the busybox
mailing list and no one has emailed you explaining why your
patch was rejected, it is safe to say that your patch has
somehow gotten lost or forgotten. That happens sometimes.
Please re-submit your patch or bug report to the BusyBox
mailing list!
The point of the "-preX" versions is to get a larger group of
people and vendors testing, so any problems that turn up can be
fixed prior to the final 1.0.0 release. The main feature
(besides additional testing) that is still still on the TODO
list before the final BusyBox 1.0.0 release is sorting out the
modutils issues. For the new 2.6.x kernels, we already have
patches adding insmod and rmmod support and those need to be
integrated. For 2.4.x kernels, for which busybox only supports
a limited number of architectures, we may want to invest a bit
more work before we cut 1.0.0. Or we may just leave 2.4.x
module loading alone.
I had hoped this release would be out a month ago. And of
course, it wasn't since Erik became busy getting a release of
uClibc
out the door. Many thanks to Glenn McGrath (bug1) for
stepping in and helping get a bunch of patches merged! I am
not even going to state a date for releasing BusyBox 1.0.0
-pre4 (or the final 1.0.0). We're aiming for late September...
But if this release proves as to be exceptionally stable (or
exceptionally unstable!) then next release may be very soon
indeed.
The changelog has all
the details. And as usual you can
download busybox here.
Have Fun!
- Old News
For the old news, visit the
old news page.
|
Sponsors |
Please visit our sponsors and thank them for their
support! They have provided money for equipment and
bandwidth. Next time you need help with a project,
consider these fine companies!
Several individuals have also contributed. If you have
already contributed and would like your name added
here, just let me know. If you would like to be a
BusyBox sponsor, email Erik.
|
Download |
Source for the latest release can always be
downloaded from http://www.busybox.net/downloads.
BusyBox now has two CVS trees. The "busybox-stable" tree
contains the older 0.60.x stable series. The "busybox" tree contains
the latest 1.0.0-preX development version of busybox.
|
Documentation |
Current documentation for BusyBox includes:
- BusyBox.html. This is a
list of the all the available commands in BusyBox
with complete usage information and examples of how
to use each app. I have spent a lot of time
updating these docs and trying to make them fairly
comprehensive. If you find any errors (factual,
grammatical, whatever) please let me know.
- README. This is
the README file included in the busybox source
release.
- If you need more help, the BusyBox mailing list is a good place to
start.
|
Important Links |
- Free
Software from Bruce Perens
The original idea for BusyBox, and all versions up
to 0.26 were written by Bruce Perens. This is
his BusyBox website.
- Freshmeat
AppIndex record for BusyBox
- TinyLogin is a
nice embedded tool for handling authentication,
changing passwords, and similar tasks which nicely
complements BusyBox.
- udhcp is
a tiny dhcp client and/or server which is ideal for
embedded systems.
- uClibc is a
C library for embedded systems. You can actually
statically link a "Hello World" application under x86
that only takes 4k (as opposed to 200k under GNU
libc). It can do dynamic linking too and works nicely
with BusyBox to create very small embedded Linux systems.
|
Products/Projects Using BusyBox |
I know of the following products and/or projects
that use BusyBox -- listed in the order I happen to add
them to the web page:
Do you use BusyBox? I'd love to know about it and
I'd be happy to link to you.
|