<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 

<HTML>
<HEAD>
<TITLE>BusyBox</TITLE>
</HEAD>

<body text="#000000" alink="#660000" link="#660000" bgcolor="#dee2de" vlink="#660000">

<basefont face="lucida, helvetica, arial" size="3">


<CENTER>
      <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2>
	    <TR>
		<td bgcolor="#000000">
		  <FONT FACE="lucida, helvetica" COLOR="#ccccc0">
		      <B>B&nbsp;u&nbsp;s&nbsp;y&nbsp;B&nbsp;o&nbsp;x</B>
		  </FONT>
		</TD>
	    </TR>
      </TABLE>
      <a href="/"><IMG SRC="images/busybox2.jpg" alt="BusyBox" border="0" width="360" height="230"></a><BR>


<!-- Begin Introduction section -->


<TABLE WIDTH="95%" CELLSPACING=1 CELLPADDING=4 BORDER=1>
<TR><TD BGCOLOR="#ccccc0" ALIGN=center>
    <A NAME="intro"> <BIG><B>
    The Swiss Army Knife of Embedded Linux
    </B></BIG></A>
</TD></TR>
<TR><TD BGCOLOR="#eeeee0">

BusyBox combines tiny versions of many common UNIX utilities into a single
small executable. It provides minimalist replacements for most of the utilities
you usually find in fileutils, shellutils, findutils, textutils, grep, gzip,
tar, etc. BusyBox provides a fairly complete POSIX environment for any small or
embedded system. The utilities in BusyBox generally have fewer options than
their full featured GNU cousins; however, the options that are included provide
the expected functionality and behave very much like their GNU counterparts.
<p>
BusyBox has been written with size-optimization and limited resources in mind.
It is also extremely modular so you can easily include or exclude commands (or
features) at compile time. This makes it easy to customize your embedded
systems. To create a working system, just add /dev, /etc, and a kernel.
<p>

BusyBox is maintained by 
<a href="http://codepoet.org/andersen/erik/erik.html">
Erik Andersen</a>, and licensed under the 
<a href="http://www.gnu.org/copyleft/gpl.html">GNU GENERAL PUBLIC LICENSE</a>.
<p>


<h3> Screenshot </h3>

<p> Because everybody loves screenshots, a screenshot of BusyBox 
is now available <a href="screenshot.html">right here</a>.


<H3>Mailing List Information</h3>
BusyBox now has a <a href="http://busybox.net/lists/busybox/">mailing list</a>!
To subscribe, go and visit <a href="http://busybox.net/mailman/listinfo/busybox">this page</a>.

<!-- Begin Latest News section -->

<TR><TD BGCOLOR="#ccccc0" ALIGN=center>
    <A NAME="news">
    <BIG><B>
    Latest News
    </B></BIG>
    </A>
</TD></TR>
<TR><TD BGCOLOR="#eeeee0">

