BusyBox is a
software suite that provides several
Unix utilities in a single
executable file. It runs in a variety of
POSIX
The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming in ...
environments such as
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
,
Android, and
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, although many of the tools it provides are designed to work with interfaces provided by the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
. 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
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, n ...
under the terms of the
GNU General Public License v2, after controversially deciding not to move to version 3.
History
Origins
Originally written by
Bruce Perens in 1995 and declared complete for his intended usage in 1996, BusyBox initially aimed to put a complete
bootable system on a single
floppy disk
A floppy disk or floppy diskette (casually referred to as a floppy, or a diskette) is an obsolescent type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined ...
that would serve both as a rescue disk and as an
installer for the
Debian
Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of De ...
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
The Linux Router Project (LRP) is a now defunct networking-centric micro Linux distribution. The released versions of LRP were small enough to fit on a single 1.44MB floppy disk, and made building and maintaining routers, access servers, thin serv ...
(LRP). Cinege made several additions, created a modularized build environment, and shifted BusyBox's focus into general high-level
embedded system
An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded ...
s. 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 until late 2006, then Denys Vlasenko took over as the current maintainer.
GPLv2/GPLv3 controversies
In September 2006, after heavy discussions and controversies between project maintainer Rob Landley and
Bruce Perens, the BusyBox
project decided against adopting the GNU Public License Version 3 (
GPLv3
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...
); the BusyBox license was clarified as being
GPL-2.0-only.
Since October 2006, Denys Vlasenko has taken over maintainership of BusyBox from Rob Landley, who has started
Toybox
Toybox is a free and open-source software implementation of over 200 Unix command line utilities such as '' ls'', '' cp'', and '' mv''. The Toybox project was started in 2006, and became a 0BSD licensed BusyBox alternative. Toybox is used for mo ...
, also as a result of the license controversies.
GPL lawsuits
In late 2007, BusyBox also came to prominence for actively prosecuting violations of the terms of its license (the GPL) in the
.
[On Behalf of BusyBox Developers Andersen and Landley, SFLC Files First Ever U.S. GPL Violation Lawsuit](_blank)
(Software Freedom Law Center September 20, 2007)
What was claimed to be the first US
lawsuit
-
A lawsuit is a proceeding by a party or parties against another in the civil court of law. The archaic term "suit in law" is found in only a small number of laws still in effect today. The term "lawsuit" is used in reference to a civil act ...
over a GPL violation concerned use of BusyBox in an
embedded device. The lawsuit,
case 07-CV-8205 was filed on September 20, 2007 by the
Software Freedom Law Center
The Software Freedom Law Center (SFLC) is an organization that provides '' pro bono'' legal representation and related services to not-for-profit developers of free software/open source software. It was launched in February 2005 with Eben Mogle ...
(SFLC) on behalf of Andersen and Landley against
Monsoon Multimedia
Monsoon Multimedia was a company that manufactured, developed and sold video streaming and place-shifting devices that allowed consumers to view and control live television on PCs connected to a local (home) network or remotely from a broadb ...
Inc., after BusyBox code was discovered in a
firmware
In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide h ...
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 November 21, 2007, the SFLC brought two similar lawsuits on behalf of Andersen and Landley against two more companies, Xterasys (case 07-CV-10455) and High-Gain Antennas (case 07-CV-10456). 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 December 7, 2007, a case was brought against
Verizon Communications
Verizon Communications Inc., commonly known as Verizon, is an American multinational telecommunications conglomerate and a corporate component of the Dow Jones Industrial Average. The company is headquartered at 1095 Avenue of the Americas in ...
over its distribution of firmware for Actiontec routers; 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
SuperMicro
Super Micro Computer, Inc., dba Supermicro, is an information technology company based in San Jose, California. It has manufacturing operations in the Silicon Valley, the Netherlands and at its Science and Technology Park in Taiwan. Founded on ...
(case 08-CV-5269), the Super Micro case being settled on July 23, 2008. BusyBox and Bell Microproducts also settled out of court on October 17.
On December 14, 2009, a new lawsuit was filed naming fourteen defendants including
Best Buy
Best Buy Co. Inc. is an American multinational consumer electronics retailer headquartered in Richfield, Minnesota. Originally founded by Richard M. Schulze and James Wheeler in 1966 as an audio specialty store called Sound of Music, it was rebra ...
,
JVC
JVC (short for Japan Victor Company) is a Japanese brand owned by JVCKenwood corporation. Founded in 1927 as the Victor Talking Machine Company of Japan and later as , the company is best known for introducing Japan's first televisions and for ...
,
Samsung
The Samsung Group (or simply Samsung) ( ko, 삼성 ) is a South Korean multinational manufacturing conglomerate headquartered in Samsung Town, Seoul, South Korea. It comprises numerous affiliated businesses, most of them united under the ...
and others.
In February 2010
Samsung
The Samsung Group (or simply Samsung) ( ko, 삼성 ) is a South Korean multinational manufacturing conglomerate headquartered in Samsung Town, Seoul, South Korea. It comprises numerous affiliated businesses, most of them united under the ...
released its LN52A650 TV firmware under GPLv2, which was used later as a reference by the
SamyGO community project.
On about August 3, 2010, BusyBox won from Westinghouse a default judgement of triple damages of $90,000 and lawyers' costs and fees of $47,865, and possession of "presumably a lot of high-def TVs" as infringing equipment in the lawsuit
Software Freedom Conservancy
Software Freedom Conservancy, Inc. is an organization that provides a non-profit home and infrastructure support for free and open source software projects. The organization was established in 2006, and as of June 2022, had over 40 member pr ...
v. Best Buy, et al., the GPL infringement case noted in the paragraph above.
No other developers, including original author Bruce Perens and maintainer Dave Cinege, were represented in these actions or party to the settlements. On December 15, 2009, Perens released a statement expressing his unhappiness with some aspects of the legal situation, and in particular alleged that the current BusyBox developers "appear to have removed some of the copyright statements of other BusyBox developers, and appear to have altered license statements".
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 (SUS) plus many others that a user would expect to see on a Linux system. BusyBox uses the
Almquist shell
Almquist shell (also known as A Shell, ash and sh) is a lightweight Unix shell originally written by Kenneth Almquist in the late 1980s. Initially a clone of the System V.4 variant of the Bourne shell, it replaced the original Bourne shell in th ...
, also known as A Shell, ash and sh. An alternative for customization is the smaller 'hush' shell. "Msh" and "lash" used to be available.
As it is a complete bootstrap system, it will further replace the
init daemon and
udev (or the latter-day
systemd
systemd is a software suite that provides an array of system components for Linux operating systems. Its main aim is to unify service configuration and behavior across Linux distributions; Its primary component is a "system and service manag ...
) using itself to be called as ''init'' on startup and ''mdev'' at hotplug time.
The BusyBox website provides a full list of the utilities implemented.
Single binary
Typical computer programs have a separate
binary (
executable
In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data fil ...
) 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
In computing, a hard link is a directory entry (in a directory-based file system) that associates a name with a file. Thus, each file must have at least one hard link. Creating additional hard links for a file makes the contents of that file ac ...
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
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
. This technique is similar to what is provided by the ''crunchgen'' command in
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, 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 use much less storage space than a system built with the corresponding full versions of the utilities replaced by BusyBox. Research that compared
GNU, BusyBox,
asmutils and
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
implementations of the standard Unix commands showed that in some situations BusyBox may perform faster than other implementations, but not always.
Commands
The official BusyBox documentation lists an overview of the available commands and their command-line options.
List of BusyBox commands
*
ash
Ash or ashes are the solid remnants of fires. Specifically, ''ash'' refers to all non-aqueous, non-gaseous residues that remain after something burns. In analytical chemistry, to analyse the mineral and metal content of chemical samples, ash ...
*
awk
*
cat — Print content of one or more files to stdout.
*
chmod — Change file modes
*
cp — Copy
*
date — Display system date/time
*
dd — Copy a file with converting and formatting
*
df — Print filesystem usage statistics
*
dmesg
dmesg (''diagnostic messages'') is a command on most Unix-like operating systems that prints the message buffer of the kernel. The output includes messages produced by the device drivers.
Command
On many Unix-like systems, the boot process g ...
*
echo — Display a specified line of text.
*
egrep
*
fgrep
*
getty
*
grep — Search for PATTERN in each FILE or standard input.
*
gunzip — Compressed file expansion.
*
gzip — File compression.
*
—
Web server, HTTP server daemon
*
init
In Unix-based computer operating systems, init (short for ''initialization'') is the first process started during booting of the computer system. Init is a daemon process that continues running until the system is shut down. It is the direc ...
*
kill — Send a signal to a process.
*
ln — Create a link named LINK_NAME or DIRECTORY to the specified TARGET.
* login — Begin a new session on the system
*
ls — List of files or folders
* mdev — akin to
udev
*
mkdir
The mkdir (make directory) command in the Unix, DOS, DR FlexOS, IBM OS/2, Microsoft Windows, and ReactOS operating systems is used to make a new directory. It is also available in the EFI shell and in the PHP scripting language. In DOS, OS/2, ...
— Create a folder
*
more
More or Mores may refer to:
Computing
* MORE (application), outline software for Mac OS
* more (command), a shell command
* MORE protocol, a routing protocol
* Missouri Research and Education Network
Music Albums
* ''More!'' (album), by Booka ...
— View FILE or standard input one screen-full at a time
*
mount
Mount is often used as part of the name of specific mountains, e.g. Mount Everest.
Mount or Mounts may also refer to:
Places
* Mount, Cornwall, a village in Warleggan parish, England
* Mount, Perranzabuloe, a hamlet in Perranzabuloe parish, ...
— Mount file systems
*
mv — move file
*
nc — networking Swiss army knife.
*
netstat
In computing, netstat (''network statistics'') is a command-line network utility that displays network connections for Transmission Control Protocol (both incoming and outgoing), routing tables, and a number of network interface ( network inte ...
— Display networking information.
* ntpc
* ntpsync
* nvram
*
pidof — List PIDs of all processes with names that match NAMEs
*
ping — Send ICMP ECHO_REQUEST packets to network hosts
*
ps — Report process status
*
pwd
In Unix-like and some other operating systems, the pwd command (''print working directory'') writes the full pathname of the current working directory to the standard output.
Implementations
Multics had a pwd command (which was a short name ...
— Print working directory
*
realpath
*
rm — Erase file
*
rmdir — Remove directory
*
rpm2cpio
* rstats — Copyright of BusyBox
*
rtcwake
*
runlevel
A runlevel is a mode of operation in the computer operating systems that implements Unix System V-style initialization. Conventionally, seven runlevels exist, numbered from zero to six. ''S'' is sometimes used as a synonym for one of the levels ...
*
run-parts
*
runsv
*
runsvdir
*
rx
*
script
Script may refer to:
Writing systems
* Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire
* Script (styles of handwriting)
** Script typeface, a typeface with characteristics of ha ...
*
sed — Text stream editor
*
setkeycodes
*
setlogcons
*
setsid
*
setuidgid
* sh
*
sha1sum — Compute and check SHA-1 message digest
*
sha256sum
is a computer program that calculates and verifies SHA-1 hashes. It is commonly used to verify the integrity of files. It (or a variant) is installed by default on most Linux distributions. Typically distributed alongside are , , and , which ...
— Compute and check SHA-512 message digest
*
sleep
Sleep is a sedentary state of mind and body. It is characterized by altered consciousness, relatively inhibited Perception, sensory activity, reduced muscle activity and reduced interactions with surroundings. It is distinguished from wakefuln ...
— Suspend program execution for a specified time
*
start-stop-daemon
*
stat
*
strings
*
stty
This is a list of Unix commands as specified by IEEE Std 1003.1-2008, which is part of the Single UNIX Specification (SUS). These commands can be found on Unix operating systems and most Unix-like operating systems.
List
See also
* List of ...
— Change and print terminal line settings
*
su — Execute commands with privileges of another user account
*
sulogin
*
sum — Checksum and count blocks in a file
*
sv
*
svlogd
*
swapoff
*
swapon
*
switch root
*
sync — Write all buffered file system blocks to disk
*
sysctl
*
syslogd
In computing, syslog is a standard for message logging. It allows separation of the software that generates messages, the system that stores them, and the software that reports and analyzes them. Each message is labeled with a facility code, ...
*
tac — Concatenate and print files in reverse line order
*
tail
The tail is the section at the rear end of certain kinds of animals’ bodies; in general, the term refers to a distinct, flexible appendage to the torso. It is the part of the body that corresponds roughly to the sacrum and coccyx in mammal ...
— Output last of file
*
tar
Tar is a dark brown or black viscous liquid of hydrocarbons and free carbon, obtained from a wide variety of organic materials through destructive distillation. Tar can be produced from coal, wood, petroleum, or peat. "a dark brown or black bi ...
*
taskset
*
tcpsvd
*
tee — Send output to multiple files
*
telnet
Telnet is an application protocol used on the Internet or local area network to provide a bidirectional interactive text-oriented communication facility using a virtual terminal connection. User data is interspersed in-band with Telnet control i ...
*
telnetd
*
test
Test(s), testing, or TEST may refer to:
* Test (assessment), an educational assessment intended to measure the respondents' knowledge or other abilities
Arts and entertainment
* ''Test'' (2013 film), an American film
* ''Test'' (2014 film), ...
*
tftp
*
tftpd
*
time
Time is the continued sequence of existence and event (philosophy), events that occurs in an apparently irreversible process, irreversible succession from the past, through the present, into the future. It is a component quantity of various me ...
*
timeout
Time-out, Time Out, or timeout may refer to:
Time
* Time-out (sport), in various sports, a break in play, called by a team
* Television timeout, a break in sporting action so that a commercial break may be taken
* Timeout (computing), an enginee ...
— Run a command with a time limit
*
top
*
touch — Update the last-modified date on the given FILE
*
tr — Translate or delete characters
*
traceroute
*
true
True most commonly refers to truth, the state of being in congruence with fact or reality.
True may also refer to:
Places
* True, West Virginia, an unincorporated community in the United States
* True, Wisconsin, a town in the United States
* ...
*
tty
*
ttysize
*
udhcpc — Small DHCP client
*
udhcpd
*
udpsvd
*
umount — Unmount file systems
*
uname
uname (short for ''unix name'') is a computer program in Unix and Unix-like computer operating systems that prints the name, version and other details about the current machine and the operating system running on it.
History
The uname system ...
— Display system information
*
uncompress
*
unexpand
unexpand is a command in Unix and Unix-like operating systems. It is used to convert groups of space characters into tab characters.
For example:
$ echo " asdf sdf" , unexpand , od -c
0000000 \t \t a s d f ...
*
uniq
uniq is a utility command (computing), command on Unix, Plan 9 from Bell Labs, Plan 9, Inferno (operating system), Inferno, and Unix-like operating systems which, when fed a text file or Standard streams#Standard input (stdin), standard input, o ...
*
unix2dos
(sometimes named or ) is a tool to convert line breaks in a text file from Unix format (Line feed) to DOS format (carriage return + Line feed) and vice versa. When invoked as the program will convert a Unix text file to DOS format, when invo ...
*
unlzma
*
unlzop
*
unzip
ZIP is an archive file format that supports lossless data compression. A ZIP file may contain one or more files or directories that may have been compressed. The ZIP file format permits a number of compression algorithms, though DEFLATE is th ...
*
uptime
Uptime is a measure of system reliability, expressed as the percentage of time a machine, typically a computer, has been working and available. Uptime is the opposite of downtime.
It is often used as a measure of computer operating system reliabi ...
— Tell how long the system has been running.
* usleep — Pause for N
icroseconds*
vconfig — VLAN (802.1q) configuration program
*
vi — (visual) Edit FILE
*
vlock — Virtual Console lock program
*
volname — Return volume name
*
watch
A watch is a portable timepiece intended to be carried or worn by a person. It is designed to keep a consistent movement despite the motions caused by the person's activities. A wristwatch is designed to be worn around the wrist, attached by ...
— Execute a program periodically
*
watchdog
Watchdog or watch dog may refer to:
Animals
*Guard dog, a dog that barks to alert its owners of an intruder's presence
* Portuguese Watch Dog, Cão de Castro Laboreiro, a dog breed
* Moscow Watchdog, a breed of dog that was bred in the Soviet ...
— Software watchdog daemon
*
wc — Word, line, and byte or character count
*
wget
GNU Wget (or just Wget, formerly Geturl, also written as its package name, wget) is a computer program that retrieves content from web servers. It is part of the GNU Project. Its name derives from "World Wide Web" and " ''get''." It supports dow ...
*
which
Which may refer to:
* a relative pronoun
* an interrogative word
*which (command), an operating system command
*Which?, a UK charity and its magazine
See also
* English relative clauses
* Interrogative clause
* Whicher (disambiguation) Whicher ...
— Shows the full path of (shell) commands
*
who
Who or WHO may refer to:
* Who (pronoun), an interrogative or relative pronoun
* Who?, one of the Five Ws in journalism
* World Health Organization
Arts and entertainment Fictional characters
* Who, a creature in the Dr. Seuss book '' Horton He ...
— Display who is on the system
*
whoami — Print effective userid
*
xargs
xargs (short for "extended arguments" ) is a command on Unix and most Unix-like operating systems used to build and execute commands from standard input. It converts input from standard input into arguments to a command.
Some commands such as gr ...
— Construct argument lists and invoke utility
*
yes — to print a string repetitively
*
zcat — Uncompress to stdout
*
zcip
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
Hard may refer to:
* Hardness, resistance of physical materials to deformation or fracture
* Hard water, water with high mineral content
Arts and entertainment
* ''Hard'' (TV series), a French TV series
* Hard (band), a Hungarian hard rock supe ...
or
symbolic links) to the BusyBox executable; BusyBox reads
argv ">to find the name by which it is called, and runs the appropriate command, for example just
:
/bin/ls
after ''/bin/ls'' is linked to ''/bin/busybox''. This works because the first argument passed to a program is the name used for the program call, in this case the argument would be "/bin/ls". BusyBox would see that its "name" is "ls" and act like the "ls" program.
Appliances and reception
BusyBox is used by several operating systems running on
embedded system
An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded ...
s and is an essential component of distributions such as
OpenWrt
OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All com ...
,
OpenEmbedded
OpenEmbedded is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices. The OpenEmbedded framework is developed by the OpenEmbedded community, which was formally established in 2003. Ope ...
(including the
Yocto Project
The Yocto Project is a Linux Foundation collaborative open source project whose goal is to produce tools and processes that enable the creation of Linux distributions for embedded and IoT software that are independent of the underlying architectu ...
) and
Buildroot
Buildroot is a set of Makefiles and patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using cross-compilation to allow building for multiple target platforms on ...
. The
Sharp Zaurus
The Sharp Zaurus is the name of a series of personal digital assistants (PDAs) made by Sharp Corporation. The Zaurus was the most popular PDA during the 1990s in Japan and was based on a proprietary operating system. The first Sharp PDA to use t ...
utilizes BusyBox extensively for ordinary
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
tasks performed on the system's shell.
BusyBox is also an essential component of
VMware ESXi
VMware ESXi (formerly ESX) is an enterprise-class, type-1 hypervisor developed by VMware for deploying and serving virtual computers. As a type-1 hypervisor, ESXi is not a software application that is installed on an operating system (OS); ...
, and
Alpine Linux
Alpine Linux is a Linux distribution designed to be small, simple and secure. Alpine Linux uses musl, BusyBox and OpenRC instead of the more commonly used glibc, GNU Core Utilities and systemd respectively. , both of which are not embedded distributions.
It is necessary for several root applications on Android and is also preinstalled with some "1 Tap Root" solutions such as
Kingo Root
KingoRoot is software intended to provide Rooting (Android), root access on smartphones, tablet computers, etc. running all versions of the Android (operating system), Android operating system from 4.1.2, available since 2013. There is another ...
.
Controversy over Toybox
Toybox
Toybox is a free and open-source software implementation of over 200 Unix command line utilities such as '' ls'', '' cp'', and '' mv''. The Toybox project was started in 2006, and became a 0BSD licensed BusyBox alternative. Toybox is used for mo ...
was started early 2006 under the
GPL-2.0-only license by former BusyBox maintainer Rob Landley as a result of the controversies around GPLv3/GPLv2 discussions. At the end of 2011 it was relicensed under the
BSD-2-Clause license after the project went dormant. In March 2013, it was relicensed again under the
0BSD
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
license. On January 11, 2012, Tim Bird, a
Sony
, commonly stylized as SONY, is a Japanese multinational conglomerate corporation headquartered in Minato, Tokyo, Japan. As a major technology company, it operates as one of the world's largest manufacturers of consumer and professional ...
employee, suggested creating an alternative to BusyBox which would not be under the GNU General Public License. He suggested it be based on the dormant Toybox. In January 2012 the proposal of creating a
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
d alternative to the GPL licensed BusyBox project drew harsh criticism from
Matthew Garrett
Matthew Garrett is an Irish technologist, programmer, and free software activist who is a major contributor to a series of free software projects including Linux, GNOME, Debian, Ubuntu, and Red Hat. He has received the Free Software Award ...
for taking away the only relevant tool for
copyright enforcement
A copyright is a type of intellectual property that gives its owner the exclusive right to copy, distribute, adapt, display, and perform a creative work, usually for a limited time. The creative work may be in a literary, artistic, education ...
of the
Software Freedom Conservancy
Software Freedom Conservancy, Inc. is an organization that provides a non-profit home and infrastructure support for free and open source software projects. The organization was established in 2006, and as of June 2022, had over 40 member pr ...
group. The starter of BusyBox based lawsuits, Rob Landley, responded that this was intentional as he came to the conclusion that the lawsuits resulted not in the hoped for positive outcomes and he wanted to stop them ''"in whatever way I see fit"''.
See also
*
Toybox
Toybox is a free and open-source software implementation of over 200 Unix command line utilities such as '' ls'', '' cp'', and '' mv''. The Toybox project was started in 2006, and became a 0BSD licensed BusyBox alternative. Toybox is used for mo ...
similar project with different licensing policy
*
GNU Core Utilities
The GNU Core Utilities or coreutils is a package of GNU software containing implementations for many of the basic tools, such as cat, ls, and rm, which are used on Unix-like operating systems.
In September 2002, the ''GNU coreutils'' were cr ...
*
util-linux
is a standard package distributed by the Linux Kernel Organization for use as part of the Linux operating system. A fork, (with meaning "next generation"), was created when development stalled, but has been renamed back to , and is the offic ...
,
iproute2
iproute2 is a collection of userspace utilities for controlling and monitoring various aspects of networking in the Linux kernel, including routing, network interfaces, tunnels, traffic control, and network-related device drivers.
iproute2 ...
,
ethtool
ethtool is the primary means in Linux kernel-based operating systems (primarily Linux and Android) for displaying and modifying the parameters of network interface controllers (NICs) and their associated device driver software from application ...
sbasean
intended to form a base system similar to busybox but much smaller. MIT license
9baseport of various original Plan 9 tools for Unix. MIT license
*
The Heirloom Toolchest is a collection of standard Unix utilities derived from original Unix material
*
Linux on embedded systems
Operating systems based on the Linux kernel are used in embedded systems such as consumer electronics (eg. set-top boxes, smart TVs and personal video recorders (PVRs)), in-vehicle infotainment (IVI), networking equipment (such as routers, sw ...
*
Linux for mobile devices
Linux for mobile devices, sometimes referred to as mobile Linux, is the usage of Linux-based operating systems on portable devices, whose primary or only Human interface device (HID) is a touchscreen. It mainly comprises smartphones and tablet com ...
References
Further reading
*
*
External links
*
{{DEFAULTSORT:Busybox
Command shells
Embedded Linux
Free computer programming tools
Free software programmed in C
Unix software