<!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 has a <a href="/lists/busybox/">mailing list</a>.<br>
            To subscribe, go and visit <a href="/mailman/listinfo/busybox">this page</a>. 
	    <br> 
	    Before asking questions on the mailing list
	    you should probably first search the mailing list archives...
	    <form method="GET" action="http://www.google.com/custom">
	    <input type="hidden" name="domains" value="busybox.net">
	    <input type="hidden" name="sitesearch" value="busybox.net">
	    <a href="http://www.google.com"><img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" height="32" width="75" align="middle"></a>&nbsp;<input type="text" name="q" size="31" maxlength="255" value="">&nbsp;<input type="submit" name="sa" value="search the mailing list archives">...
	    </form>



            <!-- 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>30 July 2003 -- BusyBox 1.0.0-pre2 released</b><p> 

		Here goes another pre release for the new BusyBox stable
		series.  The last prerelease (pre1) was given quite a lot of
		testing (thanks everyone!) which has helped turn up a number of
		bugs, and these problems have now been fixed.

		<p>

		Highlights of -pre2 include updating the 'ash' shell to sync up
		with the Debian 'dash' shell, a new 'hdparm' applet was added,
		init again supports pivot_root,  The 'reboot' 'halt' and
		'poweroff' applets can now be used without using busybox init.
		an ifconfig buffer overflow was fixed, losetup now allows
		read-write loop devices, uClinux daemon support was added, the
		'watchdog', 'fdisk', and 'kill' applets were rewritten, there were
		tons of doc updates, and there were many other bugs fixed.
		<p>
		
		If you have submitted a patch and it is not included in this
		release and Erik has not emailed you explaining why your patch
		was rejected, it is safe to say that he has lost your patch.
		That happens sometimes.   Please re-submit your patch to the
		BusyBox mailing list.
		<p>

		The point of the "-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 final 1.0.0 release.  The main feature that
		is still still on the TODO list before the final BusyBox 1.0.0
		release is adding module support for the new 2.6.x kernels.  If
		necessary, a -pre3 BusyBox release will happen on August 6th.
		Hopefully (i.e.  unless some horrible catastrophic problem
		turns up) the final BusyBox 1.0.0 release will be ready by
		then...
		<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://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">Prometheus SimplyGNUstep</a>
              </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://www.stresslinux.org/">stresslinux</a>minimal linux distribution running from a bootable cdrom or via PXE.
              </li><li><a href="http://thinstation.sourceforge.net/">thinstation</a>convert standard PCs into full-featured diskless thinclients.
              </li><li><a href="http://www.uhulinux.hu/">UHU-Linux Hungary</a>

              </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>
              </li><li><a href="http://www.dell.com/us/en/biz/topics/sbtopic_005_truemobile.htm">Dell TrueMobile 1184</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>

