Sie sind auf Seite 1von 7

BusyBox

BusyBox is a software suite that provides several Unix utilities in a


BusyBox
single executable file. It runs in a variety of POSIX environments such
as Linux, Android,[7] and FreeBSD,[8] 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",[9] 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, version
2.[6]

Contents Original author(s) Bruce Perens


Developer(s) Erik Andersen,[1] Rob
History
Origins
Landley,[2] Denys
GPLv2/GPLv3 controversies Vlasenko[3] and others
GPL lawsuits Initial release November 4, 1999[4]
Features Stable release 1.30.1 (February 14, 2019)
Single binary
[±][5]
Commands
Repository git.busybox.net/busybox
Examples
Appliances and reception
Controversy over Toybox Written in C
See also Operating system Unix-like
References Size 2.1 MB (compressed
Further reading "tar.bz2")
External links Type Linux on embedded
systems
Linux for mobile devices
History
License GPLv2[6]
Website www.busybox.net
Origins
Originally written by Bruce Perens in 1995 and declared complete for his intended usage in 1996,[10] 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 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,[11] the
BusyBox[12][13] project decided against adopting the GNU Public License Version 3 (GPLv3); the BusyBox license was clarified as
being GPL Version 2 (GPLv2) only.[14]

As of October 2006 Denys Vlasenko took over maintainership of BusyBox from Rob Landley, who started Toybox, also as result of
the license controversies.[12][15]

GPL lawsuits
In late 2007, BusyBox also came to prominence for actively prosecuting violations of the terms of its license (the GPL) in the U.S.
ork.[16]
District Court for the Southern District of New Y

[16]
What was claimed to be the first US lawsuit over a GPL violation concerned use of BusyBox in an embedded device. The lawsuit,
case 07-CV-8205 in the United States District Court for the Southern District of New York was filed on September 20, 2007 by the
Software Freedom Law Center (SFLC) on behalf of Andersen and Landley against Monsoon Multimedia Inc., after BusyBox code
was discovered in a firmware upgrade and attempts to contact the company had apparently failed. The case was settled with release
.[17]
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).[18][19] The Xterasys case was settled on December 17
for release of source code used and an undisclosed payment,[20] and the High-Gain Antennas case on March 6, 2008 for active
license compliance and an undisclosed payment.[21] On December 7, 2007, a case was brought againstVerizon Communicationsover
its distribution of firmware for Actiontec routers;[22][23] 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.[24] Further
suits were brought on June 9, 2008 against Bell Microproducts (case 08-CV-5270) and SuperMicro (case 08-CV-5269),[25] the Super
Micro case being settled on July 23, 2008.[26] BusyBox and Bell Microproducts also settled out of court on October 17.
[27]

On December 14, 2009, a new lawsuit was filed naming fourteen defendants including Best Buy, JVC, Samsung and
others.[28][29][30] In February 2010 Samsung released its LN52A650 TV firmware under GPLv2,[31] which was used later as a
reference by the SamyGO community project.[32]

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
[33]
Conservancy 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
[34]
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, also known as A Shell, ash and sh.[35][36]
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.

[37]
The BusyBox Web site provides a full list of the utilities implemented.

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 asymbolic link or hard link for each different name)[38] 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[39] 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 use much less
storage space than a system built with the corresponding full versions of the utilities replaced by BusyBox. Research[40] 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.

Commands
The official BusyBox documentation lists an overview of the available commands and their command-line options.

ash gunzip — mv — move file rstats — Copyright of[show]