<ul>

    <li> <b>20 November 2001 -- BusyBox 0.60.2 released</b>
    <p>

    I am very pleased to announce that the BusyBox 0.60.2 (stable) is now
    released to the world.  This one is primarily a bugfix release for the
    stable series, and I believe it should take care of most everyone's needs
    till we can get the nice new stuff we have been working on in CVS ready to
    release (with the wonderful new buildsystem).  The biggest change in this
    release (beyond bugfixes) is the fact that msh (the minix shell) has been
    re-worked by Vladimir N. Oleynik (vodz) and so it no longer crashes when
    told to do complex things with backticks.
    <p>
    
    I've personally tested this release out
    on x86, ARM, and powerpc using glibc 2.2.4, libc5, and uClibc, so
    it should work with just about any Linux system you throw it at.  
    See the <a href="http://busybox.net/downloads/Changelog">changelog</a> 
    for <small>most of</small> the details.  The last release was
    <em>very</em> solid for people, and this one should be even better.
    <p>
    As usual BusyBox 0.60.2 can be downloaded from 
	     <a href="http://busybox.net/downloads">http://busybox.net/downloads</a>.
    <p>
    And please read the news item for the 18th as well.  Have Fun.<br> -Erik
    <p>

    <li> <b>18 November 2001 -- Help us buy busybox.net!</b>
    
    <!-- Begin PayPal Logo -->
    <center>
    Click here to help buy busybox.net!
    <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
	<input type="hidden" name="cmd" value="_xclick">
	<input type="hidden" name="business" value="andersen@codepoet.org">
	<input type="hidden" name="item_name" value="Support Busybox/Buy busybox.net">
	<input type="hidden" name="image_url" value="https://busybox.net/images/busybox2.jpg">
	<input type="hidden" name="no_shipping" value="1">
	<input type="image" src="images/donate.png" border="0" name="submit" alt="Make donation using PayPal">
    </form>
    </center>
    <!-- End PayPal Logo -->

    I've contacted the current owner of busybox.net and he is willing
    to sell the domain name -- for $250.  He also owns busybox.org but
    will not part with it...  I will then need to pay the registry fee
    for a couple of years and start paying for bandwidth, so this will
    initially cost about $300.  I would like to host busybox.net on my
    home machine (codepoet.org) so I have full control over the system,
    but to do that would require that I increase the level of bandwidth 
    I am paying for.  Did you know that so far this month, there
    have been over 1.4 Gigabytes of busybox ftp downloads?  I don't
    even <em>know</em> how much CVS bandwidth it requires.  For the
    time being, Lineo has continued to graciously provide this
    bandwidth, despite the fact that I no longer work for them.  If I 
    start running this all on my home machine, paying for the needed bandwidth 
    will start costing some money.
    <p>

    I was going to pay it all myself, but my wife didn't like that
    idea at all (big surprise).   It turns out &lt;insert argument
    where she wins and I don't&gt; she has better ideas 
    about what we should spend our money on that don't involve
    busybox.  She suggested I should ask for contributions on the
    mailing list and web page.  So...
    <p>

    I am hoping that if everyone could contribute a bit, we could pick
    up the busybox.net domain name and cover the bandwidth costs.  I
    know that busybox is being used by a lot of companies as well as
    individuals -- hopefully people and companies that are willing to 
    contribute back a bit.  So if everyone could please help out, that 
    would be wonderful!
    <p>


    <li> <b>23 August 2001 -- BusyBox 0.60.1 released</b>
    <br>

	     This is a relatively minor bug fixing release that fixes
	     up the bugs that have shown up in the stable release in
	     the last few weeks.  Fortunately, nothing <em>too</em>
	     serious has shown up.  This release only fixes bugs -- no
	     new features, no new applets.  So without further ado,
	     here it is.  Come and get it.
	     <p>
	     The 
	     <a href="http://busybox.net/downloads/Changelog">changelog</a> has all
	     the details.  As usual BusyBox 0.60.1 can be downloaded from 
	     <a href="http://busybox.net/downloads">http://busybox.net/downloads</a>.
	     <p>Have Fun!
	     <p>


    <li> <b>2 August 2001 -- BusyBox 0.60.0 released</b>
    <br>
	     I am very pleased to announce the immediate availability of
	     BusyBox 0.60.0.  I have personally tested this release with libc5, glibc,
	     and <a href="http://uclibc.org/">uClibc</a> on
	     x86, ARM, and powerpc using linux 2.2 and 2.4, and I know a number
	     of people using it on everything from ia64 to m68k with great success.
	     Everything seems to be working very nicely now, so getting a nice
	     stable bug-free(tm) release out seems to be in order.   This releases fixes
	     a memory leak in syslogd, a number of bugs in the ash and msh shells, and
	     cleans up a number of things.
	     
	     <p>

	     Those wanting an easy way to test the 0.60.0 release with uClibc can 
	     use <a href="http://user-mode-linux.sourceforge.net/">User-Mode Linux</a>
	     to give it a try by downloading and compiling 
	     <a href="ftp://busybox.net/buildroot.tar.gz">buildroot.tar.gz</a>.
	     You don't have to be root or reboot your machine to run test this way.
	     Preconfigured User-Mode Linux kernel source is also on busybox.net.
	     <p>
	     Another cool thing is the nifty <a href="http://busybox.net/downloads/tutorial/index.html">
	     BusyBox Tutorial</a> contributed by K Computing.  This requires 
	     a ShockWave plugin (or standalone viewer), so you may want to grab the 
	     the GPLed shockwave viewer from <a href="http://www.swift-tools.com/Flash/flash-0.4.10.tgz">here</a>
	     to view the tutorial.
	     <p>
	     
	     Finally, In case you didn't notice anything odd about the
	     version number of this release, let me point out that this release
	     is <em>not</em> 0.53, because I bumped the version number up a
	     bit.  This reflects the fact that this release is intended to form
	     a new stable BusyBox release series.  If you need to rely on a
	     stable version of BusyBox, you should plan on using the stable
	     0.60.x series.  If bugs show up then I will release 0.60.1, then
	     0.60.2, etc...  This is also intended to deal with the fact that
	     the BusyBox build system will be getting a major overhaul for the
	     next release and I don't want that to break products that people
	     are shipping.  To avoid that, the new build system will be
	     released as part of a new BusyBox development series that will
	     have some not-yet-decided-on odd version number.  Once things
	     stabilize and the new build system is working for everyone, then
	     I will release that as a new stable release series. 

	     <p>
	     The 
	     <a href="http://busybox.net/downloads/Changelog">changelog</a> has all
	     the details.  As usual BusyBox 0.60.0 can be downloaded from 
	     <a href="http://busybox.net/downloads">http://busybox.net/downloads</a>.
	     <p>Have Fun!
	     <p>


    <li> <b>7 July 2001 -- BusyBox 0.52 released</b>
    <br>

	     I am very pleased to announce the immediate availability of
	     BusyBox 0.52 (the "new-and-improved rock-solid release").  This
	     release is the result of <em>many</em> hours of work and has tons
	     of bugfixes, optimizations, and cleanups.  This release adds
	     several new applets, including several new shells (such as hush, msh,
	     and ash).

	     <p>
	     The 
	     <a href="http://busybox.net/downloads/Changelog">changelog</a> covers 
	     some of the more obvious details, but there are many many things that
	     are not mentioned, but have been improved in subtle ways.  As usual,
	     BusyBox 0.52 can be downloaded from 
	     <a href="http://busybox.net/downloads">http://busybox.net/downloads</a>.
	     <p>Have Fun!
	     <p>


	<li> <b>10 April 2001 - Graph of Busybox Growth </b>
	<br> 
	The illustrious Larry Doolittle has made a PostScript chart of the growth
	of the Busybox tarball size over time. It is available for downloading /
	viewing <a href= "busybox-growth.ps"> right here</a>.

	<p> (Note that while the number of applets in Busybox has increased, you
	can still configure Busybox to be as small as you want by selectively
	turning off whichever applets you don't need.)
	<p>



    <li> <b>Old News</b>
    <br>
	     For the old news, visit <a href="http://busybox.net/oldnews.html">the old news page</a>.
</ul>


<!-- Begin Download section -->

<TR><TD BGCOLOR="#ccccc0" ALIGN=center>
    <A NAME="download"><BIG><B>
    Download
    </B></BIG></A>
</TD></TR>
<TR><TD BGCOLOR="#eeeee0">
<ul>

	<li> Source for the latest release can always be downloaded from 
	<a href="http://busybox.net/downloads">http://busybox.net/downloads</a>.

	<li> A new snapshot of the source is made daily and is available as a GNU
	gzipped tarball <a href="busybox.tar.gz"> right here</a>.

	<li> BusyBox now has its own publically browsable
	<a href="http://busybox.net/cgi-bin/cvsweb/busybox/">CVS tree</a>,  
	anonymous
	<a href="http://busybox.net/cvs_anon.html">CVS access</a>, and
	for those that are actively contributing there is even 
	<a href="http://busybox.net/cvs_write.html">CVS write access</a>.

</ul>


<!-- Begin Docs section -->

<TR><TD BGCOLOR="#ccccc0" ALIGN=center>
    <A NAME="docs"><BIG><B>
    Documentation
    </B></BIG></A>
</TD></TR>
<TR><TD BGCOLOR="#eeeee0">
Current documentation for BusyBox includes: 
<ul>
    <li> <a href="http://busybox.net/downloads/BusyBox.html">BusyBox.html</a>.
		This is a list of the all the available commands in BusyBox with 
		complete usage information and examples of how to use each app.  I 
		have spent a <em>lot</em> of time updating these docs and trying to 
		make them fairly comprehensive.  If you find any errors (factual, 
		grammatical, whatever) please let me know.
    <li> <a href="http://busybox.net/downloads/README">README</a>.
		This is the README file included in the busybox source release.
    <li> <a href="http://bugs.busybox.net/db/pa/lbusybox.html">BusyBox Bugs</a>.
		Need to report a bug?  Need to check if a bug has been filed?
    <li> If you need more help, the BusyBox
    <a href="http://busybox.net/lists/busybox/">mailing list</a> is
    a good place to start.
</ul>


<!-- Begin Links section -->

<TR><TD BGCOLOR="#ccccc0" ALIGN=center>
    <A NAME="links">
    <BIG><B>
    Important Links
    </B></BIG>
    </A>
</TD></TR>
<TR><TD BGCOLOR="#eeeee0">

<ul> 

    <li>  <A HREF="http://perens.com/FreeSoftware/">
    Free Software from Bruce Perens</A><br>
    The original idea for BusyBox, and all versions up to 0.26 were written 
    by <A HREF="mailto:bruce@perens.com">Bruce Perens</a>.  This is his BusyBox website.
    <p>

    <li>  <A HREF="http://freshmeat.net/projects/busybox/">
    Freshmeat AppIndex record for BusyBox</A>
    <p>
    <li><a href="http://tinylogin.busybox.net/">TinyLogin</a>
        is a nice embedded tool for handling authentication, changing passwords,
	and similar tasks which nicely complements BusyBox.
    <p>

    <li><a href="http://udhcp.busybox.net/">udhcp</a>
    is a tiny dhcp client and/or server which is ideal for embedded systems.
    <p>

    <li><a href="http://uclibc.org/">uClibc</a>
	is a C library for embedded systems.  You can actually statically link
	a "Hello World" application under x86 that only takes 4k (as opposed to
	200k under GNU libc).  It can do dynamic linking too and works nicely with
	BusyBox to create very small embedded systems.
    <p>

    <li> <a href="http://busybox.net/software.html">Other cool embedded software</a>.
    <p>

</ul>


<!-- Begin Projects section -->

<TR><TD BGCOLOR="#ccccc0" ALIGN=center>
    <A NAME="projects"><BIG><B>
    Products/Projects Using BusyBox
    </B></BIG></A>
</TD></TR>
<TR><TD BGCOLOR="#eeeee0">

<p> I know of the following products and/or projects that use BusyBox --
listed in the order I happen to add them to the web page:

<ul>
    <li> <a href="http://cvs.debian.org/boot-floppies/">Debian installer (boot floppies) project</a>
    <li> <a href="http://redhat.com/">Red Hat 7.2 installer</a>
    <li> <a href="http://distro.ibiblio.org/pub/Linux/distributions/slackware/source/rootdsks/">Slackware Installer</a>
    <li> <a href="http://www.linuxrouter.org/">Linux Router Project </a>
    <li> <a href="http://linux-embedded.org/">LEM</a>
    <li> <a href="http://www.toms.net/rb/">tomsrtbt</a>
    <li> <a href="http://www.stormix.com/">Stormix Installer</a>
    <li> <a href="http://www.emacinc.com/linux2_sbc.htm">EMAC Linux 2.0 SBC</a>
    <li> <a href="http://www.trinux.org/">Trinux</a>
    <li> <a href="http://oddas.sourceforge.net/">ODDAS project</a>
    <li> <a href="http://www.kerbango.com/">The Kerbango Internet Radio</a>
    <li> <a href="http://www.linuxmagic.com/vpn/">LinuxMagic VPN Firewall</a>
    <li> <a href="http://byld.sourceforge.net/">Build Your Linux Disk</a>
    <li> <a href="http://homepages.ihug.co.nz/~ichi/baslinux.html">BasicLinux</a>
    <li> <a href="http://ibiblio.org/pub/Linux/system/recovery">Zdisk</a>
    <li> <a href="http://www.adtran.com">AdTran - VPN/firewall VPN Linux Distribution</a> 
    <li> <a href="http://mkcdrec.ota.be/">mkCDrec - make CD-ROM recovery</a>
    <li> <a href="http://recycle.lbl.gov/~ldoolitt/bse/">Linux on nanoEngine</a>
    <li> <a href="http://www.zelow.no/floppyfw/"> Floppyfw</a>

    <li> <a href="http://midori.transmeta.com/"> Midori Linux</a> - <a href=
	"http://www.wired.com/news/technology/0,1282,42399,00.html"> Article on
	Midori Linux</a> on <a href= "http://www.wired.com"> Wired</a>. Quote from
	Erik at the top of <a href=
	"http://www.wired.com/news/technology/0,1282,42399-2,00.html"> this
	page</a>

    <li> <a href="http://www.ltsp.org/">Linux Terminal Server Project</a>
    <li> <a href="http://www.devil-linux.org/">Devil-Linux</a>
    <li> <a href="http://dutnux.sourceforge.net/">DutNux</a>
    <li> <a href="http://www.cachier.com/">Cachier</a>
    <li> <a href="http://www.microwerks.net/~hugo/mindi/">Mindi</a>

</ul>

<p> Do you use BusyBox?  I'd love to know about it and I'd be happy to link to
you.



<!-- End of Table -->

</TD></TR>
</TABLE>



<!-- Footer -->
<HR>
<TABLE WIDTH="100%">
    <TR>
	<TD>
	    <font size="-1" face="arial, helvetica, sans-serif">
	    Mail all comments, insults, suggestions and bribes to 
	    <a href="mailto:andersen@codepoet.org">Erik Andersen</a><BR>
	    The Busybox logo is copyright 1999,2000,2001, Erik Andersen.
	    </font>
	</TD>

	<TD>
	    <a href="http://www.vim.org"><img border=0 width=90 height=36
	    src="images/written.in.vi.png" 
	    alt="This site created with the vi editor"></a>
	</TD>

	<TD>
	    <a href="http://www.gimp.org/"><img border=0 width=90 height=36
	    src="images/gfx_by_gimp.png" alt="Graphics by GIMP"></a>
	</TD>

	<TD>
	    <a href="http://www.linuxtoday.com"><img width=90 height=36
	    src="images/ltbutton2.png" alt="Linux Today"></a>
	</TD>

	<TD>
	    <p><a href="http://slashdot.org"><img width=90 height=36
	    src="images/sdsmall.png" alt="Slashdot"></a>
	</TD>

	<TD>
	    <a href="http://freshmeat.net"><img width=90 height=36
	    src="images/fm.mini.png" alt="Freshmeat"></a>
	</TD>

    </TR>
</TABLE>


</CENTER>
</BODY>
</HTML>

