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

<html>
  <head>
    <meta name="generator" content=
    "HTML Tidy for Linux/x86 (vers 1st February 2002), see www.w3.org">

    <title>BusyBox</title>
<style type="text/css">
 body {
  background-color: #DEE2DE;
  color: #000000;
 }
 :link { color: #660000 }
 :visited { color: #660000 }
 :active { color: #660000 }
 div.c3 {text-align: center}
 td.c2 {font-family: arial, helvetica, sans-serif; font-size: 80%}
 td.c1 {font-family: lucida, helvetica; font-size: 248%}
</style>
  </head>

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

    <div class="c3">
      <table border="0" cellspacing="1" cellpadding="2">
        <tr>
          <td class="c1">BUSYBOX</td>
        </tr>
      </table>
      <a href="/"><img src="images/busybox1.png" alt="BusyBox"
      border="0" width="164" height="116"></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>

            <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>.</p>

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

            <!-- Begin Latest News section -->
          </td>
        </tr>

        <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>6 March 2002 -- busybox.net now has mirrors!</b> 

                <p>Busybox.net is now much more available, thanks to
		the fine folks at <a href= "http://i-netinnovations.com/">http://i-netinnovations.com/</a>
		who are providing hosting for busybox.net and
		uclibc.org.  In addition, we now have two mirrors:
		<a href= "http://busybox.linuxmagic.com/">http://busybox.linuxmagic.com/</a>
		in Canada and 
		<a href= "http://busybox.csservers.de/">http://busybox.csservers.de/</a>
		in Germany.  I hope this makes things much more
		accessible for everyone!


              <li><b>Old News</b><br>
               For the old news, visit <a href="oldnews.html">the
              old news page</a>.</li>
            </ul>
          </td>
        </tr>


	<!-- Begin Sponsors section -->
        <tr>
          <td bgcolor="#CCCCC0" align="center"><a name=
          "sponsors"><big><b>Sponsors</b></big></a></td>
        </tr>

        <tr>
          <td bgcolor="#EEEEE0">
	    Please visit our sponsors and thank them for their
	    support! They have provided money for equipment and
	    bandwidth. Next time you need help with a project,
	    consider these fine companies! 


	    <ul>
	      <li><a href=
	      "http://opensource.se/">opensource.se</a><br>
	      Embedded open source consulting in Europe.</li>

	      <li><a href= "http://i-netinnovations.com/">http://i-netinnovations.com/</a><br>
	      Web hosting (they host busybox.net and uclibc.org).</li>

	      <li><a href=
	      "http://www.codepoet-consulting.com">Codepoet
	      Consulting</a><br>
	      Custom Linux, embedded Linux, BusyBox, and uClibc
	      development.</li>
	    </ul>
	    Several individuals have also contributed. If you have
	    already contributed and would like your name added
	    here, just let me know. If you would like to be a
	    BusyBox sponsor, email <a href=
	    "mailto:andersen@codepoet.org">Erik</a>. 
          </td>
        </tr>

	<!-- Begin Download section -->
        <p>
        <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=
              "downloads">http://www.busybox.net/downloads</a>.</li>

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

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

	<!-- 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=
              "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>

              <li><a href="downloads/README">README</a>. This is
              the README file included in the busybox source
              release.</li>

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

              <li>If you need more help, the BusyBox <a href=
              "lists/busybox/">mailing list</a> is a good place to
              start.</li>
            </ul>
          </td>
        </tr>

	<!-- 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.</li>

              <li><a href=
              "http://freshmeat.net/projects/busybox/">Freshmeat
              AppIndex record for BusyBox</a></li>

              <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.</li>

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

              <li><a href="http://www.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.</li>
            </ul>
          </td>
        </tr>

	<!-- 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:</p>

            <ul>
              <li><a href=
              "http://cvs.debian.org/boot-floppies/">Debian
              installer (boot floppies) project</a></li>

              <li><a href="http://redhat.com/">Red Hat 7.2
              installer</a></li>

              <li><a href=
              "http://distro.ibiblio.org/pub/Linux/distributions/slackware/source/rootdsks/">
              Slackware Installer</a></li>

              <li><a href="http://www.linuxrouter.org/">Linux
              Router Project</a></li>

              <li><a href="http://linux-embedded.org/">LEM</a></li>

              <li><a href=
              "http://www.toms.net/rb/">tomsrtbt</a></li>

              <li><a href="http://www.stormix.com/">Stormix
              Installer</a></li>

              <li><a href=
              "http://www.emacinc.com/linux2_sbc.htm">EMAC Linux
              2.0 SBC</a></li>

              <li><a href="http://www.trinux.org/">Trinux</a></li>

              <li><a href="http://oddas.sourceforge.net/">ODDAS
              project</a></li>

              <li><a href="http://www.kerbango.com/">The Kerbango
              Internet Radio</a></li>

              <li><a href=
              "http://www.linuxmagic.com/vpn/">LinuxMagic VPN
              Firewall</a></li>

              <li><a href="http://byld.sourceforge.net/">Build Your
              Linux Disk</a></li>

              <li><a href=
              "http://homepages.ihug.co.nz/~ichi/baslinux.html">BasicLinux</a></li>

              <li><a href=
              "http://ibiblio.org/pub/Linux/system/recovery">Zdisk</a></li>

              <li><a href="http://www.adtran.com">AdTran -
              VPN/firewall VPN Linux Distribution</a></li>

              <li><a href="http://mkcdrec.ota.be/">mkCDrec - make
              CD-ROM recovery</a></li>

              <li><a href=
              "http://recycle.lbl.gov/~ldoolitt/bse/">Linux on
              nanoEngine</a></li>

              <li><a href=
              "http://www.zelow.no/floppyfw/">Floppyfw</a></li>

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

              <li><a href="http://www.ltsp.org/">Linux Terminal
              Server Project</a></li>

              <li><a href=
              "http://www.devil-linux.org/">Devil-Linux</a></li>

              <li><a href=
              "http://dutnux.sourceforge.net/">DutNux</a></li>

              <li><a href=
              "http://www.cachier.com/">Cachier</a></li>

              <li><a href=
              "http://www.microwerks.net/~hugo/mindi/">Mindi</a></li>

              <li><a href=
              "http://www.tzi.de/~pharao90/ttylinux">ttylinux</a></li>

              <li><a href="http://www.partimage.org/">Partition
              Image</a></li>

              <li><a href="http://tuxscreen.net">Tuxscreen Linux
              Phone</a></li>

              <li><a href="http://tinfoilhat.cultists.net/">Tinfoil
              Hat Linux</a></li>

              <li><a href="http://zaurus.sourceforge.net/">Sharp Zaurus
	      PDA</a></li>



            </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 -->
            </p>
          </td>
        </tr>
      </table>

      <!-- Footer -->
      <hr>
      <table width="100%">
        <tr>
          <td class="c2">Mail all comments, insults, suggestions
          and bribes to <a href="mailto:andersen@codepoet.org">Erik
          Andersen</a><br>
           The Busybox logo is copyright 1999-2002, Erik
          Andersen.</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></p>
          </td>

          <td><a href="http://freshmeat.net"><img width="90"
          height="36" src="images/fm.mini.png" alt="Freshmeat">
          </a></td>
        </tr>
      </table>
    </div>
  </body>
</html>

