GET IT HERE PRO FOR FREE, download link down BusyBox is software that provides several stripped-down Unix tools in a single executable file. It runs in a variety of POSIX environments such as Linux, Android, FreeBSD and others, such as proprietary kernels, although many of the tools it provides are designed to work with interfaces provided by the Linux kernel. It was specifically created for embedded operating systems with very limited resources. The authors dubbed it "The Swiss Army Knife of Embedded Linux", as the single executable replaces basic functions of more than 300 common commands. It is released as free software under the terms of the GNU General Public License. In late 2007, BusyBox also came to prominence for actively prosecuting violations of the terms of its license (the GPL) in the U.S. District Court for the Southern District of New York. Originally written by Bruce Perens in 1995 and declared complete for his intended usage in 1996, BusyBox originally aimed to put a complete bootable system on a single floppy disk that would serve both as a rescue disk and as an installer for the Debian distribution. Since that time, it has been extended to become the de facto standard core user space toolset 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 often saves substantial disk space and system memory. BusyBox was maintained by Enrique Zanardi and focused on the needs of the Debian boot-floppies installer system until early 1998, when Dave Cinege took it over 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 became the official maintainer between December 1999 and March 2006. During this time the Linux embedded marketplace exploded in growth, and BusyBox matured greatly, expanding both its user base and functionality. Rob Landley became the maintainer in 2005 and continued for several years. As of October 2006 Denys Vlasenko maintains BusyBox.
FeaturesBusyBox 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 (SUS) plus many others that a user would expect to see on a Linux system. BusyBox uses the Almquist shell, also known as A Shell, ash and sh. As it is a complete bootstrap system, it will further replace the init daemon and udev (or the latter-day systemd) using itself to be called as init on startup and mdev at hotplug time, respectively. The BusyBox Web site provides a full list of the utilities implemented.
Single binaryTypical 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 name) in a specific manner with appropriate arguments. BusyBox benefits from the single binary approach, as it reduces the overhead 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, the difference being that 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, can make a BusyBox system much smaller than a system built with the corresponding full versions of the utilities replaced by BusyBox. Research that compared GNU, BusyBox, asmutils and Perl implementations of the standard Unix commands showed that in some situations BusyBox may perform faster than other implementations, but not always.
ExamplesPrograms included in BusyBox can be run simply by adding their name as an argument to the BusyBox executable: