BusyBox

Last updated

BusyBox
Original author(s) Bruce Perens
Developer(s) Erik Andersen, [1] Rob Landley, [2] Denys Vlasenko [3] and others
Initial releaseNovember 4, 1999;25 years ago (1999-11-04) [4]
Stable release
1.36.1 [5]   OOjs UI icon edit-ltr-progressive.svg / 19 May 2023
Repository
Written in C
Operating system Unix-like
Size 2.1 MB (compressed "tar.bz2")
Type
License Since 1.3.0: GPL-2.0-only [6]
Until 1.2.2.1: GPL-2.0-or-later [7]
Website busybox.net

BusyBox is a software suite that provides several Unix utilities in a single executable file. It runs in a variety of POSIX environments such as Linux, Android, [8] and FreeBSD, [9] 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", [10] 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 v2, [6] after controversially deciding not to move to version 3.

Contents

History

Origins

Originally written by Bruce Perens in 1995 and declared complete for his intended usage in 1996, [11] BusyBox initially 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, [12] the BusyBox [13] [14] project decided against adopting the GNU General Public License Version 3 (GPLv3); the BusyBox license was clarified as being GPL-2.0-only. [15]

Since October 2006, Denys Vlasenko has taken over maintainership of BusyBox from Rob Landley, who has started Toybox, also as a result of the license controversies. [13] [16]

GPL lawsuits

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

