Erik Andersen | 330fd2b | 2000-05-19 05:35:19 +0000 | [diff] [blame^] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> |
| 2 | |
| 3 | <HTML> |
| 4 | <HEAD> |
| 5 | <TITLE>BusyBox</TITLE> |
| 6 | </HEAD> |
| 7 | |
| 8 | <body text="#000000" alink="#660000" link="#660000" bgcolor="#ffffff" vlink="#660000" background="images/background.png" > |
| 9 | |
| 10 | <basefont face="lucida, helvetica, arial" size="3"> |
| 11 | |
| 12 | |
| 13 | <CENTER> |
| 14 | <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2> |
| 15 | <TR> |
| 16 | <td bgcolor="#000000"> |
| 17 | <FONT FACE="lucida, helvetica" COLOR="#ccccc0"> |
| 18 | <B>B u s y B o x</B> |
| 19 | </FONT> |
| 20 | </TD> |
| 21 | </TR> |
| 22 | </TABLE> |
| 23 | <a href="/"><IMG SRC="images/busybox2.jpg" alt="BusyBox" border="0" width="360" height="230"</a><BR> |
| 24 | |
| 25 | |
| 26 | <!-- Begin Introduction section --> |
| 27 | |
| 28 | |
| 29 | <TABLE WIDTH=95% CELLSPACING=1 CELLPADDING=4 BORDER=1> |
| 30 | <TR><TD BGCOLOR="#ccccc0" ALIGN=center> |
| 31 | <A NAME="intro"> <BIG><B> |
| 32 | The Swiss Army Knife of Embedded Linux |
| 33 | </font> |
| 34 | </A></B></BIG> |
| 35 | </TD></TR> |
| 36 | <TR><TD BGCOLOR="#eeeee0"> |
| 37 | |
| 38 | BusyBox combines tiny versions of many common UNIX utilities into a single |
| 39 | small executable. It provides minimalist replacements for most of the utilities |
| 40 | you usually find in fileutils, shellutils, findutils, textutils, grep, gzip, |
| 41 | tar, etc. BusyBox provides a fairly complete POSIX environment for any small |
| 42 | or emdedded system. The utilities in BusyBox generally have fewer options then |
| 43 | their full featured GNU cousins; however, the options that are included provide |
| 44 | the expected functionality and behave very much like their GNU counterparts. |
| 45 | <p> |
| 46 | BusyBox has been written with size-optimization and limited resources in mind. |
| 47 | It is also extremely modular so you can easily include or exclude commands (or |
| 48 | features) at compile time. This makes it easy to customize your embedded |
| 49 | systems. To create a working system, just add a kernel, a shell (such as ash), |
| 50 | and an editor (such as elvis-tiny or ae). |
| 51 | <p> |
| 52 | |
| 53 | BusyBox is now maintained by |
| 54 | <a href="http://www.xmission.com/~andersen/erik/erik.html"> |
| 55 | Erik Andersen</a>, and its ongoing development is being sponsored by |
| 56 | <a href="http://www.lineo.com/">Lineo</a>. |
| 57 | <p> |
| 58 | BusyBox is licensed under the |
| 59 | <a href="http://www.gnu.org/copyleft/gpl.html">GNU GENERAL PUBLIC LICENSE</a> |
| 60 | |
| 61 | |
| 62 | <!-- Begin Download section --> |
| 63 | |
| 64 | <TR><TD BGCOLOR="#ccccc0" ALIGN=center> |
| 65 | <A NAME="download"><BIG><B> |
| 66 | Download |
| 67 | </A></B></BIG> |
| 68 | </TD></TR> |
| 69 | <TR><TD BGCOLOR="#eeeee0"> |
| 70 | <ul> |
| 71 | <li> Source for the latest release can always be downloaded from |
| 72 | <a href="ftp://ftp.lineo.com/pub/busybox">ftp://ftp.lineo.com/pub/busybox</a>. |
| 73 | </ul> |
| 74 | |
| 75 | |
| 76 | <!-- Begin Latest News section --> |
| 77 | |
| 78 | <TR><TD BGCOLOR="#ccccc0" ALIGN=center> |
| 79 | <A NAME="news"> |
| 80 | <BIG><B> |
| 81 | Latest News</A> |
| 82 | </B></BIG> |
| 83 | </A> |
| 84 | </TD></TR> |
| 85 | <TR><TD BGCOLOR="#eeeee0"> |
| 86 | |
| 87 | <ul> |
| 88 | |
| 89 | <p> <li> <b>19 April 2000 -- syslogd bugfix</b> |
| 90 | <br> |
| 91 | Turns out that there was still a bug in busybox syslogd. |
| 92 | For example, with the following test app: |
| 93 | <pre> |
| 94 | #include <syslog.h> |
| 95 | |
| 96 | int do_log(char* msg, int delay) |
| 97 | { |
| 98 | openlog("testlog", LOG_PID, LOG_DAEMON); |
| 99 | while(1) { |
| 100 | syslog(LOG_ERR, "%s: testing one, two, three\n", msg); |
| 101 | sleep(delay); |
| 102 | } |
| 103 | closelog(); |
| 104 | return(0); |
| 105 | }; |
| 106 | |
| 107 | int main(void) |
| 108 | { |
| 109 | if (fork()==0) |
| 110 | do_log("A", 2); |
| 111 | do_log("B", 3); |
| 112 | } |
| 113 | </pre> |
| 114 | it should be logging stuff from both "A" and "B". As released in 0.43 only stuff |
| 115 | from "A" would have been logged. This means that if init tries to log something |
| 116 | while say ppp has the syslog open, init would block (which is bad, bad, bad). |
| 117 | <p> |
| 118 | Karl M. Hegbloom has created a |
| 119 | <a href="ftp://ftp.lineo.com/pub/busybox/busybox-0.43-syslog_patch">fix for the problem</a>. |
| 120 | Thanks Karl! |
| 121 | |
| 122 | |
| 123 | <p> <li> <b>18 April 2000 -- BusyBox 0.43 released (finally!)</b> |
| 124 | <br> |
| 125 | I have finally gotten everything into a state where I feel pretty |
| 126 | good about things. This is definitely the most stable, solid release |
| 127 | so far. A lot of bugs have been fixed, and the following new apps |
| 128 | have been added: sh, basename, dirname, killall, uptime, |
| 129 | freeramdisk, tr, echo, test, and usleep. Tar has been completely |
| 130 | rewritten from scratch. Bss size has also been greatly reduced. |
| 131 | More details are available in the |
| 132 | <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">changelog</a>. |
| 133 | Oh, and as a special bonus, I wrote some fairly comprehensive |
| 134 | <em>documentation</em>, complete with examples and full usage information. |
| 135 | |
| 136 | <p> |
| 137 | Many thanks go out to the fine people that have helped by submitting patches |
| 138 | and bug reports; particularly instrumental in helping for this release were |
| 139 | Karl Hegbloom, Pavel Roskin, Friedrich Vedder, Emanuele Caratti, |
| 140 | Bob Tinsley, Nicolas Pitre, Avery Pennarun, Arne Bernin, John Beppu, and Jim Gleason. |
| 141 | There were others so if I somehow forgot to mention you, I'm very sorry. |
| 142 | <p> |
| 143 | |
| 144 | You can grab BusyBox 0.43 tarballs <a href="ftp://ftp.lineo.com/pub/busybox/">here</a>. |
| 145 | |
| 146 | <p> <li> <b>9 April 2000 -- BusyBox 0.43 pre release</b> |
| 147 | <br> |
| 148 | Unfortunately, I have not yet finished all the things I want to |
| 149 | do for BusyBox 0.43, so I am posting this pre-release for people |
| 150 | to poke at. This contains my complete rewrite of tar, which now weighs in at |
| 151 | 5k (7k with all options turned on) and works for reading and writing |
| 152 | tarballs (which it does correctly for everything I have been able to throw |
| 153 | at it). Tar also (optionally) supports the "--exclude" option (mainly because |
| 154 | the Linux Router Project folks asked for it). This also has a pre-release |
| 155 | of the micro shell I have been writing. This pre-release should be stable |
| 156 | enough for production use -- it just isn't a release since I have some structural |
| 157 | changes I still want to make. |
| 158 | <p> |
| 159 | The pre-release can be found <a href="ftp://ftp.lineo.com/pub/busybox/">here</a>. |
| 160 | Please let me know ASAP if you find <em>any</em> bugs. |
| 161 | |
| 162 | <p> <li> <b>28 March 2000 -- Andersen Baby Boy release</b> |
| 163 | <br> |
| 164 | I am pleased to announce that on Tuesday March 28th at 5:48pm, weighing in at 7 |
| 165 | lbs. 12 oz, Micah Erik Andersen was born at LDS Hospital here in Salt Lake City. |
| 166 | He was born in the emergency room less then 5 minutes after we arrived -- and |
| 167 | it was such a relief that we even made it to the hospital at all. Despite the |
| 168 | fact that I was driving at an amazingly unlawful speed and honking at everybody |
| 169 | and thinking decidely unkind thoughts about the people in our way, my wife |
| 170 | (inconsiderate of my feelings and complete lack of medical training) was lying |
| 171 | down in the back seat saying things like "I think I need to start pushing now" |
| 172 | (which she then proceeded to do despite my best encouraging statements to the |
| 173 | contrary). |
| 174 | <p> |
| 175 | Anyway, I'm glad to note that despite the much-faster-than-we-were-expecting |
| 176 | labor, both Shaunalei and our new baby boy are doing wonderfuly. |
| 177 | <p> |
| 178 | So now that I am done with my excuse for the slow release cycle... |
| 179 | Progress on the next release of BusyBox has been slow but steady. I expect |
| 180 | to have a release sometime during the first week of April. This release will |
| 181 | include a number of important changes, including the addition of a shell, a |
| 182 | re-write of tar (to accomodate the Linux Router Project), and syslogd can now |
| 183 | accept multiple concurrent connections, fixing lots of unexpected blocking |
| 184 | problems. |
| 185 | |
| 186 | |
| 187 | <p> <li> <b>11 February 2000 -- BusyBox 0.42 released</b> |
| 188 | <br> |
| 189 | |
| 190 | This is the most solid BusyBox release so far. Many, many |
| 191 | bugs have been fixed. See the |
| 192 | <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">changelog</a> for details. |
| 193 | |
| 194 | Of particular interest, init will now cleanly unmount |
| 195 | filesystems on reboot, cp and mv have been rewritten and |
| 196 | behave much better, and mount and umount no longer leak |
| 197 | loop devices. Many thanks go out to Randolph Chung, |
| 198 | Karl M. Hegbloom, Taketoshi Sano, and Pavel Roskin for |
| 199 | their hard work on this release of BusyBox. Please pound |
| 200 | on it and let me know if you find any bugs. |
| 201 | |
| 202 | <p> <li> <b>19 January 2000 -- BusyBox 0.41 released</b> |
| 203 | <br> |
| 204 | |
| 205 | This release includes bugfixes to cp, mv, logger, true, false, |
| 206 | mkdir, syslogd, and init. New apps include wc, hostid, |
| 207 | logname, tty, whoami, and yes. New features include loop device |
| 208 | support in mount and umount, and better TERM handling by init. |
| 209 | The changelog can be found <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">here</a>. |
| 210 | |
| 211 | <p> <li> <b>7 January 2000 -- BusyBox 0.40 released</b> |
| 212 | <br> |
| 213 | |
| 214 | This release includes bugfixes to init (now includes inittab support), |
| 215 | syslogd, head, logger, du, grep, cp, mv, sed, dmesg, ls, kill, gunzip, and mknod. |
| 216 | New apps include sort, uniq, lsmod, rmmod, fbset, and loadacm. |
| 217 | In particular, this release fixes an important bug in tar which |
| 218 | in some cases produced serious security problems. |
| 219 | As always, the changelog can be found <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">here</a>. |
| 220 | |
| 221 | <p> <li> <b>11 December 1999 -- BusyBox Website</b> |
| 222 | <br> |
| 223 | I have received permission from Bruce Perens (the original author of BusyBox) |
| 224 | to set up this site as the new primary website for BusyBox. This website |
| 225 | will always contain pointers to the latest and greatest, and will also |
| 226 | contain the latest documentation on how to use BusyBox, what it can do, |
| 227 | what arguments its apps support, etc. |
| 228 | |
| 229 | <p> <li> <b>10 December 1999 -- BusyBox 0.39 released</b> |
| 230 | <br> |
| 231 | This release includes fixes to init, reboot, halt, kill, and ls, and contains |
| 232 | the new apps ping, hostname, mkfifo, free, tail, du, tee, and head. A full |
| 233 | changelog can be found <a href="ftp://ftp.lineo.com/pub/busybox/Changelog">here</a>. |
| 234 | <p> <li> <b>5 December 1999 -- BusyBox 0.38 released</b> |
| 235 | <br> |
| 236 | This release includes fixes to tar, cat, ls, dd, rm, umount, find, df, |
| 237 | and make install, and includes new apps syslogd/klogd and logger. |
| 238 | </ul> |
| 239 | |
| 240 | |
| 241 | <!-- Begin Docs section --> |
| 242 | |
| 243 | <TR><TD BGCOLOR="#ccccc0" ALIGN=center> |
| 244 | <A NAME="docs"><BIG><B> |
| 245 | Documentation |
| 246 | </A></B></BIG> |
| 247 | </TD></TR> |
| 248 | <TR><TD BGCOLOR="#eeeee0"> |
| 249 | Current documentation for BusyBox includes: |
| 250 | <ul> |
| 251 | <li> <a href="BusyBox.html">BusyBox.html</a> |
| 252 | This is a list of the all the available commands in BusyBox with complete |
| 253 | usage information and examples of how to use each app. I spent |
| 254 | a <em>lot</em> of time updating these docs and trying to make them |
| 255 | fairly comprehensive for the BusyBox 0.43 release. If you find any |
| 256 | errors (factual, grammatical, whatever) please let me know. |
| 257 | |
| 258 | <li> More documentation will follow. |
| 259 | </ul> |
| 260 | |
| 261 | |
| 262 | <!-- Begin Links section --> |
| 263 | |
| 264 | <TR><TD BGCOLOR="#ccccc0" ALIGN=center> |
| 265 | <A NAME="related"> |
| 266 | <BIG><B> |
| 267 | Related Software</A> |
| 268 | </B></BIG> |
| 269 | </A> |
| 270 | </TD></TR> |
| 271 | <TR><TD BGCOLOR="#eeeee0"> |
| 272 | |
| 273 | <ul> |
| 274 | |
| 275 | <li><a href="http://www.debian.org/Packages/unstable/shells/ash.html">ash</a> |
| 276 | is a very small Bourne shell. If you need a shell for your embedded systems, this is it. |
| 277 | <p> |
| 278 | |
| 279 | <li><a href="http://www.debian.org/Packages/unstable/base/ae.html">ae</a> |
| 280 | is a tiny full-screen text editor with both modal (vi-like) and modeless |
| 281 | (emacs-like) modes, determined by an ae.rc config file. It makes a nice editor |
| 282 | if people that don't know "vi" will need to work on your embedded system. |
| 283 | <p> |
| 284 | |
| 285 | <li> <a href="http://www.debian.org/Packages/unstable/base/elvis-tiny.html">elvis-tiny</a> |
| 286 | is based on a 1991 Minix version of the elvis "vi" clone. It behaves as one would |
| 287 | expect a minamalist vi to behave, and is very small. |
| 288 | <p> |
| 289 | |
| 290 | <li> <a href="http://www.asty.org/nano/">nano</a> |
| 291 | A small GPLed pico clone that makes a nice editor for people that don't know "vi". |
| 292 | <p> |
| 293 | |
| 294 | <li><a href="http://www.debian.org/Packages/unstable/net/iproute.html">iproute</a> |
| 295 | Much more flexible replacement for ifconfig, route, etc. It is quite small, and for |
| 296 | most networking applications, it is all you need. It also provides support for extremely |
| 297 | advanced networking and provides Quality of Service(QoS) support, but most people will |
| 298 | just need to use the "ip" command and will not even need to install the rest. |
| 299 | <p> |
| 300 | |
| 301 | <li><a href="http://www.debian.org/Packages/unstable/net/pump.html">Pump</a> |
| 302 | This is the DHCP/BOOTP client written by RedHat. When compiled properly, it |
| 303 | gives you dhcp client support for about 35k. |
| 304 | <p> |
| 305 | |
| 306 | <li><a href="http://www.pcug.org.au/~dbell/">sash</a> |
| 307 | The Stand Alone SHell. This is a small shell (not Bourne shell compatable) |
| 308 | that is similar to busybox in that it provides a number of common utilities as built-ins. |
| 309 | <p> |
| 310 | |
| 311 | <li><a href="http://sourceware.cygnus.com/newlib/">NewLib</a> |
| 312 | This is a small C library intended for use on embedded systems. If you are finding |
| 313 | GNU libc is a bit too big for your applications, try NewLib and it may help. |
| 314 | <p> |
| 315 | |
| 316 | <li><a href="http://linuxassembly.org/asmutils.html">asmutils</a> |
| 317 | asmutils is similar to BusyBox in that it provides a number of common application |
| 318 | for embedded systems that are very tiny. In fact, they are a _lot_ smaller than the |
| 319 | equivalent apps in busybox -- but the price you pay for the size is reduced portability |
| 320 | (x86 only) and interfaces that are tied directly to a perticular kernel (no libc involved). |
| 321 | <p> |
| 322 | |
| 323 | <li><a href="http://tinylogin.lineo.com/">TinyLogin</a> |
| 324 | is a nice embedded tool for handling authentication, changing passwords, |
| 325 | and similar tasks, and which nicely complements BusyBox. |
| 326 | <p> |
| 327 | |
| 328 | </ul> |
| 329 | |
| 330 | <!-- Begin Projects section --> |
| 331 | |
| 332 | <TR><TD BGCOLOR="#ccccc0" ALIGN=center> |
| 333 | <A NAME="docs"><BIG><B> |
| 334 | Projects using BusyBox |
| 335 | </A></B></BIG> |
| 336 | </TD></TR> |
| 337 | <TR><TD BGCOLOR="#eeeee0"> |
| 338 | I know of the following projects that use BusyBox |
| 339 | <ul> |
| 340 | <li> <a href="http://www.lineo.com/products/embedix.html">Lineo Embedix Linux</a> |
| 341 | <li> <a href="http://cvs.debian.org/boot-floppies/">Debian boot floppies project</a> |
| 342 | <li> <a href="http://www.linuxrouter.org/">Linux Router Project </a> |
| 343 | <li> <a href="http://linux-embedded.org/">LEM</a> |
| 344 | <li> <a href="http://www.toms.net/rb/">tomsrtbt</a> |
| 345 | |
| 346 | </ul> |
| 347 | Do you use BusyBox? I'd love to know about it and I'd be happy to link to you. |
| 348 | |
| 349 | |
| 350 | |
| 351 | <!-- Begin Links section --> |
| 352 | |
| 353 | <TR><TD BGCOLOR="#ccccc0" ALIGN=center> |
| 354 | <A NAME="links"> |
| 355 | <BIG><B> |
| 356 | Important Links</A> |
| 357 | </B></BIG> |
| 358 | </A> |
| 359 | </TD></TR> |
| 360 | <TR><TD BGCOLOR="#eeeee0"> |
| 361 | |
| 362 | <ul> |
| 363 | |
| 364 | <li> <A HREF="http://perens.com/FreeSoftware/"> |
| 365 | Free Software from Bruce Perens</A><br> |
| 366 | The original idea for BusyBox, and all versions up to 0.26 were written |
| 367 | by <A HREF="mailto:bruce@perens.com">Bruce Perens</a>. This is his BusyBox website. |
| 368 | <p> |
| 369 | |
| 370 | <li> <A HREF="http://freshmeat.net/appindex/1999/04/11/923859921.html"> |
| 371 | Freshmeat AppIndex record for BusyBox</A> |
| 372 | <p> |
| 373 | |
| 374 | <li> <A HREF="http://www.lineo.com/">Lineo</A> is sponsoring BusyBox development. |
| 375 | <p> |
| 376 | |
| 377 | </ul> |
| 378 | |
| 379 | |
| 380 | |
| 381 | |
| 382 | <!-- End of Table --> |
| 383 | |
| 384 | </TD></TR> |
| 385 | </TABLE> |
| 386 | </P> |
| 387 | |
| 388 | |
| 389 | |
| 390 | <!-- Footer --> |
| 391 | <HR> |
| 392 | <TABLE WIDTH="100%"> |
| 393 | <TR> |
| 394 | <TD> |
| 395 | <font size="-1" face="arial, helvetica, sans-serif"> |
| 396 | Mail all comments, insults, suggestions and bribes to |
| 397 | <a href="mailto:andersen@lineo.com">Erik Andersen</a><BR> |
| 398 | The Busybox logo is copyright 1999,2000, Erik Andersen. |
| 399 | </font> |
| 400 | </TD> |
| 401 | |
| 402 | <TD> |
| 403 | <a href="http://www.vim.org"><img border=0 width=88 height=32 |
| 404 | src="images/anim.written.in.vi.gif" |
| 405 | alt="This site created with the vi editor"></a> |
| 406 | </TD> |
| 407 | |
| 408 | <TD> |
| 409 | <a href="http://www.gimp.org/"><img border=0 width=88 height=38 |
| 410 | src="images/gfx_by_gimp.gif" alt="Graphics by GIMP"></a> |
| 411 | </TD> |
| 412 | |
| 413 | <TD> |
| 414 | <a href="http://www.linuxtoday.com"><img width=90 height=36 |
| 415 | src="images/ltbutton2.jpg" alt="Linux Today"></a> |
| 416 | </TD> |
| 417 | |
| 418 | <TD> |
| 419 | <p><a href="http://slashdot.org"><img width=90 height=36 |
| 420 | src="images/sdsmall.gif" alt="Slashdot"></a> |
| 421 | </TD> |
| 422 | |
| 423 | <TD> |
| 424 | <a href="http://freshmeat.net"><img width=90 height=36 |
| 425 | src="images/fm.mini.jpg" alt="Freshmeat"></a> |
| 426 | </TD> |
| 427 | |
| 428 | </TR> |
| 429 | </TABLE> |
| 430 | |
| 431 | |
| 432 | </BODY> |
| 433 | </HTML> |
| 434 | |