<!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 GNU
	    fileutils, shellutils, etc. 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.
	    BusyBox provides a fairly complete POSIX environment for any
	    small or embedded system.

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

              <p>
              <li><b>15 July 2003 -- BusyBox 1.0.0-pre1 released</b><p> 

		The busybox development series has been under construction for
		nearly two years now.  Which is just entirely too long...  So
		it is with great pleasure that I announce the imminent release
		of a new stable series.  Due to the huge number of changes
		since the last stable release (and the usual mindless version
		number inflation) I am branding this new stable series verison
		1.0.x...
		<p>

		The point of "-preX" versions is to get a larger group of
		people and vendors testing, so any problems that turn up can be
		fixed prior to the magic 1.0.0 release (which should happen
		later this month)...  I plan to release BusyBox 1.0.0-pre2 next
		Monday (July 21st), and, if necessary, -pre3 on July 28th.
		Hopefully (i.e. unless some horrible catastrophic problem turns
		up) the final BusyBox 1.0.0 release should be ready by the end
		of July.
		<p>
		
		If you have submitted patches, and they are not in this release
		and I have not emailed you explaining why your patch was
		rejected, it is safe to say that I have lost your patch.  That
		happens sometimes.  Please do <B>NOT</b> send all your patches,
		support questions, etc, directly to Erik.  I get hundreds of
		emails every day (which is why I end up losing patches
		sometimes in the flood)...  The busybox mailing list is the
		right place to send your patches, support questions, etc.
		<p>

		I would like to especially thank Vladimir Oleynik (vodz), Glenn
		McGrath (bug1), Robert Griebl (sandman), and Manuel Novoa III
		(mjn3) for their significant efforts and contributions that
		have made this release possible.
		<p>

		As usual you can <a href="downloads">download busybox here</a>.
		You don't really need to bother with the 
		<a href="downloads/Changelog">changelog</a>, as the changes
		vs the stable version are way too extensive to easily enumerate.
		But you can take a look if you really want too.

		<p>Have Fun!
		<p>



              <p>
              <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://www.penguru.net">Penguru Consulting</a><br>
	      Custom development for embedded Linux systems and multimedia platforms
	      </li>

	      <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 (currently hosting 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">
              Source for the latest release can always be
              downloaded from <a href="downloads">http://www.busybox.net/downloads</a>.
	      <p>

	  BusyBox now has <b>two</b> CVS trees.  The "busybox-stable" tree
	  contains the older 0.60.x stable series.  The "busybox" tree contains
	  the latest 1.0.0-preX development version of busybox.<br>

            <ul>
		  <li><a href= "downloads/snapshots/">Daily Snapshots of the the latest 
		    stable, and the latest development CVS source trees can be found right here</a>. 
		  <br>
		  </li><li><a href="/cgi-bin/cvsweb/busybox/">Click here to browse the CVS 
		      tree for the 1.0.0-preX development version of BusyBox</a>
		  </li><li><a href="/cgi-bin/cvsweb/busybox.stable/">Click here to browse
		    the CVS tree for the stable 0.60.x version of BusyBox</a>.
		    </li><li>Anonymous <a href="cvs_anon.html">CVS
		    access</a> is available.
		    </li><li>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>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 Linux 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="/cgi-bin/cvsweb/buildroot/">buildroot</a> a configurable
	      means for building your own busybox/uClibc based system systems.

              </li><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.gentoo.org/">Gentoo Linux install/boot CDs</a>
              </li><li><a href="http://www.mandrake.com/">The Mandrake 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://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.microwerks.net/~hugo/mindi/">Mindi</a>

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

              </li><li><a href="http://www.coyotelinux.com/">Coyote Linux</a>

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

              </li><li><a href="http://www.fli4l.de/">fli4l the on(e)-disk-router</a>

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

              </li><li><a href="http://familiar.handhelds.org/">Familiar Linux</a> - a linux distribution for handheld computers
              </li><li><a href="http://rescuecd.sourceforge.net/">Timo's Rescue CD Set</a>
              </li><li><a href="http://sf.net/projects/netstation/">Netstation</a>
              </li><li><a href="http://www.fiwix.org/">GNU/Fiwix Operating System</a>
              </li><li><a href="http://www.softcraft.com/">Generations Linux</a>
              </li><li><a href="http://systemimager.org/relatedprojects/">SystemImager / System Installation Suite</a>
              </li><li><a href="http://www.bablokb.de/gendist/">GENDIST distribution generator</a>
              </li><li><a href="http://diet-pc.sourceforge.net/">DIET-PC embedded Linux thin client distribution</a>
              </li><li><a href="http://byzgl.sourceforge.net/">BYZantine Gnu/Linux</a>
              </li><li><a href="http://dban.sourceforge.net/">Darik's Boot and Nuke</a>
              </li><li><a href="http://www.timesys.com/">TimeSys real-time Linux</a>
              </li><li><a href="http://movix.sf.net/">MoviX</a> -- boots from CD and automatically plays every video file on the CD
              </li><li><a href="http://katamaran.sourceforge.net">katamaran</a>Linux, X11, xfce windowmanager, based on BusyBox
              </li><li><a href="http://www.sourceforge.net/projects/simplygnustep"></a>Prometheus SimplyGNUstep
              </li><li><a href="http://www.renyi.hu/~ekho/lowlife/">lowlife</a>A documentation project on how to make your own uClibc-based systems and floppy.
              </li><li><a href="http://metadistros.hispalinux.es/">Metadistros</a>a project to allow you easily make Live-CD distributions.
              </li><li><a href="http://salvare.sourceforge.net/">Salvare</a>More Linux than tomsrtbt but less than Knoppix, aims to provide a useful workstation as well as a rescue disk.
              </li><li><a href="http://thinstation.sourceforge.net/">thinstation</a>convert standard PCs into full-featured diskless thinclients.

              </li><li><a href="http://tuxscreen.net">Tuxscreen Linux Phone</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://www.isilver-inc.com/">I-Silver Linux appliance servers</a>
              </li><li><a href="http://zaurus.sourceforge.net/">Sharp Zaurus PDA</a>
              </li><li><a href="http://www.cyclades.com/">Cyclades-TS and other Cyclades products</a>
              </li><li><a href="http://www.buffalo-technology.com/products/wireless/wbr-g54.htm">Buffalo WBR-G54 wireless router</a>
              </li><li><a href="http://catalog.belkin.com/IWCatProductPage.process?Merchant_Id=&Section_Id=201522&pcount=&Product_Id=136493">Belkin 54g Wireless DSL/Cable Gateway Router</a>
              </li><li><a href="http://www.linksys.com/products/product.asp?prid=508">Linksys WRT54G - Wireless-G Broadband Router</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 -->
            </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>

