BusyBox
From Wikipedia, the free encyclopedia
BusyBox | |
Busybox under the Microsoft Telnet Client. |
|
Author: | Bruce Perens |
---|---|
Developer: | Denis Vlasenko |
Latest release: | 1.4.2 / March 18, 2007 |
Preview release: | 1.5.0 / March 23, 2007 |
OS: | Linux |
Use: | Independent SUSp XCU implementation |
License: | GNU General Public License |
Website: | www.busybox.net |
BusyBox is a software application which 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".
Released under the GNU General Public License, BusyBox is free software.
Contents |
[edit] 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 (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.
Denis Vlasenko is the current maintainer of BusyBox.
[edit] 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 others that a user would expect to see on a Linux system.
A full list of the utilities implemented can be found on the BusyBox site.[1]
[edit] 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 single BusyBox binary with various names (supported by having a symbolic link for each different name[1]) 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.
Sharing of this 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.
[edit] 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.
[edit] Appliances
It is very common to find BusyBox used in Linux-based appliances such as routers and PDAs, such as:
- Actiontec GT701 DSL Modem/Router (GT701-WG Wireless DSL Modem/Router) bundled mostly with Qwest DSL
- Sharp Zaurus
- Nokia 770
- Linksys network attached storage NSLU2
- Linksys wireless broadband router, WRT54G
- Netgear routers (eg. DG834G)
- ASUS wireless broadband router, Asus WL-500g
- Gamepark Holdings GP2X open-source Linux game player
- Picotux, advertised as the smallest computer running Linux in the world
- OvisLink WL-5460AP - WiFi AccessPoint
- Dream Multimedia Dreambox, a hobbyist DVB reciever based on Linux
Such devices can have embedded Linux transfered onto them, in which they use BusyBox, such as:
A more complete list can be found on the official website.