From 3515f6e04359a2c8e4ef28f1e0d0634f9148c773 Mon Sep 17 00:00:00 2001
From: Bernhard Reutner-Fischer Busybox aims to be the smallest and simplest correct implementation of the
standard Linux command line tools. First and foremost, this means the
@@ -31,7 +31,7 @@ and cleanest implementation we can manage, be standards
compliant, minimize run-time memory usage (heap and stack), run fast, and
take over the world. Busybox is like a swiss army knife: one thing with many functions.
The busybox executable can act like many different programs depending on
@@ -53,9 +53,9 @@ binaries for each applet, and a "libbb.so" to make the busybox common code
available as a shared library. Neither is ready yet at the time of this
writing. The directory "applets" contains the busybox startup code (applets.c and
busybox.c), and several subdirectories containing the code for the individual
@@ -95,7 +95,7 @@ html, txt, and man page formats) in the docs directory. See
adding an applet to busybox for more
information. Most non-setup code shared between busybox applets lives in the libbb
directory. It's a mess that evolved over the years without much auditing
@@ -110,7 +110,7 @@ of open(), close(), read(), and write() that test for their own failures
and/or retry automatically, linked list management functions (llist.c),
command line argument parsing (getopt_ulflags.c), and a whole lot more. To add a new applet to busybox, first pick a name for the applet and
a corresponding CONFIG_NAME. Then do this: The standard we're paying attention to is the "Shell and Utilities"
-portion of the Open
+portion of the Open
Group Base Standards (also known as the Single Unix Specification version
3 or SUSv3). Note that paying attention isn't necessarily the same thing as
following it.What are the goals of busybox?
+What are the goals of busybox?
What is the design of busybox?
+What is the design of busybox?
The applet directories
+The applet directories
libbb
+libbb
Adding an applet to busybox
+Adding an applet to busybox
What standards does busybox adhere to?
+What standards does busybox adhere to?
As for short writes, play around with two processes piping data to each -other on the command line (cat bigfile | gzip > out.gz) and suspend and +other on the command line (cat bigfile | gzip > out.gz) and suspend and resume a few times (ctrl-z to suspend, "fg" to resume). The writer can experience short writes, which are especially dangerous because if you don't notice them you'll discard data. They can also happen when a system is under @@ -340,7 +340,7 @@ text console scrolling...)
So will data always be read from the far end of a pipe at the same chunk sizes it was written in? Nope. Don't rely on that. For one -counterexample, see rfc 896
+counterexample, see rfc 896 for Nagle's algorithm, which waits a fraction of a second or so before sending out small amounts of data through a TCP/IP connection in case more data comes in that can be merged into the same packet. (In case you were -- cgit v1.2.3