< Back to index

BusyBox is a software application which provides many standard Unix tools. BusyBox is designed to be a small executable for use with Linux, which makes it ideal for special purpose Linux distributions and embedded devices. It has been called "The Swiss Army Knife of Embedded Linux".

Released under the GNU General Public License, BusyBox is free software.

History



Originally written by Bruce Perens in 1996, the intent of BusyBox was to put a complete bootable system on a single floppy that would be both a rescue disk and an installer for the Debian GNU/Linux distribution. It has since then become the de facto standard for embedded Linux devices and Linux distribution installers. Since each Linux executable requires several KB of overhead, having the BusyBox program combine over two hundred programs together can save considerable space.

Busybox was maintained by Enrique Zanardi and focused on the needs of the Debian boot-floppies installer system until early 1998, when it was taken over by Dave Cinege for The Linux Router Project. Cinege made several additions, created a modularized build environment, and shifted Busybox's focus into general high level embedded systems. As LRP development slowed down in 1999, Erik Andersen, then of Lineo Inc, took over the project and was the official maintainer between December 1999 and March 2006. During this time the linux embedded market place exploded in growth, and BusyBox matured greatly, expanding both its user base and functionality.

Denis Vlasenko is the current maintainer of BusyBox.

Features



BusyBox can be customized to provide a subset of over two hundred utilities, it can provide most of the utilities specified in the Single Unix Specification plus many other utilities a user would expect to see on a Linux system.

A full list of the utilities implemented can be found on the BusyBox site. (http://www.busybox.net/downloads/BusyBox.html)

Single binary



Typical computer programs have a separate binary (executable) file for each application. BusyBox is a single binary, which is a conglomerate of many applications, each of which can be accessed by calling the application in a specific manner (with various arguments).

BusyBox benefits from the single binary approach as it reduces the overheads introduced by the executable file format (typically ELF), and it allows code to be shared between multiple applications without requiring a library.

Sharing of this common code, along with routines written with size-optimization in mind, enable a BusyBox system to be much smaller than a system built with the corresponding full versions of the utilities replaced by BusyBox.

Examples



Programs included in BusyBox can be run simply by adding their name as an argument to the BusyBox executable:

/bin/busybox ls

More commonly, the desired command names are linked (using hard or symbolic links) to the BusyBox executable; BusyBox notices the name it is called as, and runs the appropriate command, for example just

/bin/ls

after /bin/ls is linked to /bin/busybox.

Appliances



It is very common to find BusyBox used in Linux-based appliances such as routers and PDAs, such as:

* Sharp Zaurus
* Nokia 770
* Linksys network attached storage NSLU2
* Linksys wireless broadband router, WRT54G
* Gamepark Holdings GP2X open-source Linux game player
* Picotux, advertised as the smallest computer running Linux in the world

A more complete list can be found on the official website at http://www.busybox.net.
This entry uses material from from Wikipedia, the leading user-contributed encyclopedia. It is licensed under the GNU Free Documentation License. Disclaimer.