What was claimed to be the first US lawsuit over a GPL violation concerned use of BusyBox in an embedded device. The lawsuit, [17] case 07-CV-8205, 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 of the Monsoon version of the source and payment of an undisclosed amount of money to Andersen and Landley. [18]

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

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

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 v. Best Buy, et al., the GPL infringement case noted in the paragraph above. [34]

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". [12]

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] An alternative for customization is the smaller 'hush' shell. "Msh" and "lash" used to be available. [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.

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

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) [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.

List of BusyBox commands [41]

  • acpid
  • adduser
  • adjtimex
  • ash
  • ar
  • arp — The Address Resolution Protocol (ARP)
  • arping — Send ARP REQUEST to a neighbour host
  • ash
  • basename — Return non-directory portion of a pathname removing suffix.
  • beep
  • blkid — Print type, label and UUID of filesystem on a block device or image.
  • brctl
  • bunzip2 — Decompress bzip2 files.
  • bzcat — Decompress bzip2 files to stdout.
  • bzip2 — Create bzip2 compressed files.
  • cal — Print a calendar.
  • cat — Print content of one or more files to stdout.
  • catv
  • chat
  • chattr — Change file attributes on a Linux file system.
  • chgrp — Change group of one or more files.
  • chmod — Change mode of listed files.
  • chown — Change owner of one or more files.
  • chpasswd
  • chpst
  • chroot — Run command within a new root directory.
  • chrt
  • chvt
  • cksum — For each file, output crc32 checksum value, length and name of file.
  • clear — Clear the screen.
  • cmp — Compare the contents of two files.
  • comm — Select or reject lines common to two files.
  • cp — Copy files.
  • cpio — Copy files into and out of a "newc" format cpio archive.
  • crond
  • crontab
  • cryptpw
  • cut — Print selected parts of lines from each FILE to standard output.
  • date — Set/get the current date/time.
  • dc
  • dd — Copy a file with converting and formatting.
  • deallocvt
  • delgroup
  • deluser
  • depmod
  • devmem
  • df — Print filesystem usage statistics.
  • dhcprelay
  • diff — Compare two files.
  • dirname — Show directory portion of path.
  • dnsd
  • dnsdomainname
  • dos2unix — Convert newline format from dos "\r\n" to unix "\n".
  • dpkg
  • du — Show disk usage, space consumed by files and directories.
  • dumpkmap
  • dumpleases
  • echo — Display a specified line of text.
  • ed
  • eject
  • env — Set the environment for command invocation, or list environment variables.
  • envdir
  • envuidgid
  • expand — Expand tabs to spaces according to tabstops.
  • expr
  • fakeidentd
  • false
  • fbset
  • fbsplash
  • fdflush
  • fdformat
  • fdisk
  • find
  • findfs
  • flash_lock
  • flash_unlock
  • fold
  • free
  • freeramdisk
  • fsck.minix
  • fsck
  • fsync
  • ftpd
  • ftpget
  • ftpput
  • fuser
  • getopt
  • getty
  • grep — Search for PATTERN in each FILE or standard input.
  • gunzip — Compressed file expansion.
  • gzip — File compression.
  • hd
  • hdparm
  • head
  • hexdump
  • hostid
  • hostname
  • httpd — HTTP server daemon
  • hush
  • hwclock
  • id
  • ifconfig
  • ifdown
  • ifenslave
  • ifplugd
  • ifup
  • inetd
  • inotifyd
  • insmod
  • install
  • ionice
  • ip
  • ipaddr
  • ipcalc
  • ipcrm
  • ipcs
  • iplink
  • iproute
  • iprule
  • iptunnel
  • kbd_mode
  • kill — Send a signal to a process.
  • killall
  • klogd
  • last
  • length
  • less
  • linux32
  • linux64
  • linuxrc
  • ln — Create a link named LINK_NAME or DIRECTORY to the specified TARGET.
  • loadfont
  • loadkmap
  • logger
  • login — Begin a new session on the system
  • logname
  • logread
  • losetup
  • lpd
  • lpq
  • lpr
  • ls — List of files or folders
  • lsattr
  • lsmod
  • lzmacat
  • lzop
  • lzopcat
  • makemime
  • man
  • md5sum
  • mdev — akin to udev
  • mesg
  • microcom
  • mkdir — Create a folder
  • mkdosfs
  • mkfifo
  • mkfs.minix
  • mkfs.vfat
  • mknod
  • mkpasswd
  • mkswap
  • mktemp
  • modprobe
  • more — View FILE or standard input one screen-full at a time
  • mount — Mount file systems
  • mountpoint
  • mt
  • mv — move file
  • nameif
  • nc — networking Swiss army knife.
  • netstat — Display networking information.
  • nice
  • nmeter
  • nohup
  • nslookup
  • ntpc
  • ntpsync
  • nvram
  • od
  • openvt
  • passwd
  • patch
  • pgrep
  • pidof — List PIDs of all processes with names that match NAMEs
  • ping6
  • ping — Send ICMP ECHO_REQUEST packets to network hosts
  • pipe_progress
  • pivot_root
  • pkill
  • popmaildir
  • printenv
  • printf
  • ps — Report process status
  • pscan
  • pwd — Print working directory
  • raidautorun
  • rdate
  • rdev
  • readlink
  • readprofile
  • reformime
  • renice
  • reset
  • resize
  • rm — Erase file
  • rmdir — Remove directory
  • rmmod
  • route
  • rpm
  • rstats — Copyright of BusyBox
  • rx
  • script
  • scriptreplay
  • sed — Text stream editor
  • sendmail
  • seq
  • setarch
  • setconsole
  • setfont
  • sh
  • sha1sum — Compute and check SHA-1 message digest
  • sha256sum — Compute and check SHA-256 message digest
  • sha512sum
  • showkey
  • slattach
  • sleep — Suspend program execution for a specified time
  • softlimit
  • sort
  • split
  • stat
  • strings
  • stty — Change and print terminal line settings
  • su — Execute commands with privileges of another user account
  • sum — Checksum and count blocks in a file
  • sv
  • switch_root
  • sync — Write all buffered file system blocks to disk
  • tac — Concatenate and print files in reverse line order
  • tail — Output last of file
  • tar
  • tee — Send output to multiple files
  • test — Built-in evaluation
  • time
  • top
  • touch — Update the last-modified date on the given FILE[s]
  • tr — Translate or delete characters
  • true
  • tty
  • udhcpc — Small DHCP client
  • umount — Unmount file systems
  • uname — Display system information
  • uptime — Tell how long the system has been running.
  • uudecode
  • uuencode
  • usleep — Pause for N [microseconds]
  • vconfig — VLAN (802.1q) configuration program
  • vlock — Virtual Console lock program
  • vi — (visual) Edit FILE
  • volname — Return volume name
  • watch — Execute a program periodically
  • watchdog — Software watchdog daemon
  • wc — Word, line, and byte or character count
  • which — Shows the full path of (shell) commands
  • who — Display who is on the system
  • whoami — Print effective userid
  • xargs — Construct argument lists and invoke utility
  • yes — to print a string repetitively
  • zcat — Uncompress to stdout

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 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]

BusyBox is also an essential component of VMware ESXi, Tiny Core Linux, SliTaz 5(Rolling), and Alpine Linux, all 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.

Controversy over Toybox

Toybox 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 [43] it was relicensed under the BSD-2-Clause license after the project went dormant. [44] In March 2013, it was relicensed again under the 0BSD license. [45] 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. [46] 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. [47] 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". [48] [49]

See also

Related Research Articles

<span class="mw-page-title-main">GNU Project</span> Free software project

The GNU Project is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its license.

