World Library  
Flag as Inappropriate
Email this Article

BusyBox

Article Id: WHEBN0000689584
Reproduction Date:

Title: BusyBox  
Author: World Heritage Encyclopedia
Language: English
Subject: Bruce Perens, Software Freedom Conservancy, Alpine Linux, Toybox, OpenWrt
Collection: Command Shells, Embedded Linux, Free Computer Programming Tools, Free Software Programmed in C, Unix Software
Publisher: World Heritage Encyclopedia
Publication
Date:
 

BusyBox

BusyBox
Original author(s) Bruce Perens
Developer(s) Erik Andersen,[1] Rob Landley,[2] Denys Vlasenko[3] and others
Initial release November 4, 1999 (1999-11-04)[4]
Stable release 1.24.0 (October 12, 2015 (2015-10-12)) [5]
Development status Active
Written in C
Operating system Unix-like
Size 2.1 MB
Type
License GNU GPLv2 only (versions 1.2.3 or later[6])
Website .net.busyboxwww

BusyBox is software that provides several stripped-down Unix tools in a single executable file. It runs in a variety of POSIX environments such as Linux, Android,[7][8][9] and FreeBSD,[10] 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",[11] 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.[6]

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

Contents

  • History 1
  • Features 2
    • Single binary 2.1
  • Examples 3
  • Commands 4
  • Appliances 5
  • GPL lawsuits 6
    • Controversy over Toybox 6.1
  • See also 7
  • References 8
  • Further reading 9
  • External links 10

History

Originally written by Bruce Perens in 1995 and declared complete for his intended usage in 1996,[13] 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 and continued for several years.

As of October 2006 Denys Vlasenko maintains BusyBox.[14]

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.[15][16]

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, respectively.

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

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 or hard link for each different name)[18] 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[19] 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 much smaller than a system built with the corresponding full versions of the utilities replaced by BusyBox. Research[20] 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.

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 reads the zero element of 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.

Busybox would see that its "name" is "ls" and act like the "ls" program.

Commands

The official BusyBox documentation lists an overview of the available commands and their command-line options.[21] The available commands include (expand for view):

Appliances

BusyBox is used by several operating systems running on embedded systems.

GPL lawsuits

What was claimed to be the first US lawsuit over a GPL violation concerned use of BusyBox in an embedded device. The lawsuit,[12] case 07-CV-8205 in the United States District Court for the Southern District of New York was filed on 20 September 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 of the Monsoon version of the source and payment of an undisclosed amount of money to Andersen and Landley.[22]

On 21 November 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).[23][24] The Xterasys case was settled on December 17 for release of source code used and an undisclosed payment,[25] and the High-Gain Antennas case on March 6, 2008 for active license compliance and an undisclosed payment.[26] On 7 December 2007, a case was brought against Verizon Communications over its distribution of firmware for Actiontec routers;[27][28] 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.[29] Further suits were brought on June 9, 2008 against Bell Microproducts (case 08-CV-5270) and Super Micro Computer (case 08-CV-5269),[30] the Super Micro case being settled on 23 July 2008.[31] BusyBox and Bell Microproducts also settled out of court on 17 October.[32]

On December 14, 2009, a new lawsuit was filed naming fourteen defendants including Best Buy, JVC, Samsung and others.[33]

On about Aug 03, 2010, BusyBox won 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 v. Best Buy, et al., the GPL infringement case noted in the paragraph above.[34]

No other developers, including original author Bruce Perens and long time maintainer Dave Cinege, were represented in these actions or party to the settlements. On Dec. 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".[35]

Controversy over Toybox

Toybox was started early 2006 under the GNU General Public License. At the end of 2011[36] it was re-licensed under the BSD License after the project went dormant.[37] On 11 January 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.[38] 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.[39] 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".[40][41]

See also

