|Developer:||Erik Andersen, Rob Landley, Denys Vlasenko|
|Latest Release Version:||1.12.4|
|Latest Preview Version:||1.13.2|
|Genre:||Independent SUSp XCU implementation|
|License:||GNU General Public License|
BusyBox is a software application that provides many standard Unix tools, much like the larger (but more capable) GNU Core Utilities. 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".
In late 2007, BusyBox also came to prominence for actively prosecuting alleged, and in at least one case proven, violations of its copyright under GPL in US-based courts of law.
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 distribution. It has since then become the de facto standard for embedded Linux devices and Linux distribution installers. Since each Linux executable requires several kilobytes 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 (LRP). 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.
Denys Vlasenko is the current maintainer of BusyBox.
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 others that a user would expect to see on a Linux system. BusyBox uses the ash shell.  
A full list of the utilities implemented can be found on the BusyBox site.
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 single BusyBox binary with various names (supported by having a symbolic link or hard link for each different namehttp://www-128.ibm.com/developerworks/library/l-busybox/index.html) in a specific manner with appropriate 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. This technique is similar to what is provided by the crunchgen command in FreeBSD. However, BusyBox provides simplified versions of the utilities (for example, an ls command without file sorting ability), while a crunchgen generated sum of all the utilities would offer the fully functional versions.
Sharing of the common code, along with routines written with size-optimization in mind, enables a BusyBox system to be much smaller than a system built with the corresponding full versions of the utilities replaced by BusyBox. The research  which compared GNU, Busybox, asmutils and Perl implementations of the standard Linux commands show that in some situations BusyBox may perform faster than other implementations, but not always.
Programs included in BusyBox can be run simply by adding their name as an argument to the BusyBox executable:
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
after /bin/ls is linked to /bin/busybox.
for help type command name --help
It is very common to find BusyBox used in Linux-based appliances, examples of which include:
A more complete list can be found on the official website (see external links below).
What was claimed to be the first US lawsuit over a GPL violation concerned use of BusyBox in an embedded device. The lawsuit, case 07-CV-8205 in the United States District Court for the Southern District of New York was filed on 20 September 2007 by the Software Freedom Law Center (SFLC) on behalf of Andersen and Landley against Monsoon Multimedia Inc., after BusyBox code was discovered in a firmware upgrade and attempts to contact the company had apparently failed. The case was settled with release of the Monsoon version of the source and payment of an undisclosed amount of money to Andersen and Landley.
On 21 November 2007, the SFLC brought two similar lawsuits on behalf of Andersen and Landley against two more companies, Xterasys (case 07-CV-10456) and High-Gain Antennas (case 07-CV-10455).  The Xterasys case was settled on December 17 for release of source code used and an undisclosed payment, and the High-Gain Antennas case on March 6, 2008 for active license compliance and an undisclosed payment. On 7 December 2007, a case was brought against Verizon Communications over its distribution of firmware for Actiontec routers that it distributes;  this case was settled March 17, 2008 on condition of license compliance, appointment of an officer to oversee future compliance with free software licenses, and payment of an undisclosed sum. Further suits were brought on June 9, 2008 against Bell Microproducts (case 08-CV-5270) and Super Micro Computer (case 08-CV-5269), the Super Micro case being settled on 23 July, 2008. . BusyBox and Bell Microproducts also settled out of court on 17 October, 2008. Anderson v. Bell Microproducts, Inc., No. 08-cv-5270, Doc. No. 16 (S.D.N.Y. Oct. 17, 2008) (notice of voluntary dismissal).