awk Compressed file nc — networking BusyBox
expansion. Swiss army knife. rtcwake
cat — Copy file
content to stdout gzip — File netstat — Display runlevel
compression. networking
chmod — Change file run-parts
modes init information.
runsv
cp — Copy kill — Send a signal ntpc
runsvdir
to a process. ntpsync
date — Display rx
system date/time ln — Create a link nvram
named LINK_NAME script
dd — Copy a file with pidof — List PIDs of
or DIRECTORY to sed — Text stream
converting and all processes with
the specified editor
formatting names that match
TARGET. setkeycodes
df — Print filesystem NAMEs
login — Begin a new setlogcons
usage statistics ping — Send ICMP
session on the setsid
dmesg ECHO_REQUEST
system
packets to network setuidgid
echo — Display a ls — List of files or hosts sh
specified line of text. folders
ps — Report process sha1sum —
egrep mdev — akin to udev status Compute and check
fgrep mkdir — Create a pwd — Print working SHA-1 message
getty folder directory digest
grep — Search for more — View FILE or rm — Erase file sha256sum —
PATTERN in each standard input one
rmdir — Remove Compute and check
FILE or standard screen-full at a time
directory SHA-512 message
input. mount — Mount file
rpm2cpio digest
systems
sleep — Suspend tac — Concatenate tty vlock — Virtual
program execution and print files in ttysize Console lock
for a specified time reverse line order program
udhcpc — Small
start-stop-daemon tail — Output last of DHCP client volname — Return
stat file volume name
udhcpd
strings tar watch — Execute a
udpsvd
taskset program periodically
stty — Change and umount — Unmount
print terminal line tcpsvd watchdog —
file systems
settings Software watchdog
tee — Send output to uname — Display daemon
su — Execute multiple files system information
commands with wc — Word, line, and
telnet uncompress
privileges of another byte or character
telnetd unexpand count
user account
test uniq wget
sulogin
tftp unix2dos which — Shows the
sum — Checksum
and count blocks in a tftpd unlzma full path of (shell)
file time unlzop commands
sv timeout — Run a unzip who — Display who
command with a time is on the system
svlogd uptime — Tell how
limit whoami — Print
swapoff long the system has
top been running. effective userid
swapon
touch — Update the usleep — Pause for xargs — Construct
switch_root argument lists and
last-modified date on N [microseconds]
sync — Write all the given FILE[s] invoke utility
buffered file system vconfig — VLAN
tr — Translate or (802.1q) yes — to print a
blocks to disk string repetitively
delete characters configuration
sysctl zcat — Uncompress
traceroute program
syslogd to stdout
true vi — (visual) Edit
FILE zcip

Examples
Programs included in BusyBox can be run simply by adding their name as an gument
ar 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 reads
argv[0] 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 systems and is an essential component of distributions such as
OpenWrt, OpenEmbedded (including the Yocto Project) and Buildroot. The Sharp Zaurus utilizes BusyBox extensively for ordinary
Unix-like tasks performed on the system's shell.[42]

It is necessary for several root applications on Android and is also preinstalled with some "1 Tap Root" solutions such as Kingo Root.
Controversy over Toybox
Toybox was started early 2006 under the GNU General Public License by former Busybox maintainer Rob Landley as a result of the
controversies around GPLv3/GPLv2 discussions. At the end of 2011[43] it was re-licensed under the BSD License after the project
went dormant.[44] On January 11, 2012, Tim Bird, a Sony 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.[45] In January 2012 the proposal of
creating a BSD licensed alternative to the GPL licensed BusyBox project drew harsh criticism from Matthew Garrett for taking away
the only relevant tool for copyright enforcement of the Software Freedom Conservancy group.[46] 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".[47][48]

See also
GNU Core Utilities
util-linux, iproute2, ethtool
Linux on embedded systems
Linux for mobile devices

