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 |