References

  1. ^ "Erik Andersen's Homepage". 
  2. ^ Active Projects, Rob Landley's website
  3. ^ Denys Vlasenko, BusyBox maintainer
  4. ^ http://www.softwarefreedom.org/resources/2009/busybox-complaint-2009-12-14.pdf
  5. ^ Vlasenko, Denys (2015-10-12). "[git commit] Bump version to 1.24.0". lists.busybox.net Mailing Lists. busybox-cvs. Retrieved 2015-10-12. 
  6. ^ a b "BusyBox". 
  7. ^ Robert Nediyakalaparambil [root]. "BusyBox X - Android Apps on Google Play". 
  8. ^ Stephen (Stericson). "BusyBox - Android Apps on Google Play". 
  9. ^ Burrows Apps. "BusyBox (No Root) - Android Apps on Google Play". 
  10. ^ "FreeBSD port overview". 
  11. ^ The slogan for 'The Swiss Army Knife of Embedded Linux' source
  12. ^ a b On Behalf of BusyBox Developers Andersen and Landley, SFLC Files First Ever U.S. GPL Violation Lawsuit (Software Freedom Law Center 20 September 2007)
  13. ^ http://busybox.net/~landley/forensics.txt
  14. ^ "Busy busy busybox". Retrieved 26 August 2014. 
  15. ^ http://busybox.net/cgi-bin/viewcvs.cgi/trunk/busybox/shell/Config.in?rev=11083 The 'ash' shell adds about 60 kilobytes in the default configuration and is the most complete and most pedantically correct shell included with BusyBox. This shell is actually a derivative of the Debian "dash" shell by Herbert Xu, which was created by porting the "ash" shell, written by Kenneth Almquist, from NetBSD.
  16. ^ ash variants
  17. ^ BusyBox - The Swiss Army Knife of Embedded Linux
  18. ^ "IBM - United States". IBM - United States. 
  19. ^ man pagecrunchgen at freebsd.org
  20. ^ Doug Thayer, Keith Miller (16–17 April 2004). "Four UNIX Programs in Four UNIX Collections: Seeking Consistency in an Open Source Icon" (PDF). Proceedings of Midwest Instruction and Computing Symposium. University of Minnesota, Morris. 
  21. ^ "BusyBox Command Help". Retrieved 2013-02-24. 
  22. ^ Settlement reached in Busybox-Monsoon GPL case (Bruce Byfield, Linux.com, 30 October 2007)
  23. ^ Linux legal team sues over GPL violations (Martin LaMonica, CNET News.com, 21 November 2007)
  24. ^ "Second Round of GPL Infringement Lawsuits Filed on Behalf of BusyBox Developers". 
  25. ^ "BusyBox Developers and Xterasys Corporation Agree to Settle GPL Lawsuit". 
  26. ^ BusyBox Developers and High-Gain Antennas Agree to Dismiss GPL Lawsuit (SFLC press release)
  27. ^ Open-source legal group strikes again on BusyBox, suing Verizon (Grant Gross, Computerworld, Dec 7 2007)
  28. ^ "BusyBox Developers File GPL Infringement Lawsuit Against Verizon Communications". 
  29. ^ Verizon Settles Open Source Software Lawsuit (Paul McDougell, InformationWeek, March 17, 2008)
  30. ^ SFLC Files Another Round of GPL Violation Lawsuits on Behalf of BusyBox Developers (SFLC press release)
  31. ^ BusyBox Developers and Supermicro Agree to End GPL Lawsuit: Good Faith Discussions Result in Dismissal of Copyright Infringement Case (SFLC press release)
  32. ^ 2008. Andersen v. Bell Microproducts, Inc., No. 08-cv-5270, Doc. No. 16 (S.D.N.Y. Oct. 17, 2008) (notice of voluntary dismissal)
  33. ^ Best Buy, Samsung, Westinghouse, 11 more named in GPL lawsuit
  34. ^ Jones, Pamela (2010-08-03). "BusyBox and the GPL Prevail Again - Updated 4Xs". Groklaw. Retrieved 2012-09-27. 
  35. ^ Bruce Perens, "Statement on Busybox lawsuits", perens.com (December 15, 2009).
  36. ^ Landley, Rob. "License change commit". Toybox mercurial repository. Retrieved 24 July 2015. 
  37. ^ http://landley.net/toybox/
  38. ^ "Busybox replacement project". 2012-01-11. Retrieved 2014-03-04. 
  39. ^ "Garrett: The ongoing fight against GPL enforcement".  
  40. ^ "Garrett: The ongoing fight against GPL enforcement".  
  41. ^ Proffitt, Brian (2012-02-02). "GPL enforcement sparks community flames - Throwing the GPL baby out with the enforcement bath water?". ITworld. Retrieved 2015-03-04. 

Further reading

  • Perens, Bruce (November 1, 2000). "Building Tiny Linux Systems with BusyBox—Part I".  
  • Jones, M. Tim (August 15, 2006). "Busybox simplifies embedded Linux systems". Developer Works. IBM. 

External links

  • Official website
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.