| @@ -61,32 +61,73 @@ config SHA3_SMALL |
| 64-bit x86: +270 bytes of code, 45% faster |
| 32-bit x86: +450 bytes of code, 75% faster |
| |
| - | config FEATURE_FAST_TOP |
| - | bool "Faster /proc scanning code (+100 bytes)" |
| - | default n # all "fast or small" options default to small |
| + | config FEATURE_NON_POSIX_CP |
| + | bool "Non-POSIX, but safer, copying to special nodes" |
| + | default y |
| help |
| - | This option makes top and ps ~20% faster (or 20% less CPU hungry), |
| - | but code size is slightly bigger. |
| + | With this option, "cp file symlink" will delete symlink |
| + | and create a regular file. This does not conform to POSIX, |
| + | but prevents a symlink attack. |
| + | Similarly, "cp file device" will not send file's data |
| + | to the device. (To do that, use "cat file >device") |
| |
| - | config FEATURE_ETC_NETWORKS |
| - | bool "Support /etc/networks" |
| + | config FEATURE_VERBOSE_CP_MESSAGE |
| + | bool "Give more precise messages when copy fails (cp, mv etc)" |
| default n |
| help |
| - | Enable support for network names in /etc/networks. This is |
| - | a rarely used feature which allows you to use names |
| - | instead of IP/mask pairs in route command. |
| + | Error messages with this feature enabled: |
| |
| - | config FEATURE_ETC_SERVICES |
| - | bool "Consult /etc/services even for well-known ports" |
| - | default n |
| + | $ cp file /does_not_exist/file |
| + | cp: cannot create '/does_not_exist/file': Path does not exist |
| + | $ cp file /vmlinuz/file |
| + | cp: cannot stat '/vmlinuz/file': Path has non-directory component |
| + | |
| + | If this feature is not enabled, they will be, respectively: |
| + | |
| + | cp: cannot create '/does_not_exist/file': No such file or directory |
| + | cp: cannot stat '/vmlinuz/file': Not a directory |
| + | |
| + | This will cost you ~60 bytes. |
| + | |
| + | config FEATURE_USE_SENDFILE |
| + | bool "Use sendfile system call" |
| + | default y |
| + | help |
| + | When enabled, busybox will use the kernel sendfile() function |
| + | instead of read/write loops to copy data between file descriptors |
| + | (for example, cp command does this a lot). |
| + | If sendfile() doesn't work, copying code falls back to read/write |
| + | loop. sendfile() was originally implemented for faster I/O |
| + | from files to sockets, but since Linux 2.6.33 it was extended |
| + | to work for many more file types. |
| + | |
| + | config FEATURE_COPYBUF_KB |
| + | int "Copy buffer size, in kilobytes" |
| + | range 1 1024 |
| + | default 4 |
| + | help |
| + | Size of buffer used by cp, mv, install, wget etc. |
| + | Buffers which are 4 kb or less will be allocated on stack. |
| + | Bigger buffers will be allocated with mmap, with fallback to 4 kb |
| + | stack buffer if mmap fails. |
| + | |
| + | config MONOTONIC_SYSCALL |
| + | bool "Use clock_gettime(CLOCK_MONOTONIC) syscall" |
| + | default y |
| + | help |
| + | Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring |
| + | time intervals (time, ping, traceroute etc need this). |
| + | Probably requires Linux 2.6+. If not selected, gettimeofday |
| + | will be used instead (which gives wrong results if date/time |
| + | is reset). |
| + | |
| + | config IOCTL_HEX2STR_ERROR |
| + | bool "Use ioctl names rather than hex values in error messages" |
| + | default y |
| help |
| - | Look up e.g. "telnet" and "http" in /etc/services file |
| - | instead of assuming ports 23 and 80. |
| - | This is almost never necessary (everybody uses standard ports), |
| - | and it makes sense to avoid reading this file. |
| - | If you disable this option, in the cases where port is explicitly |
| - | specified as a service name (e.g. "telnet HOST PORTNAME"), |
| - | it will still be looked up in /etc/services. |
| + | Use ioctl names rather than hex values in error messages |
| + | (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this |
| + | saves about 1400 bytes. |
| |
| config FEATURE_EDITING |
| bool "Command line editing" |
| @@ -302,107 +343,3 @@ config UNICODE_PRESERVE_BROKEN |
| For example, this means that entering 'l', 's', ' ', 0xff, [Enter] |
| at shell prompt will list file named 0xff (single char name |
| with char value 255), not file named '?'. |
| - | |
| - | config FEATURE_NON_POSIX_CP |
| - | bool "Non-POSIX, but safer, copying to special nodes" |
| - | default y |
| - | help |
| - | With this option, "cp file symlink" will delete symlink |
| - | and create a regular file. This does not conform to POSIX, |
| - | but prevents a symlink attack. |
| - | Similarly, "cp file device" will not send file's data |
| - | to the device. (To do that, use "cat file >device") |
| - | |
| - | config FEATURE_VERBOSE_CP_MESSAGE |
| - | bool "Give more precise messages when copy fails (cp, mv etc)" |
| - | default n |
| - | help |
| - | Error messages with this feature enabled: |
| - | |
| - | $ cp file /does_not_exist/file |
| - | cp: cannot create '/does_not_exist/file': Path does not exist |
| - | $ cp file /vmlinuz/file |
| - | cp: cannot stat '/vmlinuz/file': Path has non-directory component |
| - | |
| - | If this feature is not enabled, they will be, respectively: |
| - | |
| - | cp: cannot create '/does_not_exist/file': No such file or directory |
| - | cp: cannot stat '/vmlinuz/file': Not a directory |
| - | |
| - | This will cost you ~60 bytes. |
| - | |
| - | config FEATURE_USE_SENDFILE |
| - | bool "Use sendfile system call" |
| - | default y |
| - | help |
| - | When enabled, busybox will use the kernel sendfile() function |
| - | instead of read/write loops to copy data between file descriptors |
| - | (for example, cp command does this a lot). |
| - | If sendfile() doesn't work, copying code falls back to read/write |
| - | loop. sendfile() was originally implemented for faster I/O |
| - | from files to sockets, but since Linux 2.6.33 it was extended |
| - | to work for many more file types. |
| - | |
| - | config FEATURE_COPYBUF_KB |
| - | int "Copy buffer size, in kilobytes" |
| - | range 1 1024 |
| - | default 4 |
| - | help |
| - | Size of buffer used by cp, mv, install, wget etc. |
| - | Buffers which are 4 kb or less will be allocated on stack. |
| - | Bigger buffers will be allocated with mmap, with fallback to 4 kb |
| - | stack buffer if mmap fails. |
| - | |
| - | config FEATURE_SKIP_ROOTFS |
| - | bool "Skip rootfs in mount table" |
| - | default y |
| - | help |
| - | Ignore rootfs entry in mount table. |
| - | |
| - | In Linux, kernel has a special filesystem, rootfs, which is initially |
| - | mounted on /. It contains initramfs data, if kernel is configured |
| - | to have one. Usually, another file system is mounted over / early |
| - | in boot process, and therefore most tools which manipulate |
| - | mount table, such as df, will skip rootfs entry. |
| - | |
| - | However, some systems do not mount anything on /. |
| - | If you need to configure busybox for one of these systems, |
| - | you may find it useful to turn this option off to make df show |
| - | initramfs statistics. |
| - | |
| - | Otherwise, choose Y. |
| - | |
| - | config MONOTONIC_SYSCALL |
| - | bool "Use clock_gettime(CLOCK_MONOTONIC) syscall" |
| - | default y |
| - | help |
| - | Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring |
| - | time intervals (time, ping, traceroute etc need this). |
| - | Probably requires Linux 2.6+. If not selected, gettimeofday |
| - | will be used instead (which gives wrong results if date/time |
| - | is reset). |
| - | |
| - | config IOCTL_HEX2STR_ERROR |
| - | bool "Use ioctl names rather than hex values in error messages" |
| - | default y |
| - | help |
| - | Use ioctl names rather than hex values in error messages |
| - | (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this |
| - | saves about 1400 bytes. |
| - | |
| - | config FEATURE_HWIB |
| - | bool "Support infiniband HW" |
| - | default y |
| - | help |
| - | Support for printing infiniband addresses in network applets. |
| - | |
| - | config FEATURE_TIMEZONE |
| - | bool "Allow timezone in dates" |
| - | default y |
| - | depends on DESKTOP |
| - | help |
| - | Permit the use of timezones when parsing user-provided data |
| - | strings, e.g. '1996-04-09 12:45:00 -0500'. |
| - | |
| - | This requires support for the '%z' extension to strptime() which |
| - | may not be available in all implementations. |