Changeset 3232 in MondoRescue for branches/3.2/mindi-busybox/docs
- Timestamp:
- Jan 1, 2014, 12:47:38 AM (11 years ago)
- Location:
- branches/3.2/mindi-busybox/docs
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.2/mindi-busybox/docs/.gitignore
r2725 r3232 1 1 /busybox.1 2 2 /BusyBox.html 3 /busybox.net 3 4 /BusyBox.txt 4 5 /busybox.pod -
branches/3.2/mindi-busybox/docs/ctty.htm
r2725 r3232 10 10 <p>Before looking at the Linux implementation, first a general Unix 11 11 description of threads, processes, process groups and sessions. 12 </p><p> 13 (See also <a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html">General Terminal Interface</a>) 12 14 </p><p>A session contains a number of process groups, and a process group 13 15 contains a number of processes, and a process contains a number … … 278 280 the SIGTTOU signal, or if its process group is orphaned (see below), 279 281 then the write() returns an EIO error, and no signal is sent. 282 [vda: correction. SUS says that if SIGTTOU is blocked/ignored, write succeeds. ] 280 283 <p> 281 284 </p><h3>Orphaned process groups</h3> -
branches/3.2/mindi-busybox/docs/mdev.txt
r2725 r3232 52 52 53 53 The file has the format: 54 <device regex> <uid>:<gid> <permissions> 55 or @<maj[,min1[-min2]]> <uid>:<gid> <permissions> 54 [-]<device regex> <uid>:<gid> <permissions> 55 or 56 @<maj[,min1[-min2]]> <uid>:<gid> <permissions> 57 or 58 $envvar=<regex> <uid>:<gid> <permissions> 56 59 57 60 For example: 58 61 hd[a-z][0-9]* 0:3 660 59 62 60 63 The config file parsing stops at the first matching line. If no line is 61 64 matched, then the default of 0:0 660 is used. To set your own default, simply 62 65 create your own total match like so: 66 63 67 .* 1:1 777 64 68 65 69 You can rename/move device nodes by using the next optional field. 70 66 71 <device regex> <uid>:<gid> <permissions> [=path] 72 67 73 So if you want to place the device node into a subdirectory, make sure the path 68 74 has a trailing /. If you want to rename the device node, just place the name. -
branches/3.2/mindi-busybox/docs/new-applet-HOWTO.txt
r2725 r3232 162 162 163 163 /* all programs above here are alphabetically "less than" 'mu' */ 164 IF_MU(APPLET(mu, _BB_DIR_USR_BIN, _BB_SUID_DROP))164 IF_MU(APPLET(mu, BB_DIR_USR_BIN, BB_SUID_DROP)) 165 165 /* all programs below here are alphabetically "greater than" 'mu' */ 166 166 -
branches/3.2/mindi-busybox/docs/nofork_noexec.txt
r2725 r3232 45 45 46 46 NOFORK applet should work correctly if another applet simply runs 47 <applet>_main(argc,argv) and then continues with its business (xargs, 48 find, shells can do it). This poses much more serious limitations 49 on what applet can/cannot do: 47 <applet>_main(argc,argv) and then continues with its business. 48 xargs, find, shells do it (grep for "spawn_and_wait" and 49 "run_nofork_applet" to find more users). 50 51 This poses much more serious limitations on what applet can do: 50 52 51 53 * all NOEXEC limitations apply. … … 57 59 - fflush_stdout_and_exit(n) is ok to use. 58 60 * do not use shared global data, or save/restore shared global data 59 prior to returning. (e.g. bb_common_bufsiz1 is off-limits).61 (e.g. bb_common_bufsiz1) prior to returning. 60 62 - getopt32() is ok to use. You do not need to save/restore option_mask32, 61 63 it is already done by core code. … … 78 80 79 81 Any NOFORK applet is also a NOEXEC applet. 82 83 84 Relevant CONFIG options 85 86 FEATURE_PREFER_APPLETS 87 BB_EXECVP(cmd, argv) will try to exec /proc/self/exe 88 if command's name matches some applet name 89 applet tables will contain NOFORK/NOEXEC bits 90 spawn_and_wait(argv) will do NOFORK/NOEXEC tricks 91 92 FEATURE_SH_STANDALONE (needs FEATURE_PREFER_APPLETS=y) 93 shells will try to exec /proc/self/exe if command's name matches 94 some applet name 95 shells will do NOEXEC trick on NOEXEC applets 96 97 FEATURE_SH_NOFORK (needs FEATURE_PREFER_APPLETS=y) 98 shells will do NOFORK trick on NOFORK applets -
branches/3.2/mindi-busybox/docs/style-guide.txt
r2725 r3232 680 680 Then have long options defined: 681 681 682 static const struct option <applet>_long_options[] = { 683 { "list", 0, NULL, 't' }, 684 { "extract", 0, NULL, 'x' }, 685 { NULL, 0, NULL, 0 } 686 }; 682 static const char <applet>_longopts[] ALIGN1 = 683 "list\0" No_argument "t" 684 "extract\0" No_argument "x" 685 ; 687 686 688 687 And a code block similar to the following near the top of your applet_main() … … 692 691 693 692 opt_complementary = "cryptic_string"; 694 applet_long_options = <applet>_long _options; /* if you have them */693 applet_long_options = <applet>_longopts; /* if you have them */ 695 694 opt = getopt32(argc, argv, "ab:c", &str_b); 696 695 if (opt & 1) { -
branches/3.2/mindi-busybox/docs/unicode.txt
r2725 r3232 30 30 31 31 This case is a bit similar to "shell input", but unlike shell, 32 editors may encoun der many more unexpected unicode sequences32 editors may encounter many more unexpected unicode sequences 33 33 (try to load a random binary file...), and they need to preserve 34 34 them, unlike shell which can afford to drop bogus input.
Note:
See TracChangeset
for help on using the changeset viewer.