diff options
| author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-13 15:26:53 +0000 |
|---|---|---|
| committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-13 15:26:53 +0000 |
| commit | 153cd695e4fa9b53bd12844468c6f97784d9696e (patch) | |
| tree | 421bc4b770f792b505b56ae92942644d1c9d5f04 /docs | |
| parent | 828e2a95dac7b708cdcfac5b6b99e7d3597c80a5 (diff) | |
| download | busybox-w32-153cd695e4fa9b53bd12844468c6f97784d9696e.tar.gz busybox-w32-153cd695e4fa9b53bd12844468c6f97784d9696e.tar.bz2 busybox-w32-153cd695e4fa9b53bd12844468c6f97784d9696e.zip | |
FAQ: add timezone Q
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/busybox.net/FAQ.html | 101 |
1 files changed, 60 insertions, 41 deletions
diff --git a/docs/busybox.net/FAQ.html b/docs/busybox.net/FAQ.html index b6a5d721f..7b15bf78c 100644 --- a/docs/busybox.net/FAQ.html +++ b/docs/busybox.net/FAQ.html | |||
| @@ -31,6 +31,11 @@ have additions to this FAQ document, we would love to add them, | |||
| 31 | <li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?</a></li> | 31 | <li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?</a></li> |
| 32 | </ol> | 32 | </ol> |
| 33 | 33 | ||
| 34 | <h2>Misc. questions</h2> | ||
| 35 | <ol> | ||
| 36 | <li><a href="#tz">How do I change the time zone in busybox?</a></li> | ||
| 37 | </ol> | ||
| 38 | |||
| 34 | <h2>Programming questions</h2> | 39 | <h2>Programming questions</h2> |
| 35 | <ol> | 40 | <ol> |
| 36 | <li><a href="#goals">What are the goals of busybox?</a></li> | 41 | <li><a href="#goals">What are the goals of busybox?</a></li> |
| @@ -52,17 +57,17 @@ have additions to this FAQ document, we would love to add them, | |||
| 52 | <li><a href="#tips_memory">Memory used by relocatable code, PIC, and static linking.</a></li> | 57 | <li><a href="#tips_memory">Memory used by relocatable code, PIC, and static linking.</a></li> |
| 53 | <li><a href="#tips_kernel_headers">Including Linux kernel headers.</a></li> | 58 | <li><a href="#tips_kernel_headers">Including Linux kernel headers.</a></li> |
| 54 | </ul> | 59 | </ul> |
| 55 | <li><a href="#who">Who are the BusyBox developers?</a></li> | 60 | <li><a href="#who">Who are the BusyBox developers?</a></li> |
| 56 | </ul> | 61 | </ul> |
| 57 | |||
| 58 | |||
| 59 | </ol> | 62 | </ol> |
| 60 | 63 | ||
| 64 | |||
| 65 | <hr /> | ||
| 61 | <h1>General questions</h1> | 66 | <h1>General questions</h1> |
| 62 | 67 | ||
| 63 | <hr /> | 68 | <hr /> |
| 64 | <p> | ||
| 65 | <h2><a name="getting_started">How can I get started using BusyBox?</a></h2> | 69 | <h2><a name="getting_started">How can I get started using BusyBox?</a></h2> |
| 70 | |||
| 66 | <p> If you just want to try out busybox without installing it, download the | 71 | <p> If you just want to try out busybox without installing it, download the |
| 67 | tarball, extract it, run "make defconfig", and then run "make". | 72 | tarball, extract it, run "make defconfig", and then run "make". |
| 68 | </p> | 73 | </p> |
| @@ -107,9 +112,10 @@ $ /bin/echo $PATH | |||
| 107 | $ echo $PATH | 112 | $ echo $PATH |
| 108 | /bin/sh: echo: not found | 113 | /bin/sh: echo: not found |
| 109 | </pre> | 114 | </pre> |
| 115 | |||
| 110 | <hr /> | 116 | <hr /> |
| 111 | <p> | ||
| 112 | <h2><a name="configure">How do I configure busybox?</a></h2> | 117 | <h2><a name="configure">How do I configure busybox?</a></h2> |
| 118 | |||
| 113 | <p> Busybox is configured similarly to the linux kernel. Create a default | 119 | <p> Busybox is configured similarly to the linux kernel. Create a default |
| 114 | configuration and then run "make menuconfig" to modify it. The end | 120 | configuration and then run "make menuconfig" to modify it. The end |
| 115 | result is a .config file that tells the busybox build process what features | 121 | result is a .config file that tells the busybox build process what features |
| @@ -155,17 +161,16 @@ within each applet. More build coverage testing.</p></li> | |||
| 155 | <p> Menuconfig modifies your .config file through an interactive menu where you can enable or disable | 161 | <p> Menuconfig modifies your .config file through an interactive menu where you can enable or disable |
| 156 | busybox features, and get help about each feature. | 162 | busybox features, and get help about each feature. |
| 157 | 163 | ||
| 158 | |||
| 159 | |||
| 160 | <p> | 164 | <p> |
| 161 | To build a smaller busybox binary, run "make menuconfig" and disable the | 165 | To build a smaller busybox binary, run "make menuconfig" and disable the |
| 162 | features you don't need. (Or run "make allnoconfig" and then use | 166 | features you don't need. (Or run "make allnoconfig" and then use |
| 163 | menuconfig to add just the features you need. Don't forget to recompile | 167 | menuconfig to add just the features you need. Don't forget to recompile |
| 164 | with "make" once you've finished configuring.) | 168 | with "make" once you've finished configuring.) |
| 165 | </p> | 169 | </p> |
| 166 | <hr/> | 170 | |
| 167 | <p/> | 171 | <hr /> |
| 168 | <h2><a name="build">How do I build BusyBox with a cross-compiler?</a></h2> | 172 | <h2><a name="build">How do I build BusyBox with a cross-compiler?</a></h2> |
| 173 | |||
| 169 | <p> | 174 | <p> |
| 170 | To build busybox with a cross-compiler, specify CROSS_COMPILE=<prefix>. | 175 | To build busybox with a cross-compiler, specify CROSS_COMPILE=<prefix>. |
| 171 | </p> | 176 | </p> |
| @@ -180,7 +185,10 @@ within each applet. More build coverage testing.</p></li> | |||
| 180 | Alternatively CROSS_COMPILE can be set in the environment. | 185 | Alternatively CROSS_COMPILE can be set in the environment. |
| 181 | Default value for CROSS_COMPILE is not to prefix executables. | 186 | Default value for CROSS_COMPILE is not to prefix executables. |
| 182 | </p> | 187 | </p> |
| 188 | |||
| 189 | <hr /> | ||
| 183 | <h2><a name="build_system">How do I build a BusyBox-based system?</a></h2> | 190 | <h2><a name="build_system">How do I build a BusyBox-based system?</a></h2> |
| 191 | |||
| 184 | <p> | 192 | <p> |
| 185 | BusyBox is a package that replaces a dozen standard packages, but it is | 193 | BusyBox is a package that replaces a dozen standard packages, but it is |
| 186 | not by itself a complete bootable system. Building an entire Linux | 194 | not by itself a complete bootable system. Building an entire Linux |
| @@ -221,8 +229,8 @@ within each applet. More build coverage testing.</p></li> | |||
| 221 | </p> | 229 | </p> |
| 222 | 230 | ||
| 223 | <hr /> | 231 | <hr /> |
| 224 | <p> | ||
| 225 | <h2><a name="kernel">Which Linux kernel versions are supported?</a></h2> | 232 | <h2><a name="kernel">Which Linux kernel versions are supported?</a></h2> |
| 233 | |||
| 226 | <p> | 234 | <p> |
| 227 | Full functionality requires Linux 2.4.x or better. (Earlier versions may | 235 | Full functionality requires Linux 2.4.x or better. (Earlier versions may |
| 228 | still work, but are no longer regularly tested.) A large fraction of the | 236 | still work, but are no longer regularly tested.) A large fraction of the |
| @@ -231,9 +239,10 @@ within each applet. More build coverage testing.</p></li> | |||
| 231 | to support, say, FreeBSD or Solaris, or Mac OS X, or even Windows (if you | 239 | to support, say, FreeBSD or Solaris, or Mac OS X, or even Windows (if you |
| 232 | are into that sort of thing). | 240 | are into that sort of thing). |
| 233 | </p> | 241 | </p> |
| 242 | |||
| 234 | <hr /> | 243 | <hr /> |
| 235 | <p> | ||
| 236 | <h2><a name="arch">Which architectures does BusyBox run on?</a></h2> | 244 | <h2><a name="arch">Which architectures does BusyBox run on?</a></h2> |
| 245 | |||
| 237 | <p> | 246 | <p> |
| 238 | BusyBox in general will build on any architecture supported by gcc. | 247 | BusyBox in general will build on any architecture supported by gcc. |
| 239 | Kernel module loading for 2.4 Linux kernels is currently | 248 | Kernel module loading for 2.4 Linux kernels is currently |
| @@ -243,9 +252,10 @@ within each applet. More build coverage testing.</p></li> | |||
| 243 | <p> | 252 | <p> |
| 244 | With 2.6.x kernels, module loading support should work on all architectures. | 253 | With 2.6.x kernels, module loading support should work on all architectures. |
| 245 | </p> | 254 | </p> |
| 255 | |||
| 246 | <hr /> | 256 | <hr /> |
| 247 | <p> | ||
| 248 | <h2><a name="libc">Which C libraries are supported?</a></h2> | 257 | <h2><a name="libc">Which C libraries are supported?</a></h2> |
| 258 | |||
| 249 | <p> | 259 | <p> |
| 250 | On Linux, BusyBox releases are tested against uClibc (0.9.27 or later) and | 260 | On Linux, BusyBox releases are tested against uClibc (0.9.27 or later) and |
| 251 | glibc (2.2 or later). Both should provide full functionality with busybox, | 261 | glibc (2.2 or later). Both should provide full functionality with busybox, |
| @@ -265,9 +275,7 @@ within each applet. More build coverage testing.</p></li> | |||
| 265 | </p> | 275 | </p> |
| 266 | 276 | ||
| 267 | <hr /> | 277 | <hr /> |
| 268 | <p> | ||
| 269 | <h2><a name="commercial">Can I include BusyBox as part of the software on my device?</a></h2> | 278 | <h2><a name="commercial">Can I include BusyBox as part of the software on my device?</a></h2> |
| 270 | <p> | ||
| 271 | 279 | ||
| 272 | <p> | 280 | <p> |
| 273 | Yes. As long as you <a href="http://busybox.net/license.html">fully comply | 281 | Yes. As long as you <a href="http://busybox.net/license.html">fully comply |
| @@ -276,29 +284,26 @@ within each applet. More build coverage testing.</p></li> | |||
| 276 | </p> | 284 | </p> |
| 277 | 285 | ||
| 278 | <hr /> | 286 | <hr /> |
| 279 | <p> | 287 | <h2><a name="external">Where can I find other small utilities since busybox |
| 280 | <h2><a name="external">where can i find other small utilities since busybox | ||
| 281 | does not include the features i want?</a></h2> | 288 | does not include the features i want?</a></h2> |
| 289 | |||
| 282 | <p> | 290 | <p> |
| 283 | we maintain such a <a href="tinyutils.html">list</a> on this site! | 291 | we maintain such a <a href="tinyutils.html">list</a> on this site! |
| 284 | </p> | 292 | </p> |
| 285 | 293 | ||
| 286 | <hr /> | 294 | <hr /> |
| 287 | <p> | ||
| 288 | <h2><a name="demanding">I demand that you to add <favorite feature> right now! How come you don't answer all my questions on the mailing list instantly? I demand that you help me with all of my problems <em>Right Now</em>!</a></h2> | 295 | <h2><a name="demanding">I demand that you to add <favorite feature> right now! How come you don't answer all my questions on the mailing list instantly? I demand that you help me with all of my problems <em>Right Now</em>!</a></h2> |
| 289 | <p> | ||
| 290 | 296 | ||
| 297 | <p> | ||
| 291 | You have not paid us a single cent and yet you still have the product of | 298 | You have not paid us a single cent and yet you still have the product of |
| 292 | many years of our work. We are not your slaves! We work on BusyBox | 299 | many years of our work. We are not your slaves! We work on BusyBox |
| 293 | because we find it useful and interesting. If you go off flaming us, we | 300 | because we find it useful and interesting. If you go off flaming us, we |
| 294 | will ignore you. | 301 | will ignore you. |
| 295 | 302 | ||
| 296 | |||
| 297 | <hr /> | 303 | <hr /> |
| 298 | <p> | ||
| 299 | <h2><a name="helpme">I need help with BusyBox! What should I do?</a></h2> | 304 | <h2><a name="helpme">I need help with BusyBox! What should I do?</a></h2> |
| 300 | <p> | ||
| 301 | 305 | ||
| 306 | <p> | ||
| 302 | If you find that you need help with BusyBox, you can ask for help on the | 307 | If you find that you need help with BusyBox, you can ask for help on the |
| 303 | BusyBox mailing list at busybox@busybox.net.</p> | 308 | BusyBox mailing list at busybox@busybox.net.</p> |
| 304 | 309 | ||
| @@ -326,9 +331,7 @@ within each applet. More build coverage testing.</p></li> | |||
| 326 | </p> | 331 | </p> |
| 327 | 332 | ||
| 328 | <hr /> | 333 | <hr /> |
| 329 | <p> | ||
| 330 | <h2><a name="contracts">I need you to add <favorite feature>! Are the BusyBox developers willing to be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide support contracts?</a></h2> | 334 | <h2><a name="contracts">I need you to add <favorite feature>! Are the BusyBox developers willing to be paid in order to fix bugs or add in <favorite feature>? Are you willing to provide support contracts?</a></h2> |
| 331 | </p> | ||
| 332 | 335 | ||
| 333 | <p> | 336 | <p> |
| 334 | Yes we are. The easy way to sponsor a new feature is to post an offer on | 337 | Yes we are. The easy way to sponsor a new feature is to post an offer on |
| @@ -346,14 +349,11 @@ within each applet. More build coverage testing.</p></li> | |||
| 346 | </p> | 349 | </p> |
| 347 | 350 | ||
| 348 | 351 | ||
| 349 | 352 | <hr /> | |
| 350 | |||
| 351 | <h1>Troubleshooting</h1> | 353 | <h1>Troubleshooting</h1> |
| 352 | 354 | ||
| 353 | <hr /> | 355 | <hr /> |
| 354 | <p></p> | ||
| 355 | <h2><a name="bugs">I think I found a bug in BusyBox! What should I do?</a></h2> | 356 | <h2><a name="bugs">I think I found a bug in BusyBox! What should I do?</a></h2> |
| 356 | <p></p> | ||
| 357 | 357 | ||
| 358 | <p> | 358 | <p> |
| 359 | If you simply need help with using or configuring BusyBox, please submit a | 359 | If you simply need help with using or configuring BusyBox, please submit a |
| @@ -386,7 +386,6 @@ within each applet. More build coverage testing.</p></li> | |||
| 386 | </p> | 386 | </p> |
| 387 | 387 | ||
| 388 | <hr /> | 388 | <hr /> |
| 389 | <p></p> | ||
| 390 | <h2><a name="backporting">I'm using an ancient version from the dawn of time and something's broken. Can you backport fixes for free?</h2> | 389 | <h2><a name="backporting">I'm using an ancient version from the dawn of time and something's broken. Can you backport fixes for free?</h2> |
| 391 | 390 | ||
| 392 | <p>Variants of this one get asked a lot.</p> | 391 | <p>Variants of this one get asked a lot.</p> |
| @@ -427,8 +426,8 @@ your problem, and you can always ask on the list if any of the developers | |||
| 427 | have consulting rates.</p> | 426 | have consulting rates.</p> |
| 428 | 427 | ||
| 429 | <hr /> | 428 | <hr /> |
| 430 | <p> | ||
| 431 | <h2><a name="init">Busybox init isn't working!</a></h2> | 429 | <h2><a name="init">Busybox init isn't working!</a></h2> |
| 430 | |||
| 432 | <p> | 431 | <p> |
| 433 | Init is the first program that runs, so it might be that no programs are | 432 | Init is the first program that runs, so it might be that no programs are |
| 434 | working on your new system because of a problem with your cross-compiler, | 433 | working on your new system because of a problem with your cross-compiler, |
| @@ -461,8 +460,8 @@ int main(int argc, char *argv) | |||
| 461 | </p> | 460 | </p> |
| 462 | 461 | ||
| 463 | <hr /> | 462 | <hr /> |
| 464 | <p> | ||
| 465 | <h2><a name="sed">I can't configure busybox on my system.</a></h2> | 463 | <h2><a name="sed">I can't configure busybox on my system.</a></h2> |
| 464 | |||
| 466 | <p> | 465 | <p> |
| 467 | Configuring Busybox depends on a recent version of sed. Older | 466 | Configuring Busybox depends on a recent version of sed. Older |
| 468 | distributions (Red Hat 7.2, Debian 3.0) may not come with a | 467 | distributions (Red Hat 7.2, Debian 3.0) may not come with a |
| @@ -489,10 +488,9 @@ int main(int argc, char *argv) | |||
| 489 | <p>Then you can run "make defconfig" or "make menuconfig" normally.</p> | 488 | <p>Then you can run "make defconfig" or "make menuconfig" normally.</p> |
| 490 | 489 | ||
| 491 | <hr /> | 490 | <hr /> |
| 492 | <p> | ||
| 493 | <h2><a name="job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?</a></h2> | 491 | <h2><a name="job_control">Why do I keep getting "sh: can't access tty; job control turned off" errors? Why doesn't Control-C work within my shell?</a></h2> |
| 494 | <p> | ||
| 495 | 492 | ||
| 493 | <p> | ||
| 496 | Job control will be turned off since your shell can not obtain a controlling | 494 | Job control will be turned off since your shell can not obtain a controlling |
| 497 | terminal. This typically happens when you run your shell on /dev/console. | 495 | terminal. This typically happens when you run your shell on /dev/console. |
| 498 | The kernel will not provide a controlling terminal on the /dev/console | 496 | The kernel will not provide a controlling terminal on the /dev/console |
| @@ -504,9 +502,20 @@ int main(int argc, char *argv) | |||
| 504 | run your shell on a real console... | 502 | run your shell on a real console... |
| 505 | </p> | 503 | </p> |
| 506 | 504 | ||
| 505 | <hr /> | ||
| 506 | <h1>Misc. questions</h1> | ||
| 507 | |||
| 508 | <hr /> | ||
| 509 | <h2><a name="tz">How do I change the time zone in busybox?</a></h2> | ||
| 510 | |||
| 511 | <p>Busybox has nothing to do with the timezone. Please consult your libc | ||
| 512 | documentation. (<a href='http://google.com/search?q=uclibc+glibc+timezone'>http://google.com/search?q=uclibc+glibc+timezone</a>).</p> | ||
| 513 | |||
| 514 | <hr /> | ||
| 507 | <h1>Development</h1> | 515 | <h1>Development</h1> |
| 508 | 516 | ||
| 509 | <h2><b><a name="goals">What are the goals of busybox?</a></b></h2> | 517 | <hr /> |
| 518 | <h2><a name="goals">What are the goals of busybox?</a></h2> | ||
| 510 | 519 | ||
| 511 | <p>Busybox aims to be the smallest and simplest correct implementation of the | 520 | <p>Busybox aims to be the smallest and simplest correct implementation of the |
| 512 | standard Linux command line tools. First and foremost, this means the | 521 | standard Linux command line tools. First and foremost, this means the |
| @@ -515,7 +524,8 @@ and cleanest implementation we can manage, be <a href="#standards">standards | |||
| 515 | compliant</a>, minimize run-time memory usage (heap and stack), run fast, and | 524 | compliant</a>, minimize run-time memory usage (heap and stack), run fast, and |
| 516 | take over the world.</p> | 525 | take over the world.</p> |
| 517 | 526 | ||
| 518 | <h2><b><a name="design">What is the design of busybox?</a></b></h2> | 527 | <hr /> |
| 528 | <h2><a name="design">What is the design of busybox?</a></h2> | ||
| 519 | 529 | ||
| 520 | <p>Busybox is like a swiss army knife: one thing with many functions. | 530 | <p>Busybox is like a swiss army knife: one thing with many functions. |
| 521 | The busybox executable can act like many different programs depending on | 531 | The busybox executable can act like many different programs depending on |
| @@ -539,7 +549,8 @@ writing.</p> | |||
| 539 | 549 | ||
| 540 | <a name="source"></a> | 550 | <a name="source"></a> |
| 541 | 551 | ||
| 542 | <h2><a name="source_applets"><b>The applet directories</b></a></h2> | 552 | <hr /> |
| 553 | <h2><a name="source_applets">The applet directories</a></h2> | ||
| 543 | 554 | ||
| 544 | <p>The directory "applets" contains the busybox startup code (applets.c and | 555 | <p>The directory "applets" contains the busybox startup code (applets.c and |
| 545 | busybox.c), and several subdirectories containing the code for the individual | 556 | busybox.c), and several subdirectories containing the code for the individual |
| @@ -579,6 +590,7 @@ html, txt, and man page formats) in the docs directory. See | |||
| 579 | <a href="#adding">adding an applet to busybox</a> for more | 590 | <a href="#adding">adding an applet to busybox</a> for more |
| 580 | information.</p> | 591 | information.</p> |
| 581 | 592 | ||
| 593 | <hr /> | ||
| 582 | <h2><a name="source_libbb"><b>libbb</b></a></h2> | 594 | <h2><a name="source_libbb"><b>libbb</b></a></h2> |
| 583 | 595 | ||
| 584 | <p>Most non-setup code shared between busybox applets lives in the libbb | 596 | <p>Most non-setup code shared between busybox applets lives in the libbb |
| @@ -595,8 +607,8 @@ and/or retry automatically, linked list management functions (llist.c), | |||
| 595 | command line argument parsing (getopt32.c), and a whole lot more.</p> | 607 | command line argument parsing (getopt32.c), and a whole lot more.</p> |
| 596 | 608 | ||
| 597 | <hr /> | 609 | <hr /> |
| 598 | <p> | ||
| 599 | <h2><a name="optimize">I want to make busybox even smaller, how do I go about it?</a></h2> | 610 | <h2><a name="optimize">I want to make busybox even smaller, how do I go about it?</a></h2> |
| 611 | |||
| 600 | <p> | 612 | <p> |
| 601 | To conserve bytes it's good to know where they're being used, and the | 613 | To conserve bytes it's good to know where they're being used, and the |
| 602 | size of the final executable isn't always a reliable indicator of | 614 | size of the final executable isn't always a reliable indicator of |
| @@ -647,11 +659,9 @@ command line argument parsing (getopt32.c), and a whole lot more.</p> | |||
| 647 | "scripts/showasm busybox_unstripped symbolname" to see the assembly | 659 | "scripts/showasm busybox_unstripped symbolname" to see the assembly |
| 648 | for a sepecific symbol. | 660 | for a sepecific symbol. |
| 649 | </p> | 661 | </p> |
| 650 | <hr /> | ||
| 651 | |||
| 652 | 662 | ||
| 653 | 663 | <hr /> | |
| 654 | <h2><a name="adding"><b>Adding an applet to busybox</b></a></h2> | 664 | <h2><a name="adding">Adding an applet to busybox</a></h2> |
| 655 | 665 | ||
| 656 | <p>To add a new applet to busybox, first pick a name for the applet and | 666 | <p>To add a new applet to busybox, first pick a name for the applet and |
| 657 | a corresponding CONFIG_NAME. Then do this:</p> | 667 | a corresponding CONFIG_NAME. Then do this:</p> |
| @@ -692,6 +702,7 @@ bugs. Be sure to try both "allyesconfig" and "allnoconfig" (and | |||
| 692 | 702 | ||
| 693 | </ul> | 703 | </ul> |
| 694 | 704 | ||
| 705 | <hr /> | ||
| 695 | <h2><a name="standards">What standards does busybox adhere to?</a></h2> | 706 | <h2><a name="standards">What standards does busybox adhere to?</a></h2> |
| 696 | 707 | ||
| 697 | <p>The standard we're paying attention to is the "Shell and Utilities" | 708 | <p>The standard we're paying attention to is the "Shell and Utilities" |
| @@ -721,6 +732,7 @@ applet is otherwise finished. When polishing and testing a busybox applet, | |||
| 721 | we ensure we have at least the option of full standards compliance, or else | 732 | we ensure we have at least the option of full standards compliance, or else |
| 722 | document where we (intentionally) fall short.</p> | 733 | document where we (intentionally) fall short.</p> |
| 723 | 734 | ||
| 735 | <hr /> | ||
| 724 | <h2><a name="portability">Portability.</a></h2> | 736 | <h2><a name="portability">Portability.</a></h2> |
| 725 | 737 | ||
| 726 | <p>Busybox is a Linux project, but that doesn't mean we don't have to worry | 738 | <p>Busybox is a Linux project, but that doesn't mean we don't have to worry |
| @@ -797,11 +809,13 @@ support that can be cleanly separated into a separate conditionally compiled | |||
| 797 | file is at least worth a look. Special-case code in the body of an applet is | 809 | file is at least worth a look. Special-case code in the body of an applet is |
| 798 | something we're trying to avoid.</p> | 810 | something we're trying to avoid.</p> |
| 799 | 811 | ||
| 812 | <hr /> | ||
| 800 | <h2><a name="tips" />Programming tips and tricks.</a></h2> | 813 | <h2><a name="tips" />Programming tips and tricks.</a></h2> |
| 801 | 814 | ||
| 802 | <p>Various things busybox uses that aren't particularly well documented | 815 | <p>Various things busybox uses that aren't particularly well documented |
| 803 | elsewhere.</p> | 816 | elsewhere.</p> |
| 804 | 817 | ||
| 818 | <hr /> | ||
| 805 | <h2><a name="tips_encrypted_passwords">Encrypted Passwords</a></h2> | 819 | <h2><a name="tips_encrypted_passwords">Encrypted Passwords</a></h2> |
| 806 | 820 | ||
| 807 | <p>Password fields in /etc/passwd and /etc/shadow are in a special format. | 821 | <p>Password fields in /etc/passwd and /etc/shadow are in a special format. |
| @@ -853,6 +867,7 @@ password, generate a random 8 character salt string, put it in the right | |||
| 853 | format with sprintf(buffer, "$%c$%s", type, salt), and feed buffer as the | 867 | format with sprintf(buffer, "$%c$%s", type, salt), and feed buffer as the |
| 854 | second argument to pw_encrypt(text,buffer).</p> | 868 | second argument to pw_encrypt(text,buffer).</p> |
| 855 | 869 | ||
| 870 | <hr /> | ||
| 856 | <h2><a name="tips_vfork">Fork and vfork</a></h2> | 871 | <h2><a name="tips_vfork">Fork and vfork</a></h2> |
| 857 | 872 | ||
| 858 | <p>On systems that haven't got a Memory Management Unit, fork() is unreasonably | 873 | <p>On systems that haven't got a Memory Management Unit, fork() is unreasonably |
| @@ -931,6 +946,7 @@ each other while traversing the free memory lists). The thing about vfork is | |||
| 931 | that it's a big red flag warning "there be dragons here" rather than | 946 | that it's a big red flag warning "there be dragons here" rather than |
| 932 | something subtle and thus even more dangerous.)</p> | 947 | something subtle and thus even more dangerous.)</p> |
| 933 | 948 | ||
| 949 | <hr /> | ||
| 934 | <h2><a name="tips_sort_read">Short reads and writes</a></h2> | 950 | <h2><a name="tips_sort_read">Short reads and writes</a></h2> |
| 935 | 951 | ||
| 936 | <p>Busybox has special functions, bb_full_read() and bb_full_write(), to | 952 | <p>Busybox has special functions, bb_full_read() and bb_full_write(), to |
| @@ -964,6 +980,7 @@ data comes in that can be merged into the same packet. (In case you were | |||
| 964 | wondering why action games that use TCP/IP set TCP_NODELAY to lower the latency | 980 | wondering why action games that use TCP/IP set TCP_NODELAY to lower the latency |
| 965 | on their their sockets, now you know.)</p> | 981 | on their their sockets, now you know.)</p> |
| 966 | 982 | ||
| 983 | <hr /> | ||
| 967 | <h2><a name="tips_memory">Memory used by relocatable code, PIC, and static linking.</a></h2> | 984 | <h2><a name="tips_memory">Memory used by relocatable code, PIC, and static linking.</a></h2> |
| 968 | 985 | ||
| 969 | <p>The downside of standard dynamic linking is that it results in self-modifying | 986 | <p>The downside of standard dynamic linking is that it results in self-modifying |
| @@ -1028,6 +1045,7 @@ above factors seem to mostly account for it (but some were difficult | |||
| 1028 | to measure).</p> | 1045 | to measure).</p> |
| 1029 | </blockquote> | 1046 | </blockquote> |
| 1030 | 1047 | ||
| 1048 | <hr /> | ||
| 1031 | <h2><a name="tips_kernel_headers"></a>Including kernel headers</h2> | 1049 | <h2><a name="tips_kernel_headers"></a>Including kernel headers</h2> |
| 1032 | 1050 | ||
| 1033 | <p>The "linux" or "asm" directories of /usr/include contain Linux kernel | 1051 | <p>The "linux" or "asm" directories of /usr/include contain Linux kernel |
| @@ -1065,6 +1083,7 @@ unavoidable doesn't me we should include them when there's a better | |||
| 1065 | way to do it. However, block copying information out of the kernel headers | 1083 | way to do it. However, block copying information out of the kernel headers |
| 1066 | is not a better way.</p> | 1084 | is not a better way.</p> |
| 1067 | 1085 | ||
| 1086 | <hr /> | ||
| 1068 | <h2><a name="who">Who are the BusyBox developers?</a></h2> | 1087 | <h2><a name="who">Who are the BusyBox developers?</a></h2> |
| 1069 | 1088 | ||
| 1070 | <p>The following login accounts currently exist on busybox.net. (I.E. these | 1089 | <p>The following login accounts currently exist on busybox.net. (I.E. these |