References
1. "Erik Andersen's Homepage"(http://www.codepoet.org/andersen/erik/erik.html).
2. Active Projects (http://landley.net/code/), Rob Landley's website
3. Denys Vlasenko (https://busybox.net/~vda/resume/denys_vlasenko.htm)
, BusyBox maintainer
4. http://www.softwarefreedom.org/resources/2009/busybox-complaint-2009-12-14.pdf
5. "Announce 1.30.1" (https://www.busybox.net/news.html). Retrieved 2019-02-14.
6. "BusyBox" (https://www.busybox.net/license.html).
7. BitCubate X. "BusyBox Classic" (https://play.google.com/store/apps/details?id=busybox.lite&hl=en).
8. "FreeBSD port overview"(http://portsmon.freebsd.org/portoverview
.py?category=sysutils&portname=busybox).
9. The slogan for 'The Swiss Army Knife of Embedded Linux' source(https://www.busybox.net/about.html)
10. https://busybox.net/~landley/forensics.txt
11. Statement on Busybox Lawsuits(https://web.archive.org/web/20091220044135/http://perens.com/blog/2009/12/15/2
3/) on Bruce Perens' Weblog (2009-12-15, archived)
12. corbet (2006-10-01). "Busy busy busybox" (https://lwn.net/Articles/202106/). lwn.net. Retrieved 2015-11-21. "Since
BusyBox can be found in so many embedded systems, it finds itself at the core of the GPLv3 anti-DRM debate.
[...]The real outcomes, however, are this: BusyBox will be GPLv2 only starting with the next release. It is generally
accepted that stripping out the "or any later version" is legally defensible, and that the merging of other GPLv2-only
code will force that issue in any case"
13. Landley, Rob (2006-09-09). "Re: Move GPLv2 vs v3 fun..."(https://lwn.net/Articles/202110/)lwn.net. Retrieved
2015-11-21. "Don't invent a straw man argument please. I consider licensing BusyBox under GPLv3 to be useless,
unnecessary, overcomplicated, and confusing, and in addition to that it has actual downsides. 1) Useless: W
e're
never dropping GPLv2."
14. GPL version 2 only for BusyBox 1.3.0.(https://lwn.net/Articles/202113/)on lwn.net
15. Landley, Robert (2006-09-30)."I'm going out now. I may be some time" (https://lwn.net/Articles/202120/). busybox
(Mailing list).
16. On Behalf of BusyBox Developers Andersen and Landley, SFLC Files First Ever U.S. GPL Violation Lawsuit (http://w
ww.softwarefreedom.org/news/2007/sep/20/busybox/) (Software Freedom Law Center September 20, 2007)
17. Settlement reached in Busybox-Monsoon GPL case(http://www.linux.com/feature/120629)(Bruce Byfield,
Linux.com, October 30, 2007)
18. Linux legal team sues over GPL violations(http://news.zdnet.co.uk/software/0,1000000121,39290971,00.htm)
(Martin LaMonica, CNET News.com, November 21, 2007)
19. "Second Round of GPL Infringement Lawsuits Filed on Behalf of BusyBox Developers"
(http://www.softwarefreedom.
org/news/2007/nov/20/busybox/).
20. "BusyBox Developers and Xterasys Corporation Agree to Settle GPL Lawsuit"
(http://www.softwarefreedom.org/new
s/2007/dec/17/busybox-xterasys-settlement/).
21. BusyBox Developers and High-Gain Antennas Agree to Dismiss GPL Lawsuit
(http://www.softwarefreedom.org/new
s/2008/mar/06/busybox-hga/)(SFLC press release)
22. Open-source legal group strikes again on BusyBox, suing e
Vrizon (http://www.computerworld.com/action/article.do?c
ommand=viewArticleBasic&taxonomyName=development&articleId=9051799&taxonomyId=11&intsrc=kc_top)
Archived (https://web.archive.org/web/20071210105723/http://www .computerworld.com/action/article.do?command=
viewArticleBasic&taxonomyName=development&articleId=9051799&taxonomyId=11&intsrc=kc_top) 2007-12-10 at
the Wayback Machine (Grant Gross, Computerworld, December 7, 2007)
23. "BusyBox Developers File GPL Infringement Lawsuit Against eVrizon Communications"(http://www.softwarefreedo
m.org/news/2007/dec/07/busybox/).
24. Verizon Settles Open Source Software Lawsuit (http://www.informationweek.com/news/showArticle.jhtml?articleID=2
06904096&subSection=News)(Paul McDougell, InformationWeek, March 17, 2008)
25. SFLC Files Another Round of GPL Violation Lawsuits on Behalf of BusyBox Developers(http://www.softwarefreedo
m.org/news/2008/jun/10/busybox/)(SFLC press release)
26. BusyBox Developers and Supermicro Agree to End GPL Lawsuit: Good Faith Discussions Result in Dismissal of
Copyright Infringement Case(http://www.softwarefreedom.org/news/2008/jul/23/busybox-supermicro/)(SFLC press
release)
27. 2008. Andersen v. Bell Microproducts, Inc., No. 08-cv-5270, Doc. No. 16 (S.D.N.Y
. Oct. 17, 2008) (notice of
voluntary dismissal)
28. Jason Perlow (December 16, 2009)."How to avoid modern day public GPL floggings"(http://www.zdnet.com/article/
how-to-avoid-modern-day-public-gpl-floggings/). zdnet.com. Retrieved 2016-03-24. "Public floggings and executions
like the recent SFLC lawsuit could be avoided if actual standards and procedures for compliance with the GPL and
other Free and Open Source licenses actually existed."
29. Best Buy, Samsung, Westinghouse, 11 more named in GPL lawsuit(http://news.cnet.com/8301-1001_3-10415270-9
2.html?tag=nl.e703) on cnet.com
30. The (http://tech-insider.org/open-source-software/research/acrobat/091214.pdf)Software Freedom Conservancy, Inc.
& Mr. Erik Andersen vs BestBuy, Samung, Westinghouse, JVC, Western Digital, Bosch, Phoebe Micro, Humax, ...
(New York, 2009)
31. Visual Display - Open Source(https://web.archive.org/web/20100210133921/http://www
.samsung.com/global/opens
ource) on samsung.com "Please download the links below We use GPLv2 and LGPLv2.1, not GPLv3 and LGPLv3.
Model: LN40A650 / LN52A650 / LN52A750 [...] LN52A750.zip"(archived 2010)
32. Main_Page (https://wiki.samygo.tv/index.php?title=Main_Page)on samygo.tv
33. Jones, Pamela (2010-08-03)."BusyBox and the GPL Prevail Again - Updated 4Xs"(http://www.groklaw.net/article.ph
p?story=20100803132055210). Groklaw. Retrieved 2012-09-27.
34. Bruce Perens, "Statement on Busybox lawsuits(https://web.archive.org/web/20110515142741/http://perens.com/blo
g/d/2009/12/15/23/)", perens.com (December 15, 2009).
35. "Use the new 'select' option to make the shell config"(https://git.busybox.net/busybox/commit/shell/Config.in?id=b28
7e2e27a388deecd9d9580f2a846b2b2efff42). 2003-08-08. Retrieved 2019-04-02. "The 'ash' shell adds about 60k in
the default configuration and is the most complete and most pedantically correct shell included with busybox. This
shell is actually a derivative of theDebian 'dash' shell (by Herbert Xu), which was created by porting the 'ash' shell
(written by Kenneth Almquist) from NetBSD."
36. ash variants (http://www.in-ulm.de/~mascheck/various/ash/#busybox)
37. BusyBox - The Swiss Army Knife of Embedded Linux(https://www.busybox.net/downloads/BusyBox.html)
38. "BusyBox simplifies embedded Linux systems: A small toolkit for small environments"(https://web.archive.org/web/2
0081209025021/http://www-128.ibm.com/developerworks/library/l-busybox/index.html) . IBM. Archived from the
original (http://www-128.ibm.com/developerworks/library/l-busybox/index.html)on 2008-12-09.
39. crunchgen man page (http://www.freebsd.org/cgi/man.cgi?query=crunchgen) at freebsd.org (http://www.freebsd.org/)
Archived (https://web.archive.org/web/20070622031611/http://www.freebsd.org/) June 22, 2007, at the Wayback
Machine
40. Doug Thayer, Keith Miller (April 16–17, 2004). "Four UNIX Programs in Four UNIX Collections: Seeking Consistency
in an Open Source Icon"(http://www.micsymposium.org/mics_2004/ThayerMiller.pdf) (PDF). Proceedings of
Midwest Instruction and Computing Symposium . University of Minnesota, Morris.
41. "BusyBox Command Help"(https://www.busybox.net/downloads/BusyBox.html#commands). Retrieved 2013-02-24.
42. "Linux on the Road" (http://tldp.org/LDP/Mobile-Guide/html/Mobile-Guide.html#mobile-guide-p3-handheld-devices-pd
as).
43. Landley, Rob. "License change commit"(http://landley.net/hg/toybox/rev/f3a00ece7966). Toybox mercurial
repository. Retrieved July 24, 2015.
44. http://landley.net/toybox/
45. "Busybox replacement project"(http://www.elinux.org/index.php?title=Busybox_replacement_project&oldid=83858).
2012-01-11. Retrieved 2014-03-04.
46. "Garrett: The ongoing fight against GPL enforcement"(https://lwn.net/Articles/478249/). LWN.net. 2012-01-31.
Retrieved 2014-03-04. "The real problem here is that the [Software Freedom Conservancy's] reliance on Busybox
means that they're only able to target infringers who use that Busybox code. No significant kernel copyright holders
have so far offered to allow the SFC to enforce their copyrights, with the result that enforcement action will grind to a
halt as vendors move over to this Busybox replacement. "
47. "Garrett: The ongoing fight against GPL enforcement"(https://lwn.net/Articles/478361/). LWN.net. 2012-01-31.
Retrieved 2014-03-04. ">As the ex-maintainer of busybox who ST ARTED those lawsuits in the first place and now
HUGELY REGRETS ever having done so, I hink t I'm entitled to stop the lawsuits in whatever way I see fit. They
never resulted in a single line of code added to the busybox repository . They HAVE resulted in more than one
company exiting Linux development entirely and switching to non-Linux operating systems for their embedded
products, and they're a big part of the reason behind Android's "No GPL in userspace" policy ."
48. Proffitt, Brian (2012-02-02)."GPL enforcement sparks community flames - Throwing the GPL baby out with the
enforcement bath water?"(http://www.itworld.com/article/2732025/open-source-tools/gpl-enforcement-sparks-comm
unity-flames.html). ITworld. Retrieved 2015-03-04.

Further reading
Perens, Bruce (November 1, 2000)."Building Tiny Linux Systems with BusyBox—Part I". Linux Journal. Belltown
Media. Archived from the original on November 22, 2015. Retrieved November 22, 2015.
Jones, M. Tim (August 15, 2006). "Busybox simplifies embedded Linux systems". Developer Works. IBM.

External links
Official website

Retrieved from "https://en.wikipedia.org/w/index.php?title=BusyBox&oldid=895251453


"

This page was last edited on 3 May 2019, at 00:05(UTC).

Text is available under theCreative Commons Attribution-ShareAlike License ; additional terms may apply. By using this
site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of theWikimedia
Foundation, Inc., a non-profit organization.

Das könnte Ihnen auch gefallen