In a series of legal disputes between SCO Group and Linux vendors and users, SCO alleged that its license agreements with IBM meant that source code IBM wrote and donated to be incorporated into Linux was added in violation of SCO's contractual rights. Members of the Linux community disagreed with SCO's claims; IBM, Novell, and Red Hat filed claims against SCO.

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.

The Common Development and Distribution License (CDDL) is a free and open-source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under other licenses, whether open source or proprietary. In 2005 the Open Source Initiative approved the license. The Free Software Foundation (FSF) considers it a free software license, but one which is incompatible with the GNU General Public License (GPL).

<span class="mw-page-title-main">Software Freedom Law Center</span> Pro bono legal organization for developers

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 Moglen as chairman. Initial funding of US$4 million was pledged by Open Source Development Labs.

<span class="mw-page-title-main">Bradley M. Kuhn</span> American free software activist

Bradley M. Kuhn is a free software activist from the United States.

<span class="mw-page-title-main">Free and open-source software</span> Software whose source code is available and which is permissively licensed

Free and open-source software (FOSS) is software that is available under a license that grants the right to use, modify, and distribute the software, modified or not, to everyone free of charge. The public availability of the source code is, therefore, a necessary but not sufficient condition. FOSS is an inclusive umbrella term for free software and open-source software. FOSS is in contrast to proprietary software, where the software is under restrictive copyright or licensing and the source code is hidden from the users.

Alternative terms for free software, such as open source, FOSS, and FLOSS, have been a controversial issue among free and open-source software users from the late 1990s onwards. These terms share almost identical licence criteria and development practices.

Tivoization is the practice of designing hardware that incorporates software under the terms of a copyleft software license like the GNU General Public License, but uses hardware restrictions or digital rights management (DRM) to prevent users from running modified versions of the software on that hardware. Richard Stallman of the Free Software Foundation (FSF) coined the term in reference to TiVo's use of GNU GPL licensed software on the TiVo brand digital video recorders (DVR), which actively block modified software by design. Stallman believes this practice denies users some of the freedom that the GNU GPL was designed to protect. The FSF refers to tivoized hardware as "proprietary tyrants".

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux 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 (distro), which includes the kernel and supporting system software and libraries—most of which are provided by third parties—to create a complete operating system, designed as a clone of Unix and released under the copyleft GPL license.

<span class="mw-page-title-main">History of free and open-source software</span>

The history of free and open-source software begins at the advent of computer software in the early half of the 20th century. In the 1950s and 1960s, computer operating software and compilers were delivered as a part of hardware purchases without separate fees. At the time, source code—the human-readable form of software—was generally distributed with the software, providing the ability to fix bugs or add new functions. Universities were early adopters of computing technology. Many of the modifications developed by universities were openly shared, in keeping with the academic principles of sharing knowledge, and organizations sprung up to facilitate sharing.

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 broadband-connected PC or mobile phone. It was one of 5 major transformations initiated by Prabhat Jain, a Silicon Valley entrepreneur with 5 undergraduate and post graduate engineering degrees from Cal Berkeley and Univ of Vienna, Austria. On the even of Cisco acquiring Monsoon in 2017, EchoStar, the new parent of Sling sued Monsoon for patent infringement, having obtained confidential information about the date of the acquisition by Cisco from a Monsoon employee under murky circumstances. Monsoon settled the lawsuit by agreeing not to sell its products in the USA simply because it did not have the legal funds to fight mighty Echostar's legal maneuvers. EchoStar thus successfully removed its only competitor from the market place. This meant Monsoon's death knell.

Stand-alone shell (sash) is a Unix shell designed for use in recovering from certain types of system failures and errors.

License compatibility is a legal framework that allows for pieces of software with different software licenses to be distributed together. The need for such a framework arises because the different licenses can contain contradictory requirements, rendering it impossible to legally combine source code from separately-licensed software in order to create and publish a new program. Proprietary licenses are generally program-specific and incompatible; authors must negotiate to combine code. Copyleft licenses are commonly deliberately incompatible with proprietary licenses, in order to prevent copyleft software from being re-licensed under a proprietary license, turning it into proprietary software. Many copyleft licenses explicitly allow relicensing under some other copyleft licenses. Permissive licenses are compatible with everything, including proprietary licenses; there is thus no guarantee that all derived works will remain under a permissive license.

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 most of Android's command-line tools in all currently supported Android versions, and is also used to build Android on Linux and macOS. All of the tools are tested on Linux, and many of them also work on BSD and macOS.

<span class="mw-page-title-main">Free-software license</span> License allowing software modification and redistribution

