BusyBox
From Wikipedia, the free encyclopedia
BusyBox | |
Author: | Bruce Perens |
---|---|
Developer: | Denis Vlasenko |
Latest release: | 1.2.2.1 / October 29, 2006 |
OS: | Linux |
Use: | Independent SUSp XCU implementation |
License: | GPL version 2 or later |
Website: | www.busybox.net |
BusyBox has been called "The Swiss Army Knife of Embedded Linux". It is a computer program that provides many standard Unix utilities. BusyBox is designed to be a small executable which makes it ideal for Linux based special purpose distributions and embedded devices.
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. For some time the code was forked and the different codebases were used in the Debian distribution (maintained by Enrique Zanardi) and the Linux Router Project (maintained by Dave Cinege). Erik Andersen merged these projects and was the official maintainer between December 1999 and March 2006, during which time 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 other utilities a user would expect to see on a GNU/Linux system.
A full list of the utilities implemented can be found on the BusyBox site.
[edit] Overview
[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 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.
[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,
- Sharp Zaurus
- Nokia 770
- Linksys network attached storage NSLU2
- Linksys wireless broadband router, WRT54G
- Gamepark Holdings GP2X open-source Linux game player
A more complete list can be found on the official website.