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,

A more complete list can be found on the official website.

[edit] External links

Wikibooks
Wikibooks Learning the vi editor has a page on the topic of
In other languages