A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder of a piece of software can remove these restrictions by accompanying the software with a software license which grants the recipient these rights. Software using such a license is free software as conferred by the copyright holder. Free-software licenses are applied to software in source code and also binary object-code form, as the copyright law recognizes both forms.

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 license was used for its namesake, the Berkeley Software Distribution (BSD), a Unix-like operating system. The original version has since been revised, and its descendants are referred to as modified BSD licenses.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public Licenses are a series of widely used free software licenses, or copyleft licenses, that guarantee end users the freedoms to run, study, share, and/or modify the software. The GPL was the first copyleft license available for general use. It was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. The licenses in the GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License, and even further distinct from the more widely-used permissive software licenses such as BSD, MIT, and Apache.

In computing, klibc is a minimalistic subset of the standard C library developed by H. Peter Anvin. It was developed mainly to be used during the Linux startup process, and it is part of the early user space, i.e. components used during kernel startup, but which do not run in kernel mode. These components do not have access to the standard library used by normal userspace programs.

<span class="mw-page-title-main">Buildroot</span> Tool for building Linux

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 a single Linux-based development system. Buildroot can automatically build the required cross-compilation toolchain, create a root file system, compile a Linux kernel image, and generate a boot loader for the targeted embedded system, or it can perform any independent combination of these steps. For example, an already installed cross-compilation toolchain can be used independently, while Buildroot only creates the root file system.

References

  1. "Erik Andersen's Homepage". Archived from the original on June 13, 2010. Retrieved December 23, 2009.
  2. Active Projects Archived July 29, 2010, at the Wayback Machine , Rob Landley's website
  3. Denys Vlasenko Archived September 5, 2017, at the Wayback Machine , BusyBox maintainer
  4. "busybox-complaint-2009-12-14" (PDF). Software Freedom Law Center. Archived from the original (PDF) on September 24, 2015. Retrieved June 30, 2022.
  5. "BusyBox 1.36.1 (stable)".
  6. 1 2 "BusyBox". Archived from the original on February 24, 2018. Retrieved February 23, 2018.
  7. "busybox-1.2.2.1.tar.bz2". Archived from the original on March 31, 2022. Retrieved June 29, 2021. From changelog: This is the last release of BusyBox under the old "GPLv2 or later" dual license. Future versions (containing changes after svn 16112) will just be GPLv2 only, without the "or later".
  8. BitCubate X. "BusyBox Classic". Archived from the original on October 27, 2022. Retrieved August 8, 2017.
  9. "Port details". Archived from the original on July 9, 2023. Retrieved September 27, 2024.
  10. "The slogan for 'The Swiss Army Knife of Embedded Linux' source". Archived from the original on February 24, 2018. Retrieved February 23, 2018.
  11. Landley, Rob. "BusyBox forensic analysis" (TXT). Archived from the original on October 25, 2021. Retrieved November 11, 2022.
  12. 1 2 Bruce Perens (December 15, 2009). "Statement on Busybox Lawsuits". Archived from the original on December 20, 2009.
  13. 1 2 Corbet, Jonathan (October 1, 2006). "Busy busy busybox". LWN.net. Archived from the original on January 7, 2016. Retrieved November 21, 2015. 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
  14. Landley, Rob (September 9, 2006). "Re: Move GPLv2 vs v3 fun…". lwn.net. Archived from the original on September 16, 2017. Retrieved November 21, 2015. 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: We're never dropping GPLv2.
  15. GPL version 2 only for BusyBox 1.3.0. Archived September 14, 2016, at the Wayback Machine on lwn.net
  16. Landley, Robert (September 30, 2006). "I'm going out now. I may be some time". busybox (Mailing list). Archived from the original on July 18, 2016. Retrieved July 21, 2016.
  17. 1 2 On Behalf of BusyBox Developers Andersen and Landley, SFLC Files First Ever U.S. GPL Violation Lawsuit Archived October 6, 2007, at the Wayback Machine (Software Freedom Law Center September 20, 2007)
  18. Byfield, Bruce (October 30, 2007). "Settlement reached in Busybox-Monsoon GPL case". Linux.com. Archived from the original on September 24, 2008.
  19. Linux legal team sues over GPL violations Archived December 13, 2007, at the Wayback Machine (Martin LaMonica, CNET News.com, November 21, 2007)
  20. "Second Round of GPL Infringement Lawsuits Filed on Behalf of BusyBox Developers". Archived from the original on November 24, 2007. Retrieved November 25, 2007.
  21. "BusyBox Developers and Xterasys Corporation Agree to Settle GPL Lawsuit". Archived from the original on December 19, 2007. Retrieved December 18, 2007.
  22. BusyBox Developers and High-Gain Antennas Agree to Dismiss GPL Lawsuit Archived March 9, 2008, at the Wayback Machine (SFLC press release)
  23. Gross, Grant (December 7, 2007). "Open-source legal group strikes again on BusyBox, suing Verizon". Computerworld . Archived from the original on April 6, 2024. Retrieved September 27, 2024.
  24. "BusyBox Developers File GPL Infringement Lawsuit Against Verizon Communications". Archived from the original on December 30, 2007. Retrieved December 22, 2007.
  25. Verizon Settles Open Source Software Lawsuit Archived March 21, 2008, at the Wayback Machine (Paul McDougell, InformationWeek, March 17, 2008)
  26. SFLC Files Another Round of GPL Violation Lawsuits on Behalf of BusyBox Developers Archived June 11, 2008, at the Wayback Machine (SFLC press release)
  27. BusyBox Developers and Supermicro Agree to End GPL Lawsuit: Good Faith Discussions Result in Dismissal of Copyright Infringement Case Archived July 27, 2008, at the Wayback Machine (SFLC press release)
  28. 2008. Andersen v. Bell Microproducts, Inc., No. 08-cv-5270, Doc. No. 16 (S.D.N.Y. Oct. 17, 2008) (notice of voluntary dismissal)
  29. Perlow, Jason (December 16, 2009). "How to avoid modern day public GPL floggings". ZDNet. Archived from the original on March 13, 2016. Retrieved March 24, 2016. 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.
  30. Andrew Nusca. "Best Buy, Samsung, Westinghouse, 11 more named in GPL lawsuit". cnet.com.
  31. "The Software Freedom Conservancy, Inc. & Mr. Erik Andersen vs BestBuy, Samsung, Westinghouse, JVC, Western Digital, Bosch, Phoebe Micro, Humax, ..." (PDF). January 19, 2017. Archived from the original (PDF) on May 25, 2024.
  32. Visual Display - Open Source 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)
  33. Main_Page Archived February 16, 2017, at the Wayback Machine on samygo.tv
  34. Jones, Pamela (August 3, 2010). "BusyBox and the GPL Prevail Again - Updated 4Xs". Groklaw . Archived from the original on August 4, 2010. Retrieved September 27, 2012.
  35. "ash variants". Archived from the original on March 10, 2010. Retrieved May 15, 2008.
  36. "Use the new 'select' option to make the shell config". August 8, 2003. Archived from the original on April 1, 2019. Retrieved April 2, 2019. 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 the Debian 'dash' shell (by Herbert Xu), which was created by porting the 'ash' shell (written by Kenneth Almquist) from NetBSD.
  37. "BusyBox – The Swiss Army Knife of Embedded Linux". Archived from the original on February 2, 2018. Retrieved February 23, 2018.
  38. "BusyBox simplifies embedded Linux systems: A small toolkit for small environments". IBM. Archived from the original on December 9, 2008.
  39. crunchgen(1)    FreeBSD General Commands Manual
  40. Thayer, Doug; Miller, Keith (April 16–17, 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. Archived (PDF) from the original on October 3, 2011. Retrieved December 5, 2011.
  41. "BusyBox Command Help". Archived from the original on February 2, 2018. Retrieved February 24, 2013.
  42. "Linux on the Road". Archived from the original on September 7, 2018. Retrieved August 27, 2018.
  43. Landley, Rob. "License change commit". Toybox mercurial repository. Archived from the original on July 24, 2015. Retrieved July 24, 2015.
  44. "Toybox news". Archived from the original on September 9, 2015. Retrieved September 14, 2015.
  45. Landley, Rob. "Simplify license text, as mentioned on the mailing list". Toybox mercurial repository. Archived from the original on July 28, 2021. Retrieved June 29, 2021.
  46. "Busybox replacement project". January 11, 2012. Archived from the original on February 18, 2015. Retrieved March 4, 2014.
  47. "Garrett: The ongoing fight against GPL enforcement". LWN.net. January 31, 2012. Archived from the original on September 14, 2016. Retrieved March 4, 2014. 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.
  48. "Garrett: The ongoing fight against GPL enforcement". LWN.net. January 31, 2012. Archived from the original on September 14, 2016. Retrieved March 4, 2014. >As the ex-maintainer of busybox who STARTED those lawsuits in the first place and now HUGELY REGRETS ever having done so, I think 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.
  49. Proffitt, Brian (February 2, 2012). "GPL enforcement sparks community flames - Throwing the GPL baby out with the enforcement bath water?". ITworld. Archived from the original on January 7, 2016. Retrieved March 4, 2015.

Further reading